如何授予普通用户对特定目录的有限权限并在没有 sudo 的情况下运行文件

如何授予普通用户对特定目录的有限权限并在没有 sudo 的情况下运行文件

抱歉,我的表达方式不正确,我希望我已经尽可能清楚地描述了我的问题。

使用 Red-hat 系统。目前我在系统中拥有一个超级用户,我必须这样做sudo python cuckoo.py才能运行这个 python 程序,它会在一个名为“cuckoo”的特定目录中进行读写。

现在我想让普通用户访问这个“cuckoo.py”以及工作目录。但同时我也不想授予此用户超级用户权限,因为他们可能会损坏我的系统。

那么我怎样才能让普通用户直接拨打电话python cuckoo.py而不会收到任何“权限被拒绝”的错误?

任何帮助和评论都非常感谢。如果我的用词不当,导致表达不清,也请指出,我会尽力更详细地解释。

谢谢!

编辑:也许我说的不太清楚……我不想将此普通用户包括在“root”中。目前我已经创建了一个组,并将此普通用户添加到该组中,目录权限设置为 755。但我希望该组具有写入权限才能cuckoo.py顺利运行。所以我想知道如何让 root 和该组都具有读取、写入和执行权限?

答案1

如果脚本需要以 root 身份运行的唯一原因是读取/写入您的特定目录,则有两种方法可以解决此问题(以允许普通用户成功运行该脚本):

  1. 创建一个组,使您正在工作的文件夹归该组所有,然后将用户添加到该组。
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
  1. 只需更改文件夹的全球权限(如果您不希望计算机上的任何用户能够访问您的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”。

相关内容