抱歉,我的表达方式不正确,我希望我已经尽可能清楚地描述了我的问题。
使用 Red-hat 系统。目前我在系统中拥有一个超级用户,我必须这样做sudo python cuckoo.py
才能运行这个 python 程序,它会在一个名为“cuckoo”的特定目录中进行读写。
现在我想让普通用户访问这个“cuckoo.py”以及工作目录。但同时我也不想授予此用户超级用户权限,因为他们可能会损坏我的系统。
那么我怎样才能让普通用户直接拨打电话python cuckoo.py
而不会收到任何“权限被拒绝”的错误?
任何帮助和评论都非常感谢。如果我的用词不当,导致表达不清,也请指出,我会尽力更详细地解释。
谢谢!
编辑:也许我说的不太清楚……我不想将此普通用户包括在“root”中。目前我已经创建了一个组,并将此普通用户添加到该组中,目录权限设置为 755。但我希望该组具有写入权限才能cuckoo.py
顺利运行。所以我想知道如何让 root 和该组都具有读取、写入和执行权限?
答案1
如果脚本需要以 root 身份运行的唯一原因是读取/写入您的特定目录,则有两种方法可以解决此问题(以允许普通用户成功运行该脚本):
- 创建一个组,使您正在工作的文件夹归该组所有,然后将用户添加到该组。
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
- 只需更改文件夹的全球权限(如果您不希望计算机上的任何用户能够访问您的
cuckoo
文件夹,则不建议这样做)。
sudo chmod -R 664 ./cuckoo
此权限允许所有者,组和世界进行读写
答案2
看来我可能误解了这个问题。如果无论如何都需要以 root 身份运行该脚本,并且您希望普通用户能够执行它,则可以按照这个 AskUbuntu 问题。
请记住,您需要严格锁定此文件中的权限以确保安全。
使文件归 root 和 root 组所有:
sudo chown root.root <my script>
现在设置粘性,但使其对所有人都可执行,并且只能由 root 写入:
sudo chmod 4755 <my script>
请记住,如果该脚本允许任何文件的输入或编辑,这也将以 root 身份完成。
SetUID 位使脚本或二进制文件始终以文件/二进制文件的所有者身份运行,这种二进制文件的一个例子是“passwd”。