创建新用户并启用ssh登录
本文适合需要在服务器上创建专用账号(如备份用户)的运维人员。你会学到:创建用户并禁用其 sudo/su 提权能力,配置 SSH 公钥登录及正确的目录权限。
1. 创建用户
1.1 创建用户
首先创建一个名为 rclone-backup 的用户,并为其设置密码:
sudo adduser rclone-backup
按照提示设置密码并填写其他信息。
1.2 禁用 sudo 权限
为了禁用 rclone-backup 用户使用 sudo -i,可以通过将该用户从 sudo 组中移除来实现:
sudo deluser rclone-backup sudo
1.3 禁用 su 命令
su 命令通常由 /etc/pam.d/su 文件控制。可以通过修改该文件来禁止某些用户使用 su。编辑 /etc/pam.d/su 文件:
sudo nano /etc/pam.d/su
然后在文件中找到类似于以下的行:
# Uncomment the following line to enable 'su' access for wheel group.
# auth required pam_wheel.so use_uid
将该行注释掉或确保没有其他组能够使用 su,从而禁止 rclone-backup 用户使用 su。
此外,可以使用 pam_wheel.so 来限制哪些用户可以使用 su。例如,编辑 /etc/group 文件并确保 rclone-backup 用户不属于 wheel 组。
1.4 确认权限
为了确保 rclone-backup 用户无法使用 sudo 或 su,可以通过以下命令进行测试:
sudo -u rclone-backup sudo -i
sudo -u rclone-backup su
这两条命令应该都会被拒绝。如果一切正常,rclone-backup 用户就只能访问其权限范围内的资源,不能切换到 root 用户。
2. 配置ssh登录
配置公钥
mkdir /home/rclone-backup/.ssh
vim authorized_keys
配置权限
OpenSSH 出于安全考虑,它要求私钥和权限受限。
# 设置 home 目录权限
chmod 755 /home/rclone-backup
# 设置 .ssh 目录权限
chmod 700 /home/rclone-backup/.ssh
# 设置 authorized_keys 文件权限
chmod 600 /home/rclone-backup/.ssh/authorized_keys
# 更改所有权为 rclone-backup 用户
chown -R rclone-backup:rclone-backup /home/rclone-backup/.ssh
3. 登录ssh
使用ssh客户端登录ssh:
ssh -i 私钥路径 rclone-backup@服务器IP
验证与自查
sudo -u rclone-backup sudo -i与sudo -u rclone-backup su均被拒绝- 用私钥登录
rclone-backup@服务器IP成功,且无需密码 ls -ld /home/rclone-backup/.ssh权限为700,authorized_keys权限为600- 登录后执行
sudo -i提示无权限,说明无法提权