我即将创建用户并将其主目录设置在另一个用户的主目录中 - 我正在徘徊是:
允许在 *nix 世界中
可能(我还没有在测试盒中尝试过)
它有任何公认的负面影响吗?
案件:
ftp_user1
主目录是/var/www/vhosts/website/
我想
ftp_user2
主目录/var/www/vhosts/website/subfolder/
(当然,我知道我必须选择一个用户作为 的所有者/var/www/vhosts/website/subfolder/
)
答案1
允许在 *nix 世界中
实际上,*nix 世界中任何事情都是允许的。
可能(我还没有在测试盒中尝试过)
是的,这是可能的。当为用户分配主目录时,这是用户cd
登录时默认进入的目录。您可以使用以下选项更改ftp_user2
主目录:-d
usermod
usermod -d [directory] [ftp_user2]
在你的情况下,它看起来像这样:usermod -d /var/www/vhosts/website/subfolder ftp_user2
如果您仍然需要创建ftp_user2
,您可以在创建它们时指定它们的主目录,使用useradd
.
useradd -m -d /var/www/vhosts/website/subfolder -s /bin/bash ftp_user2
-m
如果用户的主目录尚不存在,该选项将创建该目录。该-d
选项指定将哪个主目录分配给用户。该-s
选项指定用户登录时将使用的 shell。-s
这不是必需的,但通常最好指定用户登录时使用的默认 shell。
它有任何公认的负面影响吗?
我能想到的唯一负面的方面是:如果有人决定删除ftp_user1
其主目录,那么主目录ftp_user2
也将被删除。
答案2
用户的主目录可能位于另一个用户的主目录中,但这种情况很少见,这是有充分理由的。通常,用户可以写入其主目录。如果ftp_user1
可以写入,/var/www/vhosts/website/
则ftp_user1
可以重命名/var/www/vhosts/website/subfolder
并可以使用该名称创建一个新目录,该目录属于ftp_user1
并具有由 选定的内容ftp_user1
。例如:
mv /var/www/vhosts/website/subfolder /var/www/vhosts/website/subfolder.user2
mkdir /var/www/vhosts/website/subfolder
echo 'cp /bin/sh /tmp/sh.user2; chmod u+s /bin/sh.user2' >/var/www/vhosts/website/subfolder/.profile
下次ftp_user2
登录时,他们.profile
将运行并创建一个 setuid shell,该 shell 允许ftp_user1
(以及其他任何人)访问该ftp_user2
帐户。 (当然,这个概念验证可以变得更加稳健。)
如果ftp_user1
无法写入其主目录,那么这可能是安全的,但有点令人困惑。可能有更好的方法来完成促使您这样做的任何事情。