对文件和目录的Chmod权限

时间:2014-05-04 23:44:53

标签: bash permissions file-permissions chmod user-permissions

我有一个二进制脚本以及一个密钥文件和我shell上的文件夹中的必需库。 shell目前有3个用户,我想允许它们运行二进制脚本。运行它的每个用户都将其作为单独的实例/进程运行。为了启动,脚本通过使用.sh文件运行,该文件指定二进制文件及其库的位置。例如,。/ script.sh是命令。

我的脚本当前位于/ home / script / user(将为其他用户创建名为/ user2的dir),其中脚本是我为其创建的新用户。用户从homedir运行.sh,然后自动在/ home / script / user中写入配置文件。我一直在玩chmod因为我不希望任何人被允许窃取目录中的脚本或其任何内容。总而言之,我只希望用户能够执行二进制文件并读取libs和密钥文件,并将其配置写入/ home / script /中的相应用户目录。我不想让他们删除,编辑,复制或下载/ script目录中的任何内容。目前只有二进制文件无法改变,但密钥文件和库可以被复制或下载。我无法弄清楚如何chmod密钥和库,以便它们不能被复制等,只读成功运行二进制文件。

请告诉我如何实现我的许可目标和/或是否有其他或更简单的方法来执行此操作。感谢。

1 个答案:

答案 0 :(得分:0)

我相信您可以通过chmod和群组获得您想要的大部分内容。因此,要允许一群用户运行脚本,您需要创建一个组,然后将其添加到该组中。创建一个组并将用户添加到其中:

groupadd <groupname>
usermod -a -G <groupname> <username>

然后创建一个只能由您运行的组执行的文件

chgrp <groupname> <file>
chmod g+x <file>

不幸的是,由于chmod的工作方式,您不能允许读取文件但不能复制文件。这是因为chmod使用读取,写入和执行权限,如果您可以阅读,则可以复制。