Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何设置用户的权限,使其可以执行bash脚本来读取其他用户的文件?_Linux_Bash_Shell_Permissions - Fatal编程技术网

Linux 如何设置用户的权限,使其可以执行bash脚本来读取其他用户的文件?

Linux 如何设置用户的权限,使其可以执行bash脚本来读取其他用户的文件?,linux,bash,shell,permissions,Linux,Bash,Shell,Permissions,我在Debian机器上有一个web服务器,另一个Debian机器运行一个应用程序。我想让web用户调用一个bash脚本,返回一些信息供php处理 我已经生成了ssh密钥,并将我的web用户www数据与目标机器上的用户usr_脚本配对,我有以下命令在目标机器上运行bash脚本: ssh -o UserKnownHostsFile=/path/to/known_hosts -i /path/to/rsa/key usr_scripts@targetMachine scriptToReadFiles.

我在Debian机器上有一个web服务器,另一个Debian机器运行一个应用程序。我想让web用户调用一个bash脚本,返回一些信息供php处理

我已经生成了ssh密钥,并将我的web用户www数据与目标机器上的用户usr_脚本配对,我有以下命令在目标机器上运行bash脚本:

ssh -o UserKnownHostsFile=/path/to/known_hosts -i /path/to/rsa/key usr_scripts@targetMachine scriptToReadFiles.sh
scriptToReadFiles.sh是一个普通的bash脚本,它使用cat从不同的文件cat/path/to/main folder/Folder1/File1输出一些信息,我的php中有一个函数,用于获取输出并生成报告

我现在的问题是usr_脚本没有足够的权限读取我需要的文件。所有文件都位于不同的文件夹中,并且它们具有不同的所有者,因为应用程序使用多个用户执行不同的任务,例如:

mainFolder
 |- Folder 1 (owner: user1)
 |   |- File 1 (owner: user1)
 |   |- File 2 (owner: user1)
 |
 |- Folder 2 (owner: user2)
     |- File 1 (owner: user2)
     |- File 2 (owner: user2)
     |- File 3 (owner: user2)
用户user1、user2等是从我无权访问其源代码的应用程序动态生成的,它们是根据需要生成的,它们不属于某个组,并且不能访问其指定主文件夹之外的其他文件


我应该如何设置“使用脚本”用户的权限,使其能够读取这些文件?

您可以使用chmod更改当前文件的模式,使用umask更改未来文件。 这里是指向umask的一些信息的链接

您的文件系统是否启用了ACL?如果是这样,您可以添加一个ACL条目来显式地授予您的web服务器进程用户访问权限。@ChrisJester-Young ACL未启用,尽管它根据/boot/config-2.6.32-5-amd64是兼容的,而且我不太喜欢处理文件系统。如果这是我的最后手段,我会这么做,但我正在寻找一种侵入性较小的方法。你对主文件夹文件的所有者/组/权限有控制权吗?@glennjackman我有机器的root访问权。我的第一个想法是使用cron作业来chmod-R主文件夹,但每秒这样做似乎有些过分,而且在chmod命令之前,我将无法访问较新的文件和文件夹。@glennjackman我还不能编辑我的问题,但文件夹权限是drwxrwx,文件权限是-rw-R-R-或-rw-rw-。通过将World Execute添加到文件夹中,并将World Read添加到尚未运行的文件中,所有功能都可以正常工作,因此我想一种方法是更改mainFolder中创建的文件夹和文件的默认权限,但我仍在寻找更好的解决方案。