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

我有CentOS 5.4的VPS。

这是生产服务器。

问题是当我的网站从网站安装一些脚本,然后所有者的名字不写在文件和用户,我甚至可以改变文件的权限

是否有任何脚本正在写入文件的方式,主目录的所有者应该是所有文件的所有者

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

在将被写入的目录上设置setgid权限位将保持写入该目录中的所有新文件被分配给该目录的组(而不是创build它们的用户的组)。

如果HTTP服务器的用户在默认情况下创build了具有组写入权限的文件,则写入合适用户组中的目录并且设置了setgit位的所有文件将完全由该组中的用户可访问。

设置directoryname上的setgid位,设置正确的组所有权:

 chmod g+s directoryname chown :groupname directoryname 

如果没有设置组写入权限,则需要设置HTTP服务器用户的umask 。

问题是,脚本解释器在与你的web服务器(Apache httpd?)相同的用户上下文中运行。 由脚本创build的任何文件都由您的networking服务器正在运行的用户拥有。

对于Apache httpd,可以使用SuExec或SuPHP在另一个用户上下文(通常是脚本的所有者)中运行CGI脚本。

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

那么你可以使用它来做一些事情,比如chown UID.GID /path/to/where/files/are/来更改文件正在写入的目录的所有权,以及需要访问它们的用户。 那么你应该执行chmod 755 /path/to/where/files/are/来更改目录上的权限,以便/只有/ USER可以在该目录中创build新文件。

我需要更多关于如何进一步帮助的信息。