好的,我的 ubuntu 服务器上有一个用户“nas”。在他的主目录中,我有一个“共享”文件夹,但我还想让用户在此级别创建自己的文件夹以供个人使用。因此,任何登录的用户都可以创建一个文件夹,他们将拥有对该文件夹的独占访问权限(其他人无法读取),如果他们想共享某些内容,他们会将其放在共享文件夹中。我该如何实现这一点?我正在阅读有关使用 setuid 对 /tmp 目录的权限的信息,并认为这可能是一个线索...
答案1
选项1:使顶级目录可全局写入。
提醒用户,他们创建的目录的权限是他们的作为目录所有者的责任。
请注意,这允许用户创建多个目录。您的用户最终会搞砸它并弄得一团糟(公理:用户是愚蠢的。)
正如你正确猜测的那样,sticky bit
(+t
,如上所示/tmp
)在这里很重要:它可以防止用户删除其他人的目录,如果顶级目录是全球可写的,他们就可以这样做没有粘性位。
选项 2:使顶级目录归 root 所有。创建用户帐户时,为每个用户创建一个子目录。
您可以将用户目录的权限设置为您想要的任何默认值(0700
这是一个好的开始)。同样,之后管理权限是他们的作为目录所有者的责任。
这样可以防止用户弄乱顶级目录。您可以将目录创建部分作为用户创建脚本的一部分自动执行(您确实使用脚本,对吗?:)