仅通过应用程序

时间:2017-12-26 06:19:18

标签: linux apache perl permissions

我写了一个简单的CGI Web应用程序来创建服务器日志文件来存储访问我的网页的IP地址。我的Cgi脚本位置是

  

'/ usr / lib中/的cgi-bin / iplog.cgi'

我的日志文件位置是,

  

'的/ usr /共享/数/ iplog.txt'

我的问题是,日志文件'iplog.txt'只能通过我的应用程序脚本'iplog.cgi'进行读写。现在我将'777'的许可授予'iplog.txt'。我知道它会允许所有人做任何事情。但我希望只通过我的cgi应用程序脚本读取和写入此文件。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

没有提供应用程序权限来读取或写入文件的概念。只有用户才能。 因此,您需要提供日志文件权限,以便只有运行cgi脚本的用户才能读取和写入。

因此,如果您的cgi脚本由(网络服务器)用户www-data运行(例如),那么您需要:

sudo chown www-data /usr/share/log/iplog.txt
sudo chmod 600 /usr/share/log/iplog.txt

然后只有用户www-data才能读写该文件。 请注意,这也意味着您(作为用户dwayne)无法读取文件,就像您提出的那样。

要找出网络服务器的用户,您可以发出

ps aux | egrep '(apache|httpd)'

常见的apache用户是www-datanobodyapache