安全授予用户sudo访问权限

时间:2014-04-16 22:47:21

标签: ubuntu vim sudo

根据我以往的知识,通常如果您想为某些命令授予用户sudo访问权限,您可以编辑/ etc / sudoers文件并添加该行

username ALL=(ALL) listofcommands

根据我的理解,这为用户提供了访问这些命令的权限,而不是其他任何命令。但是,在我的计算机安全类中,其中一个问题是关于以这种方式授予用户sudo访问权限是否安全,解释为什么它是或不是,以及是否有另一种方式来授予用户访问权限具体地

larry ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf 

所以vim和网站配置。我一直认为它是安全的,但这个问题暗示它不是,在做了一些研究之后,大多数人似乎都是这样做的。所有的不安全感似乎源于滥用sudo本身。在这种情况下,唯一的变化是修改/ etc / sudoers。用户不知道密码,也没有sudo访问其他任何东西(例如,调用shell)。

我能想到的唯一一件事就是让他sudo访问vim是一个坏主意,因为据我所知,vim有能力在命令行上执行命令吗?

但主要的问题是,如果我想给一个特定的用户sudo访问只有某些命令,除了将它们添加到sudoers之外,我不知道任何其他方式(除了强迫他问一个管理员每次进行sudo访问)。我无法在网上找到任何东西,因为我认为几乎每个人都这样做。

2 个答案:

答案 0 :(得分:1)

问题不仅仅是vim可以运行外部命令。

vim是一个编辑器,因此如果它以root运行,您可以直接修改/etc/passwd/etc/shadow等系统文件,这样可以重置密码在您想要的任何帐户上,包括root帐户。

更具体地说,我可以使用vim命令启动/usr/bin/vim /etc/httpd/confs/httpd.conf,然后立即键入:e /etc/passwd,现在我可以写信给您/etc/passwd

如果您只是想保护一个文件/etc/httpd/confs/httpd.conf,可以使用Access Control Lists并将用户添加到该文件的ACL中。

您还可以使用chmod g+w的非根组使该文件可写,并将用户添加到该组。

答案 1 :(得分:0)

由于Vim确实能够运行外部命令(:!命令和:call system()),因此具有对Vim的root访问权限与对系统的完全访问权限一样好; sudo保护无济于事。

要授予用户对受保护文件的编辑权限,您需要编写一个脚本,让用户自己编辑临时副本(因此从Vim启动的任何命令只有用户的权限,另一个好处是用户的Vim也考虑了设置,然后仅使用提升的 copy 命令将临时副本移回原始的受保护位置。 sudo -e / sudoedit就是这样;查看手册页了解详情。

相关问题