如何使用户成为新文件的所有者

如何使用户成为新文件的所有者

我有搭载 CentOS 5.4 的 VPS。

这是生产服务器。

问题是,当我的网站从站点安装一些脚本时,文件上没有写上所有者的名称,而作为用户,我甚至可以更改文件权限。

有没有什么办法,无论哪个脚本正在写入文件,主目录的所有者都应该是所有文件的所有者

答案1

注意:此解决方案需要更改特定用户和目录的文件创建权限。

设置setgid 权限位在将要写入的目录中,将保留写入该目录中的所有新文件,并将其分配给该目录的组(而不是创建它们的用户的组)。

如果 HTTP 服务器的用户默认创建具有组写权限的文件,那么所有写入适当用户组中的目录并设置了 setgit 位的文件都将由该组中的用户完全访问。

设置 setgid 位以directoryname设置适当的组所有权:

chmod g+s directoryname
chown :groupname directoryname

如果默认未设置组写入权限,则需要设置 HTTP 服务器用户的 umask

答案2

问题是,脚本解释器在与您的 Web 服务器(Apache httpd?)相同的用户上下文中运行。脚本创建的任何文件都归您的 Web 服务器所运行的用户所有。

对于 Apache httpd,可以使用执行官或者苏必利尔在另一个用户上下文(通常是脚本的所有者)内运行 CGI 脚本。

答案3

如果您运行,ls -ln nameoffile您可以获得写入文件的进程/用户的数字 UID 和 GID。

然后您可以使用它来做一些事情,比如chown UID.GID /path/to/where/files/are/将文件正在写入的目录的所有权更改为需要访问它们的用户。然后您应该chmod 755 /path/to/where/files/are/更改目录的权限,以便/只有/用户可以在该目录中创建新文件。

我需要您提供更多有关正在发生的事情的信息,以便提供进一步的帮助。

相关内容