【useradd 命令】
在 Linux 中,想要新建一个用户可以使用 useradd
命令,其命令格式为:useradd [选项] 用户账号名
其中,各选项含义如下:
- -u:后接 UID,直接指定一特定 UID 给新建的账号
- -g:后接用户组名,该用户组为账号的初始用户组,会放在
/etc/passwd
的第四个字段中 - -G:后接用户组名,该用户组为新建账号还可加入的用户组,会修改
/etc/group
中相应的字段 - -M:系统账号默认值,强制执行,不创建用户主文件夹
- -m:一般账号默认值,强制执行,创建用户主文件夹
- -d:指定某个目录成为主文件夹,而不使用默认值,要求使用绝对路径
- -s:后接一个 Shell,默认为
/bin/bash
,即/etc/passwd
的第八个字段 - -f:后接密码过期宽限的天数,即
/etc/shadow
的第七个字段,0 为立即失效,-1 为永不失效 - -e:后接格式为 YYYY-MM-DD 的日期,会写入
/etc/shadow
的第八个字段,即账号失效日期
可以发现,新建的账户的默认的用户组与账号名相同,这是因为 Linux 系统的私有用户组机制,即系统会创建一个与账号一样的用户组作为初始用户组,且主文件夹权限会设置为 700
实际上,系统已经规定好诸多默认值,可以简单的使用 useradd 用户账号名
来创建用户,这些规定好的默认值可以使用 useradd -D
来进行查看,这个命令实际上是去调用 /etc/defualt/useradd
的数据
各行含义如下:
- GROUP:新建账号的初始用户组的 GID
- HOME:用户文件夹的基准目录
- INACTIVE:密码过期后是否会失效
- EXPIRE:账号失效的日期
- SHELL:默认使用的 Shell
- SKEL:用户主文件夹参考基准目录
- CREATE_MAIL_SPOOL:是否创建用户的 mailbox
【passwd 命令】
在使用 useradd
命令创建账号后,默认情况下,该账号是被封锁的,需要在设置好密码后才可登录
passwd
命令用于设置账号的密码,该命令格式为:passwd [选项] 账号名
,当不加账号名时,修改的是当前用户的密码
常见选项有:
- -l:lock,会在
/etc/shadow
第二个字段加上!
,使得密码失效 - -u:unlock,与 -l 选项相对,使密码解锁
- -S:列出密码相关参数,即
/etc/shadow
中的大部分信息 - -n:后接多久不可修改密码天数,即
/etc/shadow
的第四个字段 - -x:后接多久内必须修改密码天数,即
/etc/shadow
的第五个字段 - -w:后接密码过期前警告天数,即
/etc/shadow
的第六个字段 - -i:后接密码失效日期,即
/etc/shadow
的第七个字段 - —stdin:通过前一个管道数据作为密码输入
需要注意的是,Linux 使用 PAM 模块来管理密码,管理机制写在 /etc/pam.d/passwd
中,而该文件与密码相关的测试模块使用的是 pam_cracklib.so
,这个模块会检验密码相关的信息,如果太过简单将不会被采纳
【chage 命令】
chage
命令可以修改密码的详细参数,相较于 passwd
命令来说更为简便,命令格式为:chage [选项] 用户账号名
常见选项如下:
- -l:列出账号的详细密码参数并进行更改
- -d:后接最近一次更改密码的日期,即
/etc/shadow
的第三个字段 - -m:后接密码最短保留天数,即
/etc/shadow
的第四个字段 - -M:后接密码多久必须修改天数,即
/etc/shadow
的第五个字段 - -W:后接密码过期前警告天数,即
/etc/shadow
的第六个字段 - -I:后接密码失效天数,即
/etc/shadow
的第七个字段 - -E:后接账号失效日期,即
/etc/shadow
的第八个字段
【usermod 命令】
当使用 useradd
命令时加入了错误的参数,最直接的方式是修改 /etc/passwd
和 /etc/shadow
文件,但 Linux 中提供了 usermod
命令来直接对账号相关数据进行微调,命令格式为:usermod [选项] 账号用户名
常见的选项有:
- -l:后接账号名,修改账户名,即修改
/etc/passwd
的第一个字段 - -u:后接 UID,修改 UID,即修改
/etc/passwd
的第三个字段 - -g:后接初始用户组,修改初始用户组,即修改
/etc/passwd
的第四个字段 - -c:后接账号说明,修改账号说明,即修改
/etc/passwd
的第五个字段 - -d:后接账号主文件夹,修改账号主文件夹,即修改
/etc/passwd
的第六个字段 - -s:后接 Shell,修改默认 Shell,即修改
/etc/passwd
的第八个字段 - -L:将用户密码冻结,会在
/etc/shadow
第二个字段加上!
,使得密码失效 - -U:与 -L 选项相对,使密码解锁
- -f:后接密码失效天数,修改密码失效天数,即修改
/etc/shadow
的第七个字段 - -e:后接账号失效日期,修改账号失效日期,即修改
/etc/shadow
的第八个字段 - -G:后接次要用户组,修改次要用户组,会修改
/etc/group
中的相关数据 - -a:与 -G 合用来增加次要用户组
【userdel 命令】
userdel
命令用于删除用户相关数据,包括:
- 用户账号/密码相关参数:
/etc/passwd
、/etc/shadow
- 用户组相关参数:
/etc/group
、/etc/gshadow
- 用户个人文件数据:
/home/用户账号名
、/var/spool/mail/用户账号名
该命令格式为:userdel [-r] 用户账号名
,其中 -r 选项是连同用户的主文件夹也删除