我想创建一个除 root 之外的用户帐户,以便 root 以及该用户可以在 ubuntu 系统中上传删除文件(例如,假设我在 var/www 中有一些 php 文件,以便 root 和该用户可以在同一目录中上传)
答案1
这取决于您对安全的要求。
最好的办法是创建一个非 root 用户拥有的目录。这样,用户可以将文件保存在那里,root 也可以将文件保存在那里,因为 root 拥有所有权力。
您将遇到这样的问题:当 root 保存文件时,这些文件将归 root 所有,而非 root 用户将无法编辑它们。您可以通过将目录设置为 setuid 和 setgid 来解决这个问题。
# chmod ug+s /foo/bar
现在,当有人在该目录中创建文件时,所有者和组将设置为与目录相同。在本例中为非 root 用户。
如果 root 编辑现有文件,它不会改变现有的所有权。
还有其他选择,比如将目录更改为所有人都可写,但这会带来巨大的安全问题,我真的不推荐这样做。或者,您可以创建一个 root 和非 root 用户都属于的组,但这并不是最理想的选择。
答案2
您将希望考虑对 root 和新用户使用相同的组。然后,使目录和文件组可写。此外,设置适当的权限,umask
以便新创建的文件将继承相同的权限。
答案3
您希望使用 root 用户上传文件有什么特别的原因吗?出于这种目的使用 root 用户帐户并不安全。查看标签,我猜您指的是 FTP 访问。请记住(常规)FTP 不是一种安全协议,您应该避免在任何不安全的连接上使用 root 帐户。
我建议为此目的使用两个普通用户(没有 root 权限)并让他们成为同一主要组的成员。
答案4
不要将 root 权限迁移给其他用户!这是通往 HackedVille 的单程票。
将目录读/写权限迁移给其他用户。
管理 /var/www 不需要 root 权限,只需要拥有该目录的帐户(但不是运行 Web 服务器的帐户,通常是“nobody”。)
要做到这一点,首先,停止使用 root 来读取/写入 /var/www!将 root 拥有的文件留在各处是“需要 root”腐烂的第一步,因为一旦 root 拥有的文件存在,每个人都想以 root 身份来处理它们。
使用chown-R将目录树的所有权授予非 root 用户。使用该用户名来管理目录内容。使用修改权限-R授予其他人只读权限。
如果确实需要两个用户读写,请将他们放在同一个组(/etc/group),并使用 chmod 打开组写权限。