私はユーザーを作成し、別のユーザーのホームディレクトリ内にそのホームディレクトリを設定しようとしています-私は放浪しています:
* nixの世界で許可
可能(まだテストボックスで試していません)
そしてそれは認識された否定的な側面を持っていますか?
場合:
ftp_user1
ホームディレクトリは/var/www/vhosts/website/
です
が欲しいです
ftp_user2
ホームディレクトリは/var/www/vhosts/website/subfolder/
になります
(もちろん、/var/www/vhosts/website/subfolder/
の所有者となるユーザーを1人選択する必要があることは承知しています)
* nixの世界で許可
* nixの世界では、事実上何でも許可されています。
可能(私はまだテストボックスで試していません)
はい、これは可能です。ユーザーにホームディレクトリが割り当てられると、それはユーザーがログイン時にデフォルトでcd
するディレクトリです。usermod
のftp_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
のホームディレクトリも削除されるということです。
ユーザーのホームディレクトリが別のディレクトリ内にある可能性はありますが、正当な理由からまれです。通常、ユーザーは自分のホームディレクトリに書き込むことができます。 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
がホームディレクトリに書き込めない場合、これは安全ですが、多少混乱します。これにあなたを駆り立てたものは何でもするより良い方法があるでしょう。