跳到正文

服务器通过SSH连接创建只读账号

服务器通过SSH连接创建只读账号
目录
  1. 创建用户
  2. ACL 授权
  3. 只读用户权限扩展(只读命令的sudo白名单)
  4. WindowsPowerShell创建ssh连接
  5. 查看当前服务器操作系统

创建用户#

useradd -m wangsd-read
passwd wangsd-read
(w******9)

ACL 授权#

yum install acl -y
setfacl -R -m u:wangsd-read:rX /data
setfacl -R -d -m u:wangsd-read:rX /data

只读用户权限扩展(只读命令的sudo白名单)#

  • 确认主配置会加载这个目录
    grep -Rin 'includedir' /etc/sudoers
  • 确认命令实际路径(输出里的路径替换进下面的配置)
    which du find lsof journalctl lsblk fdisk df ls
  • 创建配置文件
echo 'Cmnd_Alias READONLY_DISK = /usr/bin/du, /usr/bin/find, /usr/sbin/lsof, /usr/bin/journalctl, /usr/bin/lsblk, /usr/sbin/fdisk, /usr/bin/df, /usr/bin/ls' > /etc/sudoers.d/wangsd-readecho 'wangsd-read ALL=(root) NOPASSWD: READONLY_DISK' >> /etc/sudoers.d/wangsd-read
  • 授权与核验
    chmod 440 /etc/sudoers.d/wangsd-read
    visudo -c

WindowsPowerShell创建ssh连接#

Get-Content C:\Users\sidek\.ssh\id_ed25519.pub | ssh -p 22 wangsd-read@110.41.12.11 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
  • 配置ssh config
Host whisglintHostName 36.151.142.165User wangsd-readIdentityFile C:\Users\sidek\.ssh\id_ed25519
  • SSH 公钥认证所需的目录和文件权限
    chown -R wangsd-read:wangsd-read /home/wangsd-read/.ssh
    chmod 700 /home/wangsd-read/.ssh
    chmod 600 /home/wangsd-read/.ssh/authorized_keys

  • 追加docker环境访问权限

echo 'Cmnd_Alias READONLY_DOCKER = /usr/bin/docker system df, /usr/bin/docker system df *, /usr/bin/docker ps, /usr/bin/docker ps *, /usr/bin/docker images, /usr/bin/docker image ls *, /usr/bin/docker stats --no-stream' >> /etc/sudoers.d/wangsd-readecho 'wangsd-read ALL=(root) NOPASSWD: READONLY_DOCKER' >> /etc/sudoers.d/wangsd-read

查看当前服务器操作系统#

cat /etc/os-release