Jef*_*ine 2 linux permissions centos sudo
(这里的开发人员 - 系统管理员世界中的相对新手)。
有谁知道可以限制 sudo 用户的文件(无读取、写入或执行访问权限)的方法吗?
关于这种情况的一点背景:我们目前正在寻找一种方法来为某些用户提供 sudo 访问,同时仍然限制对一组文件的访问。除非实现这一点,否则 sudo 访问将不是一个选项,我们将根据用户请求将文件/命令列入白名单(或将它们包装在脚本中)。
正如您所料,白名单选项需要更多的维护和延迟,因为用户要等待系统管理员团队响应请求。
我通常实施这种限制的方式需要满足几个条件,否则很容易绕过限制:
wheel组,唯一被授权使用的用户su(通过 PAM 强制执行)。用户获得了一个正确保护 rbash的只读PATH指向 private ~/bin,该~/bin/目录包含指向简单实用程序的链接:
$ ll ~/bin
total 0
lrwxrwxrwx. 1 root dawud 14 Sep 17 08:58 clear -> /usr/bin/clear*
lrwxrwxrwx. 1 root dawud 7 Sep 17 08:58 df -> /bin/df*
lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 egrep -> /bin/egrep*
lrwxrwxrwx. 1 root dawud 8 Sep 17 08:58 env -> /bin/env*
lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 fgrep -> /bin/fgrep*
lrwxrwxrwx. 1 root dawud 9 Sep 17 08:58 grep -> /bin/grep*
lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 rview -> /bin/rview*
lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 rvim -> /usr/bin/rvim*
lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 sudo -> /usr/bin/sudo*
lrwxrwxrwx. 1 root dawud 17 Sep 17 08:58 sudoedit -> /usr/bin/sudoedit*
lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 tail -> /usr/bin/tail*
lrwxrwxrwx. 1 root dawud 11 Sep 17 08:58 wc -> /usr/bin/wc*
Run Code Online (Sandbox Code Playgroud)给用户一个受限的只读环境(想想诸如LESSSECURE, TMOUT,HISTFILE变量之类的东西)。
staff_u并通过sudo.用户的/home,/tmp并且可能/var/tmp通过/etc/security/namespace.conf以下方式进行多实例化:
/tmp /tmp/.inst/tmp.inst-$USER- tmpdir:create root
/var/tmp /tmp/.inst/var-tmp.inst-$USER- tmpdir:create root
$HOME $HOME/$USER.inst/ tmpdir:create root
Run Code Online (Sandbox Code Playgroud)
此外,/etc/security/namespace.init使所有骨架文件对用户只读并归root.
通过这种方式,您可以选择是否$USER可以代表他/她自己(通过私有~/bin目录中的链接,通过 提供/etc/skel,如上所述),代表其他用户(通过sudo)或根本不执行任何命令。
关于“访问一组文件”,您没有指定它是只读访问还是读写访问。
在任何情况下,这都可以通过sudo规则进行设置。我将实施规则来授予对文件的只读访问权限rview和读写权限rvim,后者通常使用文件中的editor指令进行配置sudoers:
Defaults editor=/usr/bin/rvim
Run Code Online (Sandbox Code Playgroud)
所以用户可以sudoedit允许文件。
使用您选择的配置管理工具可以相当容易地实施此解决方案。
新命令可以~/bin非常快速地添加到私有目录中(因为它们只是从命名空间逻辑管理的符号链接)。新sudo规则也可以用同样的方式管理。
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |