我通常倾向于以 root 身份登录,但我知道这是不好的做法。
因此我创建了另一个用户,我们称之为user1
。但现在当我以该用户身份登录时,我被放置在一个空的 /home 目录中,这几乎毫无用处。
问题是我想要user1
访问另一个用户的 /home/ 目录,从而有效地克隆其他用户的权限。我该怎么做?
答案1
您可以通过为两个用户设置相同的用户 ID (UID) 来实现这一点,但这是一个非常糟糕的做法,可能会产生意想不到的后果。请参阅这进行全面的讨论。
更好的方法是将这些用户放在同一组中并在他们的主目录中设置 R 或 RW 组权限,或者更好的是使用扩展属性(man setfattr
),或者允许您的用户sudo su - <anotheruser>
通过/etc/sudoers
文件,或者允许您的用户通过 sudo 到 root。
同组选项
首先创建一个特殊组,比如team_a:
groupadd team_a
然后将该组设置为您的用户(例如user1
和user2
)。默认情况下,每个用户都会在与用户同名的新组中创建。您将把 team_a 设置为主要组,并将各个组保留为次要组:
for user in user1 user2; do usermod -g team_a $user; usermod -a -G $user $user; done
然后更新用户 2 主目录的权限,以team_a
递归方式授予组内所有成员对该文件夹以及其中包含的任何文件和文件夹的完全访问权限;这将允许任何成员team_a
访问的user2
主文件夹和文件,但您不会授予任何其他用户访问权限(例如,以下内容不授予 的成员访问team_a
您的user1
的主文件夹的权限):
chmod -R g+rwX ~user2
请注意,user2
可以随时删除这些权限,或者创建新文件而不授予该组访问权限。
最后,确保您的其他用户将为该组成员创建具有完全访问权限的任何文件:
echo "umask 002" >> ~user2/.profile
您的用户属于其他用户的默认组:
也许比上述方法更简单,您可以将您的user1
用户添加到任何其他用户的默认组中。在大多数 Linux 发行版和 UNIX 系统中,默认情况下,当用户的组名与用户的名称相同时,新文件的默认组权限是该组的完全访问权限,因此在这种情况下无需umask
对这些用户进行操作。
设置user1
也属于user2
的默认组:
usermod -a -G user2 user1
user2
授予组成员对 的user2
主文件夹的访问权限:
chmod g+rwX ~user2