使用Root
权限执行以下命令
1 创建用户
adduser --home /home/john --shell /bin/bash --uid 1001 --gecos "Dorian S" dorian
或
useradd -m -d /home/john -s /bin/bash -c "Dorian S" -u 1001 dorian
adduser
命令
adduser
是一个高层脚本,提供了更友好的交互式体验,适合手动操作
参数 | 意义 | 示例值 |
---|---|---|
--home |
指定用户的主目录 | --home /home/dorian |
--shell |
指定用户的默认 shell | --shell /bin/bash |
--uid |
指定用户的 UID | --uid 1001 |
--gid |
指定用户的主组 | --gid developers |
--ingroup |
指定用户的主组 | --ingroup developers |
--disabled-password |
创建用户但不设置密码 | --disabled-password |
--gecos |
添加用户的注释信息(如全名) | --gecos "Dorian S" |
--system |
创建系统用户 | --system |
useradd
命令的参数
useradd
是一个底层命令,提供了更多的灵活性和选项,适合脚本化操作。
参数 | 意义 | 示例值 |
---|---|---|
-c |
添加用户的注释信息(如全名) | -c "Dorian S" |
-d |
指定用户的主目录 | -d /home/dorian |
-e |
设置用户账户的过期日期 | -e 2025-12-31 |
-f |
设置密码过期后的宽限天数 | -f 7 |
-g |
指定用户的主组 | -g developers |
-G |
指定用户的附加组 | -G admins,webadmin |
-m |
自动创建用户的主目录 | -m |
-M |
不创建用户的主目录 | -M |
-s |
指定用户的默认 shell | -s /bin/bash |
-u |
指定用户的 UID | -u 1001 |
-r |
创建系统用户 | -r |
如果用户需要通过ssh
登录再进行以下配置,如果只是添加不需要登录的用户直接使用adduser [username]
创建即可
2 设置用户密码
passwd [username]
执行命令后输入密码即可
通常情况下,设置完密码后用户就可以登录了,如果不能登录,参考 3 修改ssh
配置
3 修改ssh
配置(可选)
# 1. 打开配置文件
vim /etc/ssh/sshd_config
# 2. 修改 PasswordAuthentication 参数(建议注释原有值,再复制一行修改)
PasswordAuthentication yes
# 3. 重启 ssh 服务
systemctl restart sshd
4. 添加sudo
权限(任选其一)
4.1 将用户加入到sudo
权限组(最简单)
原理:默认的用户权限配置文件(/etc/sudoers)中,
sudo
用户组拥有ALL
权限
adduser [username] sudo
# 例如 adduser dorian sudo
# 验证用户组
groups [username]
# 如果输出的内容中有 sudo 即成功
4.2 修改默认权限配置文件
权限配置文件为
/etc/sudoers
,这个文件默认是没有写权限的,非常敏感。不建议修改!!!
# 1 添加写权限
chmod +w /etc/sudoers
# 2 打开文件
vim /etc/sudoers
# 3 写入配置
[username] ALL=(ALL) ALL # 例如: dorian ALL=(ALL) ALL
# 4 移除写权限
chmod -w /etc/sudoers
4.3 添加新的权限配置文件(建议)
原理:默认权限配置文件
/etc/sudoers
中有一条命令@includedir /etc/sudoers.d
会加载/etc/sudoers.d
文件夹下的所有权限配置文件,因此可以针对每个用户(或用户组)创建一个权限配置文件更利于维护
# 1 创建文件
vim /etc/sudoers.d/dorian
# 2 写入配置
dorian ALL=(ALL) ALL
-
三段配置的含义:
- 第一段:用户/用户组
- 用户名(如 dorian):直接指定用户。
- 用户组(以 % 开头,如 %sudo):授权整个用户组。
- 别名(通过 User_Alias 定义):例如 User_Alias ADMINS = dorian, alice。
- 第二段:适用主机(表示允许执行 sudo 的主机范围,可以是:)
ALL
:允许所有主机:允许所有主机- 主机名/IP(如 localhost 或 192.168.1.1):限制特定主机。
- 别名(通过 Host_Alias 定义):例如 Host_Alias SERVERS = server1, 192.168.1.*
- 第三段:权限规则,包含两部分:
- 切换身份(
(ALL)
) - 允许的命令(
ALL
)
- 切换身份(
5 sudo
免密操作
配置完权限的用户虽然可以使用
sudo
命令,但是每隔一段时间都要输入一次密码,如果密码比较复杂,非常影响操作.
想要免密使用sudo
操作只需修改权限配置中的第三段参数。例如:
# 1 打开配置文件
vim /etc/sudoers.d/dorian
# 2. 修改配置,添加 NOPASSWD 参数
dorian ALL=(ALL) NOPASSWD:ALL