Centos7 用户和组管理
1 配置文件:
1.1 用户和密码配置文件
passwd配置文件详解
/etc/passwd说明
root:x:0:0:root:/root:/bin/bash
/etc/passwd由―:分割成7个字段,每个字段的具体含义是:
(1) 用户名(如第一行中的root就是用户名),代表用户账号的字符串。
(2) 第二个字段存放的是该账号的口令。
(3) 这个数字代表用户标识号,也叫做uid。
(4) 表示组标识号,也叫做gid。
(5) 注释说明,该字段没有实际意义。
(6) 用户的家目录。
(7) 用户的shell。除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录,建立账号时添加-s选项指定第七段的值。
shadow配置文件详解
/etc/shadow说明
root:$6$rbhmcsfi.t7PfBec::0:99999:7:::
(1) 用户名。
(2) 用户密码,这个密码已经加密,该文件属性设置为000,但是root账户是可以访问或更改的。
(3) 上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期。
(4) 要过多少天才可以更改密码,默认是0,即不限制。
(5) 密码多少天后到期。默认是99999,可以理解为永远不需要改。
(6) 密码到期前的警告期限。
(7) 账号失效期限。密码已经到期后多少天失效。
(8) 账号的生命周期。跟第三段一样。
(9) 作为保留用的,没有什么意义。
1.2 用户组管理
/etc/group 配置文件
root:x:0:root,shiguanghui
组名:口令:组标识号:组内用户列表
(1) 组名:组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
(2) 口令:口令字段存放的是用户组加密后的口令。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。
(1) 组标识号:组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组,别称GID。
(1) 组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
/etc/gshadow 配置文件
root:::root
组名:口令:组管理者:组内用户列表
(1) 组名: 是用户组的名称,由字母或数字构成。
(2) 口令:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码
(3) 组管理者:这个字段也可为空,如果有多个用户组管理者,用,号分割
(4) 组内用户列表:如果有多个成员,用,号分割 ;
2.常用基本操作
2.1 用户和密码
useradd sgh
passwd sgh
userdel sgh
2.2 创建用户组
groupadd dev
groupadd -g dev sgh #创建用户sgh并且添加到dev组
groupdel dev
2.3 添加用户到用户组中
gpasswd -a sgh dev
usermod -g dev sgh # 同时dev组的用户会被清空,慎用
2.4 显示最新的n条 user或者group
tail -n2 /etc/passwd
tail -n3 /etc/group
2.5 显示当前用户详情
id sgh
3.详细介绍
3.1 用户和密码
-u 指定uid或者属用户名字
-g 指定gid或者属组名字
-d 指定用户家目录
-s 指定shell
-M 不创建家目录
-G 添加扩展组,可以一次性添加多个组,使用“,”分开
3.1.1 增加uid为2000,gid为1000的用户sgh
useradd -u 2000 -g 1000 sgh
3.1.2 指定家目录、shell
useradd -d /home/sghx -s /sbin/nologin sgh
3.1.3 创建用户同时不创建用户家目录
useradd -M sgh
3.1.4 删除用户同时删除目录
userdel -r sgh
3.2 usermod更改用户属性
chmod -R ug+w /data/code # 将目录添加用户组可写
4. sudo命令
配置文件/etc/sudoers
4.1 添加授权用户
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
sgh ALL=(root) NOPASSWD:/usr/bin/ls,/user/bin/mv,/usr/bin/cp
第一部分是用户名,指定哪个用户将拥有sudo的权利
第二部分右边的ALL其实是一个用户名,即,sgh用户可以切换到哪个用户的身份,如果是ALL就表示所有用户。 sgh 可以切换到root身份;
第三部分ALL,用来指定sgh用户可以使用的命令都有哪些,如果是多个命令,用英文逗号隔开。可以在前面添加NOPASSWD 不使用密码。
4.2 添加授权用户组
%wheel ALL=(ALL) ALL 以组的形式添加。
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%dev ALL=(root) NOPASSWD: ALL
5. acl权限:
5.1. 查看:
getfacl a.txt #查看名称为a.txt的文件的acl权限
getfacl /root #查看root目录下的acl权限
5.2. 操作:
5.2.1 添加
setfacl -m user:lee:wrx a.txt #使用户lee对文件a.txt的权限为wrx
setfacl -m group:wang:wrx a.txt #使组对文件a.txt的权限为wrx
setfacl -d -m user:lee:wrx /root #使lee对/root文件夹里面的所有文件都有wrx权限
setfacl -R user:lee:wrx /root #使lee在/root文件夹下所有的文件的权限为wrx
5.2.2 修改:
setfacl -x user:lee:w a.txt #修改lee对文件a.txt的权限为w
5.2.3 删除:
setfacl -k #删除附加的权限