允许其他用户执行程序?

允许其他用户执行程序?

我想允许特定用户在我的目录中执行已编译的程序。我从 cat /etc/passwd 中获取了他的用户名。可执行文件不会写入任何文件,但会读取一些文件并在命令行上提供输出。我该如何实现这一点?

答案1

如果您的文件不是秘密,您可以简单地将该文件夹对所有人或您自己和其他用户所在的某个组开放。

如果您遇到不允许用户读取这些数据的情况,则您必须使用sudo基于的策略,以便特权用户可以通过以下方式运行您的程序:

sudo ~user19448/myprogram/runme

首先你必须配置你的 sudo (通过visudo),例如:

particular-user ALL=(ALL) NOPASSWD: /home/user19448/myprogram/runme

禁止密码避免您输入自己的密码,这可能是您想要的。

答案2

我将添加新组包括该用户并将文件和可执行文件更改为该组。

  1. 创建群组groupadd Group_name

  2. 更改文件的组(可执行文件和将要读取的文件)chgrp Group_name file

  3. 使可执行文件可供组成员使用chmod g+x executable_file

  4. 使他/她需要阅读的所有文件可供小组读取chmod g+r file

  5. 将用户和您自己添加到组useradd -G Group_name username

答案3

最好的选择是你们俩必须属于同一个组。假设你创建了一个名为的组,team并且你们俩都是该组的成员。然后你可以通过授予该组对该程序的执行权限来允许他执行它。

假设有两个用户分别名为 test 和 test1

# groupadd team

# usermod -G team test

# usermod -G team test1

假设你的程序所在的目录为/home/test/programs/program1

现在更改目录和程序的组所有权。

# chown test:test1 /home/test/programs/program1

# chown test:test1 /home/test/programs/

# chmod g+x /home/test/programs/program1

# chmod g+x /home/test/programs/

现在用户test1将能够执行该程序。

这种方式更加安全并且可以防止他人滥用它。

相关内容