Linux读写权限仅通过应用程序

Linux读写权限仅通过应用程序,linux,apache,perl,permissions,Linux,Apache,Perl,Permissions,我编写了一个简单的CGI web应用程序来创建一个服务器日志文件来存储访问我的网页的IP地址。我的Cgi脚本位置是 “/usr/lib/cgi-bin/iplog.cgi” 我的日志文件位置是 “/usr/share/log/iplog.txt” 我的问题是,日志文件“iplog.txt”只能通过我的应用程序脚本“iplog.cgi”进行读写。现在我以“777”的身份授予了“iplog.txt”权限。我知道它会允许所有人做任何事。但是我只希望通过我的cgi应用程序脚本来读写这个文件。如何才能做到

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

“/usr/lib/cgi-bin/iplog.cgi”

我的日志文件位置是

“/usr/share/log/iplog.txt”


我的问题是,日志文件“iplog.txt”只能通过我的应用程序脚本“iplog.cgi”进行读写。现在我以“777”的身份授予了“iplog.txt”权限。我知道它会允许所有人做任何事。但是我只希望通过我的cgi应用程序脚本来读写这个文件。如何才能做到这一点?

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

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

sudo chown www-data /usr/share/log/iplog.txt
sudo chmod 600 /usr/share/log/iplog.txt
然后,只有用户
www-data
可以读取和写入该文件。 请注意,这也意味着您(作为用户
dwayne
)无法按照要求读取文件

要了解Web服务器的用户,可以发出

ps aux | egrep '(apache|httpd)'

常见的apache用户有
www-data
nobody
apache
,没有授予应用程序读写文件权限的概念。只有用户可以。 因此,您需要授予日志文件权限,以便只有运行cgi脚本的用户才能读取和写入日志文件

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

sudo chown www-data /usr/share/log/iplog.txt
sudo chmod 600 /usr/share/log/iplog.txt
然后,只有用户
www-data
可以读取和写入该文件。 请注意,这也意味着您(作为用户
dwayne
)无法按照要求读取文件

要了解Web服务器的用户,可以发出

ps aux | egrep '(apache|httpd)'

常见的apache用户有
www-data
nobody
apache
,如果您有管理员组,那么最好授予管理员组权限。(在Ubuntu上称之为
adm
chown www-data:adm…
chmod 660…
如果你有管理员组的话,最好给管理员组授予权限。(在Ubuntu上叫做
adm
chown www-data:adm…
chmod 660…
@Vadalasetti:请删除错误信息。@Vadalasetti:请删除错误信息。