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

时间:2014-03-10 20:06:55

标签: linux bash shell permissions

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

我已经生成了ssh密钥并将我的Web用户(www-data)与目标计算机上的用户(usr_scripts)配对,并且我有以下命令在目标计算机上运行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/mainFolder/Folder1/File1)输出一些信息,我在我的php中有一个函数,它接收输出并生成一个报告。

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

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等是从应用程序(我的源代码无法访问)动态生成的,它们是根据需要生成的,它们不属于某个组,并且它们无法访问到其指定的主文件夹之外的其他文件。

我应该如何设置use_scripts用户的权限,以便它可以读取这些文件?

1 个答案:

答案 0 :(得分:0)

您可以使用chmod更改当前文件的模式,使用umask更改将来的文件。 这里是umask的一些信息的链接 http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html