ChrootされたsFTPユーザーを追加するスクリプトを作成しました。
Useraddコマンドは次のとおりです。
Sudo useradd -Ng sftponly -ms /bin/false "$USER"
うまくいきましたか?
groups $USER
$USER : sftponly
はい、そうでした。すごい!
次に、/ etc/groupを確認すると、sftponlyに$ USERがありません。ログインとログアウトを試み(必要はありません-私は$ USERではありません)、何も変わりません。 ($ USER == yokoの場合):
ftp:x:114:
sftponly:x:1003:george,john,paul,ringo
incron:x:115:
グループを使用するときに$ USERが正しいグループに表示されますが、/ etc/groupには表示されないのはなぜですか?
useradd
を使用しないでください。代わりにadduser
を使用してください。ただし、useradd
の使用を主張する場合は、次のことを行う必要があります。
Sudo useradd -Ng sftponly -G sftponly -ms /bin/false "$USER"
-g
オプションは/etc/passwd
ファイルのみを変更し、「sftponly」をユーザーのプライマリ(ログイン)グループIDにします。 -Gオプションは/etc/groups
を変更します。
useradd
から manpage :
-g, --gid GROUP
The group name or number of the user's initial login group.
ユーザーの初期ログイングループは、/etc/passwd
ファイルの行の4番目のフィールドにあるものです。 /etc/passwd
で「yoko」を検索すると、次のようになります。
yoko:x:<yoko's UID>:1003::<yoko's home>:/bin/false
ここで、1003
はsftponly
グループのGIDです。