一、用户相关文件
1. /etc/passwd 用户信息文件
root:x:0:0:root:/root:/bin/bash
第一列 用户名
第二列 密码位
第三列 用户ID,0 超级用户UID,1-499 系统用户(伪用户)UID,500-60000 普通用户UID
第四列 组ID
第五列 用户说明
第六列 用户家目录
第七列 登录shell
2. /etc/shadow root:$6$UL.IbTJScIBEZOCU$duGBnJDyRDqcJvPbxYKZZqZxdpGyRvVbPaQBJRA7bwxJ3deJXNCQJRXWp/BSuJMBLuwBJHOuqDb47HRpn5jj7.::0:99999:7:::
第一列 用户名
第二列 加密密码
我们也可以在密码前人为的加入“!”或“*”改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果。
注意所有伪用户的密码都是“!!”或“*”,代表没有密码是不能登录的。当然我新创建的用户如果不设定密码,它的密码项也是“!!”,代表这个用户没有密码,不能登录
第三列 (时间戳)密码最近修改时间,以1970年1月1日作为标准时间
第四列 两次密码的修改间隔时间(和第3字段相比)
第五列 密码有效期(和第3字段相比)
第六列 密码修改到期前的警告天数(和第5字段相比)
第七列 密码过期后的宽限天数(和第5字段相比)
第八列 密码失效时间
这里同样要写时间戳,也就是用1970年1月1日进行时间换算。如果超过了失效时间,就算密码没有过期,用户也就失效无法使用了
第九列 保留
3. /etc/group 组信息文件
root:x:0:
第一列 组名
第二列 组密码位
第三列 GID
第四列 此组中支持的其他用户.附加组是此组的用户
初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为初始组
附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组
4. 用户邮箱目录
/var/spool/mail/
5. 用户模板目录
/etc/skel
二、用户管理命令
1. 添加用户
1.1 useradd命令
useradd 选项 用户名
-u 550 指定用户UID
-g 组名 指定初始组,不要手工指定
-G 组名 指定附加组,把用户加入组,使用附加组
-c 说明 添加说明
-d 目录 指定用户家目录,目录不需要事先建好
-s shell /bin/bash
1.2 useradd默认值
useradd添加用户时参考的默认值文件主要有两个,分别是/etc/default/useradd和/etc/login.defs
1.2.1 /etc/default/useradd
GROUP=100
这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是GID为100的这个用户组。目前我们采用的机制私有用户组机制。
HOME=/home
这个选项是用户的家目录的默认位置,所以所有的新建用户的家目录默认都在/home/下
INACTIVE=-1
这个选项就是密码过期后的宽限天数,也就是/etc/shadow文件的第七个字段。如果是天数,比如10代表密码过期后10天后失效;如果是0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。这里默认值是-1,所以所有新建立的用户密码都不会失效
EXPIRE=
这个选项是密码失效时间,也就是/etc/shadow文件的第八个字段。也就说用户到达这个日期后就会直接失效。当然这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效
SHELL=/bin/bash
这个选项是用户的默认shell的。/bin/bash是Linux的标志shell,所以所有新建立的用户默认都具备shell赋予的权限
SKEL=/etc/skel
这个选项就是定义用户的模板目录的位置,/etc/skel/目录中的文件都会复制到新建用户的家目录当中
CREATE_MAIL_SPOOL=yes
这个选项定义是否给新建用户建立邮箱,默认是创建,也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spool/mail/下和用户名相同
1.2.2 /etc/login.defs
2. 设定密码
passwd [选项] 用户名
-l 暂时锁定用户。仅root用户可用
-u 解锁用户。仅root用户可用
--stdin 可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用
echo "123" | passwd --stdin sss
可以通过命令,把密码修改日期归零(shadow第3字段).这样用户一登陆就要修改密码
chage -d 0 sss
3. 用户信息修改
usermod [选项] 用户名
-u 修改用户UID
-d 修改用户家目录。家目录必须写绝对路径
-c 修改用户说明
-g 修改用户初始组
-G 修改用户附加组
-s 修改用户的登录shell
-e 修改用户的失效日期,格式为“YYYY-MM- DD”。也就是/etc/shadow文件的第八个字段
-L 临时锁定用户(Lock)
-U 解锁用户(Unlock)
4. 删除用户
userdel [-r] 用户名
-r 在删除用户时同时删除用户的家目录
5. 切换用户
su [选项] 用户名
- 选项只使用“-”代表连带用户的环境变量一起切换
-c 仅执行一次命令,而不切换用户身份
'-' 不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量。
三、组管理命令
1.添加用户组,groupadd
groupadd [选项] 组名
-g GUID 指定组ID
2. 删除用户组,groupdel
groupdel 组名
要删除的组不能是其他用户的初始组,也就是说这个组中没有初始用户才可以删除。如果组中有附加用户,则删除组时不受影响
3.把用户添加进组或从组中删除:gpasswd
gpasswd命令是用来设定组密码并指定组管理员的,但是gpasswd命令现在主要用于把用户添加进组或从组中删除
gpasswd [选项] 组名
-a 用户名 把用户加入组
-d 用户名 把用户从组中删除
也可以使用usermod命令把用户加入某个组,不过usermod命令的操作对象是用户,命令是“usermod -G grouptest user1”,把用户名作为参数放在最后;
而gpasswd命令的操作对象是组,命令是“gpasswd -a user1 grouptest”,把组名作为参数放在最后。
4. 改变有效组,newgrp
newgrp 组名
当用户属于多个组时,在创建文件时哪个组身份生效。使用newgrp命令可以在多个组身份之间切换。