web-dev-qa-db-ja.com

別のユーザーのホームディレクトリ内のユーザーのホームディレクトリ?

私はユーザーを作成し、別のユーザーのホームディレクトリ内にそのホームディレクトリを設定しようとしています-私は放浪しています:

  • * nixの世界で許可

  • 可能(まだテストボックスで試していません)

  • そしてそれは認識された否定的な側面を持っていますか?

場合:

ftp_user1ホームディレクトリは/var/www/vhosts/website/です

が欲しいです

ftp_user2ホームディレクトリは/var/www/vhosts/website/subfolder/になります

(もちろん、/var/www/vhosts/website/subfolder/の所有者となるユーザーを1人選択する必要があることは承知しています)

2

* nixの世界で許可

* nixの世界では、事実上何でも許可されています。

可能(私はまだテストボックスで試していません)

はい、これは可能です。ユーザーにホームディレクトリが割り当てられると、それはユーザーがログイン時にデフォルトでcdするディレクトリです。usermodftp_user2オプションを使用して-dのホームディレクトリを変更できます。

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オプションは、ユーザーがログイン時に使用するシェルを指定します。-sは必要ありませんが、通常、ユーザーがログインする場合は、ユーザーのデフォルトのシェルを指定することをお勧めします。

そしてそれは認識された否定的な側面を持っていますか?

私が考えることができる唯一の否定的な側面は、誰かがftp_user1とそのホームディレクトリを削除することを決定した場合、ftp_user2のホームディレクトリも削除されるということです。

1
Peschke

ユーザーのホームディレクトリが別のディレクトリ内にある可能性はありますが、正当な理由からまれです。通常、ユーザーは自分のホームディレクトリに書き込むことができます。 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シェルが作成されます。これにより、ftp_user1(および他の誰でも)がftp_user2アカウントにアクセスできるようになります。 (もちろん、この概念実証はより堅牢にすることができます。)

ftp_user1がホームディレクトリに書き込めない場合、これは安全ですが、多少混乱します。これにあなたを駆り立てたものは何でもするより良い方法があるでしょう。