ユーザーを作成し、他のユーザーのホームディレクトリ内に自分のホームディレクトリを設定しようとしています。私があちこちに歩き回るのは次のとおりです。
*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
オプションは、ユーザーがログインするときに使用するシェルを指定します。-s
これは必須ではありませんが、通常、ユーザーがログインするデフォルトのシェルを指定することをお勧めします。
既知の悪影響がありますか?
私が考えることができる唯一の否定的な側面は、誰かが自分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シェルを実行して作成します。 (もちろん、この概念の証明はより強力になるかもしれません。)ftp_user1
ftp_user2
ホームディレクトリに書き込めない場合、ftp_user1
これは安全かもしれませんが、少し混乱しています。これを行うように誘導したタスクを実行するより良い方法があるかもしれません。