用户管理指令useradd/userdel/usermod
useradd : 添加用户 / userdel :删除用户 / usermod:修改用户
useradd/usermod [选项] 用户名选项:
-c 创建用户描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-g 用户组 指定用户所属的用户组
-G 附加用户组,指定用户所属附加用户组(usermod -a -G 为用户追加组,用户以前添加的组就会清空掉)
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
userdel:删除用户
userdel [选项] 用户名-r 它的作用是把用户的主目录一起删除
组管理指令groupadd/groupdel/groupmod
groupadd :添加组
groupadd [选项] 组名-f, --force 如果组已经存在则成功退出 ,并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录(指定新的根目录,增加了系统的安全性,限制了用户的权力)
groupmod :修改组
groupmod [选项] 组名-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
groupdel :删出组
groupdel [选项] 组名-h, --help 显示此帮助信息并推出
-R, --root CHROOT_DIR chroot 到的目录
-f, --force 删除组,即使它是用户的主要组
用户口令的管理指令passwd
passwd:修改用户密码
passwd [选项] 用户名-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
组口令的管理指令gpasswd
gpasswd:修改组密码
gpasswd [选项] 组名-a 添加组成员用户(保留用户以前添加的组)
-d 删除组成员用户
-A 指定组成员组长
-r 删除组密码
-R 限制用户使用该组权限
切换到其他用户组指令newgrp
newgrp 其它组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
用户和用户组信息文件/etc/passwd, /etc/shadow, /etc/group,/etc/gshadow
/etc/passwd : 用户口令文件
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
root:x : 0 : 0 : root :/root :/bin/bash
"用户名":代表用户账号的字符串,通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号( : ),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
"口令":虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”
"用户标识号":一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500
"组标识号":“组标识号”字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。
"注释性描述":字段通常记录用户的真实姓名及个人细节。用做finger命令的输出。
"主目录":用户的起始工作目录,用户在登录到系统之后所处的目录,各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
"登录Shell":Shell是用户与Linux系统之间的接口,常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等,如果不指定Shell,系统默认使用/bin/sh。没有shell字段,称作为伪用户,这些用户在/etc/passwd文件中也占有一条记录,它们的存在主要是方便系统管理,但是不能登录,满足相应的系统进程对文件属主的要求。
/etc/shadow:用户加密口令文件
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
daemon:*:17743:0:99999:7:::
"登录名": 是与/etc/passwd文件中的登录名相一致的用户账号
"口令" :字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
"最后一次修改时间": 表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。
"最小时间间隔": 指的是两次修改口令之间所需的最小天数。
"最大时间间隔": 指的是口令保持有效的最大天数。
"警告时间": 字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
"不活动时间": 表示的是用户没有登录活动但账号仍能保持有效的最大天数。
"失效时间": 字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
/etc/group :组口令文件
组名:口令:组标识号:组内用户列表
root : x :0:
"组名": 是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
"口令": 字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
"组标识号": 与用户标识号类似,也是一个整数,被系统内部用来标识组。
"组内用户列表": 是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
/etc/gshadow :组口令加密文件
批处理创建用户指令newusers
newusers < 文件
通过数据流的方式修改/etc/passwd,用于批处理的方式一次创建用户多个命令
批处理修改用户密码指令chpasswd
echo 用户名:用户密码 | chpasswd
chpasswd < file批量修改用户密码
如果给普通用户/usr/sbin/chpasswd的写权限,也能实现对用户密码的改写
取消用户口令加密指令pwunconv
pwunconv
表示它可以将/etc/shadow产生的shadow密码译码,然后回写到/etc/passwd中,同时也将/etc/shadow文件中
的密码字段删除,来取消shadow password的功能
取消群组口令加密指令grpunconv
grpunconv
表示它可以将/etc/gshadow产生的shadow密码译码,然后回写到/etc/group中,同时也将/etc/gshadow文件中
的密码字段删除,来取消gshadow password的功能
恢复用户口令加密指令pwconv
pwconv
恢复用户shadow password的功能,增加/etc/shadow文件中的密码字段
恢复群组口令加密指令grpconv
grpconv
恢复组shadow password的功能,增加/etc/gshadow文件中的密码字段