我做了一些研究,看起来这正是setuID位设计的目的,因此系统上的任何用户都可以运行脚本,脚本将使用脚本所有者的用户ID运行.但是,现代发行版似乎忽略了脚本的setuID位,因为如果执行root所拥有的脚本会带来安全风险.
我认为我可以通过制作perl脚本来解决这个问题,但是从Precise开始,也没有suID-perl包.看起来这已经被弃用了.
我发现一些网站建议通过将用户添加到sudoers文件来解决这个问题,但是我的脚本不需要root权限来运行,并且除了网站之外它不会对文件系统的任何部分进行任何更改,所以我我宁愿不给任何人任何特权.该脚本只需要脚本所有者的权限才能正常运行.
那么,使用(不同的,非root,非sudo)用户的UID执行脚本的首选现代方法是什么?
解决方法 您可以配置sudo以允许人们作为特定的无root用户运行命令,例如在sudoersuser1 (ALL) = (appuser) /path/to/yourapp
允许用户user1以appuser身份运行您的应用
sudo -u appuser /path/to/yourapp
同样
%somegroup (ALL) = (appuser) /path/to/yourapp
在sudoers中允许组somegroup中的用户以appuser身份运行app
sudo -u appuser /path/to/yourapp总结
以上是内存溢出为你收集整理的linux – 如何在shell脚本上使用SetUID以非root用户身份运行?全部内容,希望文章能够帮你解决linux – 如何在shell脚本上使用SetUID以非root用户身份运行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)