我在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用户的权限,以便它可以读取这些文件?
答案 0 :(得分:0)
您可以使用chmod更改当前文件的模式,使用umask更改将来的文件。 这里是umask的一些信息的链接 http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html