我需要在 Linux 系统中创建一个用户,该用户具有安装程序的权限,但没有访问其他用户目录的权限。
我曾尝试这样做:
# Create restricted user user
adduser --home /home/restricted_user restricted_user
# Edit normal user dir permissions
chmod -R 700 /home/normal_user/
# Add restricted user to sudoers in order to allow program installation
sudo adduser restricted_user sudo
然后,我尝试:
su restricted_user
sudo ls /home/normal_user
最后,如果受限用户使用 sudo 执行此操作,他就可以访问普通用户的目录
我怎样才能实施这一限制?
答案1
不要将用户添加到sudo
团体,不要授予他们一般的 root 访问权限。编辑/etc/sudoers
并指定一组用户可以以 root 身份运行的可执行文件。例如:
# in sudoers file
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot
笔记:
- 取决于你的Linux :
apt-get
/apt
,,,,,…dpkg
opkg
pacman
yum
- 使用完整路径。
- 正确的编辑方式
sudoers
是visudo
。 man 5 sudoers
有关语法的更多信息,请参阅。- 在构建更复杂的规则时请记住秩序很重要。
请记住,一个能够安装任意程序的坚定用户能够准备和安装设置用户标识版本ls
或“升级” sudo
,无论 是什么,都会授予他们 root 访问权限/etc/sudoers
。或者提供并安装一个在安装时执行任意操作的软件包(可能实际上没有安装任何东西)。防止这种情况可能并不容易。