在不使用 sudo 的情况下更改 root 用户拥有的文件的权限
Posted
技术标签:
【中文标题】在不使用 sudo 的情况下更改 root 用户拥有的文件的权限【英文标题】:Change permission of file owned by root-user without using sudo 【发布时间】:2019-03-04 06:33:39 【问题描述】:我有一个“root”拥有的文件和“非root”用户拥有的脚本。我正在尝试使用“非root”脚本更改“root”拥有的文件的权限并出现以下错误:
$ cat root_file
echo "HELLO WORLD"
$ cat non_root_script
chmod 777 root_file.txt
$ ./non_root_script
chmod: changing permissions of 'abc.txt': Operation not permitted
我尝试向 non_root_script 添加功能,但仍然遇到同样的错误。
$ sudo setcap CAP_FOWNER+ep non_root_script
$ ./non_root_script
chmod: changing permissions of 'abc.txt': Operation not permitted
我还需要提供其他功能吗,如果有,请提出建议。我也不想使用“sudo chmod”。
【问题讨论】:
【参考方案1】:GNU/Linux 强烈反对在 shell 脚本上进行 AT_SECURE 转换(包括文件系统功能):
Allow setuid on shell scripts您可以使用一个小的 C 程序来解决这个问题,但您尝试做的事情仍然非常不安全,即使您将 root_file.txt
的路径更改为由于文件系统竞争条件而导致的绝对路径。 777
等非常宽松的文件模式也会导致安全问题。我建议您研究其他解决方案来解决您原来的问题。
【讨论】:
以上是关于在不使用 sudo 的情况下更改 root 用户拥有的文件的权限的主要内容,如果未能解决你的问题,请参考以下文章
如何在不为 RVM 用户授予 sudo 访问权限的情况下安装 RVM 系统要求