我有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新文件。
我需要更多关于如何进一步帮助的信息。