linux的用户以及用户组

用户及用户组配置文件

用户信息文件:/etc/passwd

用户密码文件:/etc/shadow

用户组信息文件:/etc/group

 

/etc/passwd文件格式

字段

含义

用户名

用户名,字母和数字组成

密码

只是标识,代表密码位,并不存放真实密码

UID

用户ID

GID

初始组ID

描述

描述用户的信息

宿主目录(家)

用户登录时的缺省目录

命令解析器

使用哪种shell,默认为bash

 

用户类型    

Linux用户分为三种:

超级用户(root,UID=0)

普通用户(UID 500-60000)

伪用户(UID 1-499)

 

  伪用户(了解)  

1、伪用户因系统应用和程序服务而存在

如:bin、shutdown、reboot等,与Linux系统程序相关。

Apache、ftp、mysql等,与Linux程序服务相关。

2、伪用户通常不需要或无法登陆  onLogin

3、可能没有宿主目录

 

/etc/shadow文件格式

字段

含义

用户名

用户名

密码

SHA512加密,!!或*表示无密码,不能登录

修改时间

相对1970-1-1日到现在天数

最小时间间隔

几天内不能修改,0或空表示随意

最大时间间隔

密码有效的最多天数,1表示不可修改

警告时间

从系统开始警告密码失效的天数,-1无警告

失效天数

密码失效后的宽限时间,-1永远不会禁用

取消日期

相对1970-1-1日,指定密码失效日期

保留字段

未来使用

  /etc/group文件格式

  

字段

含义

组名

建议根据功能等信息起有意义的组名

组密码

普通用户切换默认组时需要

GID

组ID

组内用户列表

将该组当成附属组的用户,用逗号分隔

  

如何手动添加一个用户(了解)

1、建立所需组群

2、将/etc/group和/etc/gshadow同步化

3、建立账号属性

4、将/etc/passwd和/etc/shadow同步化

5、建立账号密码

6、建立家目录

7、修改家目录权限

 

用户及用户组管理命令

操作

用户

用户组

添加

useradd

groupadd

修改

usermod

groupmod

删除

userdel

groupdel

密码

passwd

gpasswd

 

操作

含义

id

查看用户信息

su

切换用户

用户管理

命令格式:useradd 选项 用户名

g:缺省组(默认为用户名组)

G:所属组(添加到多个用户组,逗号隔开)

c: 描述信息

d:指定家目录

 

useradd –g aa bb  添加用户bb同时指定初始组aa

useradd –G user1 aa  添加用户aa指定附加组user1

 

修改密码:passwd [用户名] -l锁定 -u解锁

  什么都不加修改当前用户密码

 

删除用户:userdel -r 用户名

-r:删除用户相关文件(宿主目录和邮件)

 

 修改用户信息

usermod

usermod  -g   webadmin  jack

usermod  -G  group1,group2  jack 

usermod -help

man usermod

-l 改名  -c  改备注  -e  过期时间  -L 锁定用户

-U 解锁  -aG 追加所属组

 

用户组管理

添加组:groupadd  组名

修改组:groupmod 选项 组名

-n:修改组名

groupmod -n newname oldname

删除组:groupdel

组密码:gpasswd  -a  用户名 组名

-a 添加用户到组 -d 删除用户从组

 

切换用户命令

切换登录用户:su [-] 用户名

-:携带用户的环境变量

不带-切换root,家目录也为之前的用户所在目录

 

用户授权示例

授权用户jack和mary对目录/software有写权限

groupadd softadm

usermod –aG softadm jack

gpasswd –a marry softadm  效果同上

chgrp softadm /software

chmod g+w /software

查看是否修改成功

ls –ld /software;grep softadm /etc/group

 

特殊权限

SetUID

ls –l /usr/bin/passwd

chmod 4755 filename

chmod u+s filename

SetGID    chmod 2755 filename

粘着位(t) chmod 1777 dirname

ls –ld /tmp

 

特殊权限位的理解

危险的实验:

将vi命令赋予setUID

修改passwd文件和shadow文件,成功!

特殊权限位的作用

当你在普通用户执行vi时,这一刻root附体

setGID效果同setUID,享用root组权限

粘着位的作用:创造一块各玩各的空间

 

Sudo授权

su命令的优缺点:

  方便,但不适于多人使用

sudo命令:在制定的命令前加sudo 来使用sudo授权

sudo命令优点:

授予普通用户以root身份执行指定命令

命令范围可限定至具体选项及参数

授权:

vi /etc/sudoers

visudo

  

授权格式

用户名  主机名=命令(绝对路径which查看)

jack localhost=/bin/vi /etc/httpd/conf/httpd.conf

基本

jack,mary localhost=/bin/vi /etc/httpd/conf/httpd.conf

多用户

jack localhost=/bin/mount /dev/cdrom /mnt/cdrom, /bin/umount /mnt/cdrom多命令

jack localhost=NOPASSWD:/bin/vi /etc/httpd/conf/httpd.conf

无需密码

 

ACL权限

ACL(Access Control List),一个文件/目录访问控制列表,可针对指定的用户/组分配RWX权限,内核2.6之后默认加入。

设置权限:

setfacl -m <rules> <files>

setfacl -m u:用户名:权限 文件名

setfacl -m g:组名:权限 文件名

例:setfacl -m u:jack:rx /backup

 

设定ACL命令的参数

-m:设定权限

-x:移除指定权限

setfacl –x u:jack /backup

-b:移除所有权限

-R:递归设置(对于目录)

继承设置:setfacl -m d:u:jack:rwx -R /test

对于新创建的文件和目录页生效

查看ACL权限:getfacl 文件名(长格式后面多个+)

 

如果对目录设置ACL权限需要一下两条命令:

setfacl  -R –m u:用户名:权限  目录

  //对已存在的文件递归赋予acl权限

setfacl –R –m  d:u:用户名:权限  目录

  //对未来的新文件继承acl权限

 

posted @ 2015-07-01 11:23  bodhicitta  阅读(586)  评论(0编辑  收藏  举报