用户&组数据文件
用户清单通常保存在 /etc/passwd
文件内,把哈希编码后的密码保存在 /etc/shadow
文件内。这两个文件都是纯文本档,以简单的格式保存,可以用文本编辑器读取与修改。每个用户占一行,其字段以冒号分隔 (“:”)。
/etc/passwd
用户清单,按固定顺序记录字段,并以 : 隔开,如:admin:x:1000:1000::/home/admin:/bin/bash
,字段清单:
- 用户名,例如 admin;
- 密码: 用 DES, MD5, SHA-256 或 SHA-512 加密过的密码,特殊值
x
表示密码保存在 /etc/shadow
文件;
- uid:用于辨识用户的不重复数字;
- gid:用户主要群组 (Debian 的默认值系为每个用户创建一个群组) 的不重复号码;
- GECOS:用户常规信息,类似于备注,例如其真实姓名和电话号码等;
- 登入目录,登录后进入该目录,用于保存用户的个人文件 (环境变量 $HOME 通常指向此处);
- 登录时运行的程序。通常是命令解译器 (shell),若指定为
/bin/false
(不做任何事并立即回到控制),则用户无法进入系统;若指定为 /usr/sbin/nologin
则是禁止登录。
/etc/shadow
保存用户密码,含以下的字段:
/etc/group
用户组信息,包括以下的字段:
- 群组名称;
- 密码 (可选):只在加入群组时会用到 (使用 newgrp 或 sg 命令,见专栏 基本知识 在多个群组工作);
- gid:不重复的群组识别码;
- 成员清单:属于此群组的用户名清单,以逗号分隔。
用户&组管理命令及参数说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| useradd 用户名
参数: -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在, 则同时使用 -m 选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组,多个组用逗号分隔。 -s Shell 文件 指定用户的登录 Shell。 -u 用户号 指定用户的用户号,如果同时有 -o 选项,则可以重复使用其他用户的标识号。
passwd 用户名
参数: -l 禁用账号。 -u 账号解锁。 -d 使账号无密码。 -f 强迫用户下次登录时修改密码。
usermod 用户名
参数 -c 备注。 -d 登入目录 指定用户主目录,如果此目录不存在, 则同时使用 -m 选项,可以创建主目录。 -e 有效期限 -f 缓冲天数 修改在密码过期后多少天即关闭该帐号。 -g 用户组 指定用户所属的用户组。 -G 用户组 指定用户所属的附加组,多个组用逗号分隔。 -l 帐号名称 修改用户帐号名称。 -L 锁定用户密码,使密码无效。 -s Shell文件 指定用户的登录 Shell。 -u 用户ID 指定用户的用户的标识号,如果同时有 -o 选项,则可以重复使用其他用户的标识号。 -U 解除密码锁定。
userdel 用户名
groupadd 组名
参数: -g GID 指定新用户组的组标识号(GID)。 -o 一般与 -g 选项同时使用,表示新用户组的 GID 可以与系统已有用户组的 GID 相同。
groupmod 组名
参数: -g GID 指定新用户组的组标识号(GID)。 -o 一般与 -g 选项同时使用,表示新用户组的 GID 可以与系统已有用户组的 GID 相同。
groupdel 组名
su 用户名 su - 用户名
usermod -aG sudo 用户名
newgrp sudo
getent group sudo
groups 用户名
gpasswd -d 用户名 组名
chage [options] user 命令参数: -d 指定密码最后修改日期 -E 密码到期的日期,过了这天,此账号将不可用。0表示马上过期,-1表示永不过期。 -h 显示帮助信息并退出 -I 密码过期后,锁定账号的天数 -l 列出用户以及密码的有效期 -m 密码可以更改的最小天数。为零代表任何时候都可以更改密码。 -M 密码保持有效的最大天数。 -W 密码过期前,提前收到警告信息的天数。
|
实例
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| groupadd users
useradd yiba -g users
usermod -aG sudo yiba
passwd yiba
passwd -l yiba
chage -E 1 yiba
usermod -e 1 yiba
usermod -s /bin/false
|
创建代理的用户
用户可等过 key
连接系统,用来作为 socks5
代理,但是不能登录到系统终端。
1 2 3 4 5 6 7 8 9 10 11
| useradd pxy -g proxy -s /bin/false mkdir -p /home/pxy/.ssh cd /home/pxy/.ssh
vim authorized_keys
chown pxy:proxy -R /home/pxy
|
注
- usermod: command not found
要使用 su -
切换到 root 用户才会加载用户环境变量。