我想创建两个用户(例如 adm1 和 adm2),因为他们每个人都需要自己的密码,并习惯使用这个密码。不过,他们应该共享同一个主目录,我们称之为 admx。
这可能吗?
如果是:那么如何实现它?
(当然它们都属于同一个组 = admx)
答案1
我不建议多个用户使用同一个主目录,因为重要的配置文件位于主目录中。这些文件由各种程序读取和写入,这可能会导致用户之间的冲突。此外,其中一些文件只能由一个用户访问,否则相关程序将无法工作。最好在一个用户的主目录中创建一个两个用户都将使用的子目录,并将该子目录符号链接到另一个用户的主目录中。当然,子目录需要由组 admx 可写并设置 setgid 位,这样两个用户都可以在此目录中创建文件,并且它们将自动分配给该组。
为了方便起见,您可以在每个用户的文件中放置一个cd
更改此子目录的命令.profile
,因此登录后,两个用户都将从该子目录中启动,而不是从他们的主目录中启动。
答案2
尽管第一个解决方案中有警告,但在阅读此关键字后,我还是使用了一些符号链接。
可以这样做:
假设管理员adm1
和adm2
都属于同一组admx
。假设/home/adm1
是的主目录adm1
,并且已正确配置。无需进行任何工作来提供adm2
合理的设置,因为他的目录将被替换为指向的软链接/home/adm1
:
sudo rm -rf /home/adm2 # remove the original home directory of adm2.
# Note: adm2 must exist before his home directory
# is replaced by a soft link, otherwise owner and
# group of the pointed to directory would change!
sudo chgrp admx /home # intermediate: now /home belongs root:admx
sudo chmod g+ws /home # intermediate: set w and SGID-bit to inherit group
sudo ln -s /home/adm1 /home/adm2 # create adm2's home directory as soft link
# due to SGID-bit, root:admx own the link
sudo chmod g-ws /home # remove rights granted in step 2 and 3
sudo chgrp root /home # back in original state
sudo chown -R adm1:admx /home/adm1 # make sure that adm2 gets access rights through group admx
sudo chmod -R g+s /home/adm1/ # establish group inheritance in favor of admx
sudo chmod -R g+w /home/adm1/.config/* # there might be programs like x-tile wanting to write there
最后两步是必要的,因为adm2
不是 的所有者/home/adm1
。
此解决方案的优点(尽管与上述解决方案相比更为复杂)在于它避免了复制./config
(此处未提及)到其他管理员的主目录,因此两者都享有相同的设置。第二位管理员通过 group 获得所有权力admx
。末尾设置的 SGID 位确保随后在下面创建的目录/home/adm1
也继承 group admx
。