首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用编辑器更改需要sudo权限的文件

使用编辑器更改需要sudo权限的文件
EN

Unix & Linux用户
提问于 2015-11-05 13:28:48
回答 3查看 1.5K关注 0票数 3

我想用KomodoEdit更改需要sudo权限的文件。不过,我不能从KomodoEdit开始使用sudo (不管出于什么原因)。我能以某种方式授予Komodo编辑这些文件的权限(特别是我指的是apache2文件和/etc/hosts)吗?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2015-11-05 14:15:31

使用sudoedit <file>。它创建文件的本地副本,使用用户权限对其进行编辑,并将其复制回原始位置。其优点是编辑器以常规用户的身份运行。

若要指定与默认编辑器不同的编辑器,可以临时设置EDITOR

代码语言:javascript
复制
EDITOR=/usr/bin/someeditor sudoedit /etc/hosts

这需要安装sudo包,并将用户添加到sudo组中。

票数 6
EN

Unix & Linux用户

发布于 2015-11-05 14:02:53

理论上,您可以通过在komodoedit上设置suid位,并将它的所有者更改为root来做到这一点。

代码语言:javascript
复制
sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit

它所做的:

  1. chown将所有者设置为根
  2. chmod u+s为任何执行文件的人提供与所有者相同的权限(用于执行)。

由于我们已经将所有者设置为root,因此有效的执行所有者将变为root。

这可能不是您所寻求的答案,因为它将授予所有用户有效的根编辑器。

sudoedit,正如marco提到的,可能更正确,更安全。

票数 0
EN

Unix & Linux用户

发布于 2015-11-05 16:04:59

一种相对干净的方法是使用访问控制列表向给定文件授予用户id权限。您可能需要安装acl包才能获得命令getfaclsetfacl。然后,对于用户"myname“和文件/etc/hosts,您可以给出以下命令:

代码语言:javascript
复制
sudo setfacl -m 'u:myname:rw' /etc/hosts

然后,您将能够读取/写入该文件。当您在文件上ls -l时,您将看到一个+标志,以显示该文件有一个acl:

代码语言:javascript
复制
-rw-r--r--+ 1 root root 221 Nov  5 16:55 /etc/hosts

您可以在文件中列出带有getfacl的acl。在以后使用时删除acl

代码语言:javascript
复制
sudo setfacl -x 'u:myname' /etc/hosts

setfacl -b删除所有acls。(文件系统必须支持acls。)

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/241006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档