1.用户权限是通过创建用户时分配的用户 ID(user ID,UID)来跟踪的。UID 是个数值,每个用户都有一个唯一的 UID。
但用户在登录系统时是使用登录名(login name)来代替 UID 登录的。登录名是用户用来登录系统的最长 8 字符的字符串(字符可以是数字或字母),同时会关联一个对应的密码。
0-500系统用户
2./etc/passwd 文件中包含的内容远不止用户的登录名和 UID。该文件各个字段的含义如下。
(1)登录用户名
(2)用户密码
(3)用户账户的 UID(数字形式)
(4)用户账户的组 ID(数字形式)
(5)用户账户的文本描述(称为备注字段)
(6)用户$HOME 目录的位置
(7)用户的默认 shell
3./etc/shadow 文件
/etc/shadow 文件为系统中的每个用户账户都保存了一条记录。记录就像下面这样。
rich:$1$.FfcK0ns$f1UgiyHQ25wrB/hykCn020:11627:0:99999:7:::
/etc/shadow 文件中的每条记录共包含 9 个字段。
(1)登录名,对应于/etc/passwd 文件中的登录名。
(2)加密后的密码。
(3)自上次修改密码后已经过去的天数(从 1970 年 1 月 1 日开始计算)。
(4)多少天后才能更改密码。
(5)多少天后必须更改密码。
(6)密码过期前提前多少天提醒用户更改密码。
(7)密码过期后多少天禁用用户账户。
(8)用户账户被禁用的日期(以从 1970 年 1 月 1 日到当时的天数表示)。
(9)预留给以后使用的字段。
4.要想查看所使用的 Linux 发行版的系统默认值,可以使用加入了-D 选项的 useradd 命令。
# useradd -D 选项显示了在命令行中创建新用户账户时,如果不明确指明具体值,useradd 命令所使用的默认值。
这些默认值的含义如下。
(1)新用户会被添加到 GID 为 100 的公共组。
(2)新用户的主目录会位于/home/loginname。
(3)新用户账户密码在过期后不会被禁用。
(4)新用户账户不设置过期日期。
(5)新用户账户将 bash shell 作为默认 shell。
(6)系统会将/etc/skel 目录的内容复制到用户的$HOME 目录。
(7)系统会为该用户账户在 mail 目录下创建一个用于接收邮件的文件。
可以用默认系统参数创建一个新用户账户,然后检查一下新用户的$HOME 目录:
# useradd -m test
5.useradd 命令行选项
-c comment 给新用户添加备注
-d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话)
-e expire_date 用 YYYY-MM-DD 格式指定账户过期日期
-f inactive_days 指定账户密码过期多少天后禁用该账户;0 表示密码一过期就立即禁用,-1 表示不使用这个功能
-g initial_group 指定用户登录组的 GID 或组名
-G group ... 指定除登录组之外用户所属的一个或多个附加组
-k 必须和-m 一起使用,将/etc/skel 目录的内容复制到用户的$HOME 目录
-m 创建用户的$HOME 目录
-M 不创建用户的$HOME 目录,即便默认设置里要求创建
-n 创建一个与用户登录名同名的新组
-r 创建系统账户
-p passwd 为用户账户指定默认密码
-s shell 指定默认的登录 shell
-u uid 为账户指定一个唯一的 UID
6.useradd 修改系统默认值
-b default_home 修改用户$HOME 目录默认创建的位置
-e expiration_date 修改新账户的默认过期日期
-f inactive 修改从密码过期到账户被禁用的默认天数
-g group 修改默认的组名称或 GID
-s shell 修改默认的登录 shell
7.删除用户
下面是用 userdel 命令删除已有用户账户的一个例子:
# userdel -r test
# ls -al /home/test
8.用户账户修改工具
usermod 修改用户账户字段,还可以指定主要组(primary group)以及辅助组(secondary group)的所属关系
passwd 修改已有用户的密码
chpasswd 从文件中读取登录名及密码并更新密码
chage 修改密码的过期日期
chfn 修改用户账户的备注信息
chsh 修改用户账户的默认登录 shell
(1)usermod
(1)-l:修改用户账户的登录名。
(2)-L:锁定账户,禁止用户登录。
(3)-p:修改账户密码。
(4)-U:解除锁定,恢复用户登录。
(2)passwd 和 chpasswd
passwd 命令可以方便地修改用户密码:
# passwd test
-e 选项可以强制用户下次登录时修改密码。
如果需要为系统中的大量用户修改密码
可以用重定向命令将包含 username:password对偶的文件重定向给该命令。
# chpasswd < users.txt
(3)chage 命令选项
-d 设置自上次修改密码后的天数
-E 设置密码过期日期
-I 设置密码过期多少天后锁定账户
-m 设置更改密码的最小间隔天数
-M 设置密码的最大有效天数
-W 设置密码过期前多久开始出现提醒信息
1万+





