我正在开发一个用于监控多台计算机的程序。该程序驻留在 raspberry pi 上,并使用 python 通过 ssh 向其他各种 Linux 计算机发出重启命令。
从安全角度考虑,有没有办法创建用户“foo”并且只允许用户“foo”ssh 登录和“sudo coldreboot”的能力?
答案1
来自 stackoverflow 的一个问题可能对你有用:
您还可以将密钥限制为允许的命令(在authorized_keys文件中)。
即用户无法通过 ssh 登录,然后拥有一组受限制的命令,而是只能通过 ssh 执行这些命令(例如“ssh somehost bin/showlogfile”)
您还可以在受限 shell 下创建用户,并限制他们使用以下定义的命令rssh.conf
:
将用户 foo 置于受限 shell 下:
usermod -s /usr/bin/rssh foo
配置以下权限:
nano /etc/rssh.conf
- allowcp :告诉 shell 允许 scp。
- allowftp:告诉 shell 允许 sftp。
- allowcvs :告诉 shell 允许使用 cvs。
- allowrdist :告诉 shell 允许 rdist。
- allowrsync :告诉 shell 允许 rsync。
这应该能给你一个良好的起点。