我想用KomodoEdit更改需要sudo权限的文件。不过,我不能从KomodoEdit开始使用sudo (不管出于什么原因)。我能以某种方式授予Komodo编辑这些文件的权限(特别是我指的是apache2文件和/etc/hosts)吗?
发布于 2015-11-05 14:15:31
使用sudoedit <file>。它创建文件的本地副本,使用用户权限对其进行编辑,并将其复制回原始位置。其优点是编辑器以常规用户的身份运行。
若要指定与默认编辑器不同的编辑器,可以临时设置EDITOR:
EDITOR=/usr/bin/someeditor sudoedit /etc/hosts这需要安装sudo包,并将用户添加到sudo组中。
发布于 2015-11-05 14:02:53
理论上,您可以通过在komodoedit上设置suid位,并将它的所有者更改为root来做到这一点。
sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit它所做的:
chown将所有者设置为根chmod u+s为任何执行文件的人提供与所有者相同的权限(用于执行)。由于我们已经将所有者设置为root,因此有效的执行所有者将变为root。
这可能不是您所寻求的答案,因为它将授予所有用户有效的根编辑器。
sudoedit,正如marco提到的,可能更正确,更安全。
发布于 2015-11-05 16:04:59
一种相对干净的方法是使用访问控制列表向给定文件授予用户id权限。您可能需要安装acl包才能获得命令getfacl和setfacl。然后,对于用户"myname“和文件/etc/hosts,您可以给出以下命令:
sudo setfacl -m 'u:myname:rw' /etc/hosts然后,您将能够读取/写入该文件。当您在文件上ls -l时,您将看到一个+标志,以显示该文件有一个acl:
-rw-r--r--+ 1 root root 221 Nov 5 16:55 /etc/hosts您可以在文件中列出带有getfacl的acl。在以后使用时删除acl
sudo setfacl -x 'u:myname' /etc/hosts或setfacl -b删除所有acls。(文件系统必须支持acls。)
https://unix.stackexchange.com/questions/241006
复制相似问题