用户的主目录位于另一个用户的主目录中?

用户的主目录位于另一个用户的主目录中?

我即将创建用户并将其主目录设置在另一个用户的主目录中 - 我正在徘徊是:

  • 允许在 *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主目录:-dusermod

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无法写入其主目录,那么这可能是安全的,但有点令人困惑。可能有更好的方法来完成促使您这样做的任何事情。

相关内容