web-dev-qa-db-ja.com

グループとadduserについて混乱

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には表示されないのはなぜですか?

2
datakid

useraddを使用しないでください。代わりにadduserを使用してください。ただし、useraddの使用を主張する場合は、次のことを行う必要があります。

Sudo useradd -Ng sftponly -G sftponly -ms /bin/false "$USER"

-gオプションは/etc/passwdファイルのみを変更し、「sftponly」をユーザーのプライマリ(ログイン)グループIDにします。 -Gオプションは/etc/groupsを変更します。

3
January

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

ここで、1003sftponlyグループのGIDです。

2
Eric Carvalho