第一列: 用户名
第二列: 密码位
第三列: 用户ID?
第四列: 组ID, GID添加用户时, 如果不指定用户所属组的初始组, 那么会建立和用户名相同的组
第五列: 用户说明
第六列: 用户家目录
第七列: 登录shell? ? ?/bin/bash
如何把普通用户变为超级用户: 把用户UID改为0
第一列: 用户名
第二列: 加密密码(我们可以在密码前人为的加入"!"或者"*"改变加密值让密码暂时失效, 使用这个用户无法登录, 达到暂时禁止用户登录的效果)(注意所有的伪用户的密码是"!!"或"*", 代表没有密码是不能登录的. 当然新建的用户如果不设定密码, 它的密码想也是"!!", 代表这个用户名没有密码, 不能登录
?第三列: 密码最近更改的时间, 1970年1月1日作为标准时间
第四列: 两次密码修改的时间间隔
第五列: 密码的有效期
第六列: 密码修改到期前的警告天数
第七列: 密码过期后的宽限天数
第八列: 密码失效时间
第九列: 保留
第一列: 组名
第二列: 组密码位
第三列: GID
第四列: 词组中支持的其他用户, 附加组是此组的用户
初始组: 每个用户初始组只有一个, 初始组只能有一个, 一般都是和用户名相同的组作为初始组
附加组: 每个用户属于多个附加组. 要把用户加入组, 都是加入附加组
如果我给用户组设定了组管理员, 并给该用户设定了组密码, 组密码就保存在这个文件当中. 组管理员就可以利用这个密码管理这个用户组了
这个邮箱在/var/spool/mail目录当中, 例如user1用户的邮箱就是/var/spool/mail/user1文件
手工删除用户实验: 手工删除, 如果可以正常建立用户, 证明用户删除干净
/etc/passwd
/etc/shadow/etc/group
/etc/gshadow
/home/user1
/var/spool/mail/user1
这些目录中与此用户相关的内容需要删除干净才行
useradd [选项] 用户名
选项:
? ? ? ? -u 数字: 指定UID
? ? ? ? -g 组名: 指定初始组,?不要手工指定, 需要事先创建初始组
? ? ? ? -G 组名: 指定附加组, 把用户加入组, 使用附加组
? ? ? ? -c 说明: 添加说明
? ? ? ? -d 目录: 手工指定家目录, 目录不需要事先建立
? ??? ? -s shell: /bin/bash
useradd添加用户时参考的默认值文件主要有两个, 分别是/etc/default/useradd 和 /etc/login.defs
1)/etc/default/useradd
2)/etc/login.defs
passwd [选项] 用户名
选项:
? ? ? ? -l: 暂时锁定用户. 仅root用户可用
? ? ? ? -u: 解锁用户. 仅root用户可用
? ? ? ? --stdin: 可以将通过管道符输出的数据作为用户的密码. 主要在批量添加用户时使用
usermod [选项] 用户名
选项:????????
? ? ? ? -u UID: 修改用户UID
? ? ? ? -d 家目录: 修改用户的家目录, 这里必须绝对路径
? ? ? ? -c 用户说明: 修改用户说明信息, 就是/etc/passwd文件的第五个字段
? ? ? ? -g 组名: 修改用户的初始组, 就是/etc/passwd文件的第四个字段
? ? ? ? -G 组名: 修改文件文件的附加组, 就是把用户加入其他用户组
? ? ? ? -s shell: 修改用户的登录shell. 默认是/bin/bash
? ? ? ? -e 日期: 修改用户的失效日期, 格式为"YYYY-MM-DD", 也就是/etc/shadow文件的第八个字段
? ? ? ? -L: 暂时锁定用户
? ? ? ? -U: 解锁用户
????????-l 新名 旧名: 修改用户名
? ? ? ?
userdel [-r] 用户名
选项:
? ? ? ? -r: 在删除用户的同时删除用户的家目录(注意一定要有-r, 否则家目录还要手动删除)
su命令可以切换不同的用户身份
su [选项] 用户名
选项:?????????
? ? ? ? -: 表示连带用户的环境变量一起切换
? ? ? ? -c 命令: 仅执行一次命令, 而不切换用户身份
groupadd [选项] 组名
选项:?????????
? ? ? ? -g GID: 指定组ID
groupdel 组名
注意: 要删除的组不能是其他用户的初始组,? 如果组中有附加用户删除组时不受影响
其实gpasswd命令时用来设定组密码并指定组管理员的, 不过组密码和组管理员功能很少使用. 而且完全被sudo命令却带, 所以gpasswd命令现在主要用于把用户添加到组中或从组中删除
gpasswd [选项] 组名
选项:?
? ? ? ? -a 用户名: 把用户加入组
? ? ? ? -d 用户名: 把用户从组中删除
我们说过, 每个用户可以属于一个初始组(用户时这个组的初始用户), 也可以属于多个附加组. 既然用户可以属于这么多用户组, 那么用户创建文件后, 默认生效的组身份是哪一个呢? 当然是初始用户组的组身份生效了, 因为初始组是用户一旦登录就直接获得的组身份. 也就是说, 用户在创建文件后, 文件的属组是用户的初始组. 既然用户属于多个用户组, 那么能不能改变用户的有效组呢? 使用命令newgrp就可以切换用户的有效组了
newgrp 组名