限制 sudo 用户的文件

限制 sudo 用户的文件

(这里的开发人员——系统管理领域的相对新手)。

有谁知道如何限制 sudo 用户的文件(无读取、写入或执行访问权限)?

简单介绍一下情况:我们目前正在寻找一种方法,为某些用户提供 sudo 访问权限,同时仍限制对一组文件的访问。除非实现这一点,否则 sudo 访问权限将不是一种选择,我们将根据需要将文件/命令列入白名单(或将它们包装在脚本中)以响应用户请求。

正如您所料,白名单选项需要更多的维护和延迟,因为用户需要等待系统管理员团队响应请求。

答案1

我通常实施此类限制的方式需要满足几个条件,否则很容易规避限制:

  • 该用户不属于该wheel组,只有该组才有权使用su(通过 PAM 强制执行)。
  • 用户将获得妥善保护 rbashPATH该目录具有指向私有的只读属性~/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*
    
  • 为用户提供了一个受限制的只读环境(想想诸如LESSSECURE、、变量TMOUT之类的东西HISTFILE)。

  • 可选地,将用户映射到 SELinux 用户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
    

    此外,/etc/security/namespace.init使所有骨架文件对于用户而言都是只读的,并归所有root

这样,您可以选择是否$USER可以代表自己执行任何命令(通过私人~/bin目录中的链接,通过 提供/etc/skel,如上所述),代表其他用户执行任何命令(通过sudo),或者根本不执行任何命令。

关于“访问一组文件”,您没有指定它是只读访问还是读写访问。

无论如何,这可以通过sudo规则来设置。我将实施规则以通过 授予对文件的只读访问权限rview和通过 授予读写访问权限rvim,后者通常使用文件editor中的指令进行配置sudoers

Defaults editor=/usr/bin/rvim

因此用户可以sudoedit允许文件。

使用您选择的配置管理工具可以相当容易地实现该解决方案。

可以非常快速地将新命令添加到私有~/bin目录中(因为它们只是从命名空间逻辑管理的符号链接)。sudo也可以用同样的方式管理新规则。

相关内容