2017.3.3

Debian USER

ユーザーの操作 作成/変更/削除など

ユーザーの設定について調べてみた。
確認 作成 内容修正など。

■ ユーザー情報の確認

$ id User_Name
$ cat /etc/passwd
$ getent passwd
$ finger User_Name


■ ユーザーの作成

・adduser

"useradd"というコマンドもあるが、
Debianなら、"adduser"コマンドのほうが、
使いやすいようだ。

< 書 式 1 >  一般ユーザー

# adduser [Options] User_Name

-- Options --

adduser  [Options]  [--home-dir DIR]  : ホームディレクトリを指定する
 
 [--shell SHELL]  : ログインシェルを指定する
   /bin/bash -->ログインOK (default)
   /bin/false -->ログインできない
   /bin/nologin -->ログインできない
 
 [--no-create-home]  : ホームディレクトリを作らない
 
 [--uid ID]  : ユーサーIDを指定する
 
 [--ingroup]  : 登録グループ名を指定する
 
 [--gid ID]  : 登録グループIDを指定する
 
 [--disabled-password]  : パスワード無効
   パスワードなし ログインできない
 
 [--disabled-login]  : ログイン無効
   パスワードなし ログインできない


< 書 式 2 >  システムユーザー

# adduser --system [Options] User_Name

*特定プログラムを実行するためのシステム内部のユーザー
*ログイン不可にしておくこと
*人間用アカウントとは想定していない

-- Options --  ほぼ一般ユーザーと同じ


< 書 式 3 >  既存ユーザーをグループへ登録

# adduser User_Name Group_Name

*副グループへ追加登録される


参考1:--no-create-home について

このオプションを指定するとユーザーのホームディレクトリを作成しない。
そのためデスクトップ環境(GUI)では、パスワードを打ち込んでもログインできない。
ただし、terminal で su できるし、コンソールでのログインも可能。
*su:別のユーザーに変わる

これを、後からデスクトップ環境(GUI)でログインできるようにするには、
自分でホームディレクトリを作成すれば良い。
コマンド usermod -d や adduser --home では動作しないようだ。

$ sudo mkdir /home/DIR_Name
$ sudo chown User_Name:Group_Name /home/DIR_Name

再起動後にログインできる。


参考2:--shell /bin/false  /bin/nologin
        --disable-login  --disable--password の違い

ユーザーがログインするときは、ログインシェルを使って実行される。
有効なログインシェルは、指定できるシェルリストとして
/etc/shells ファイルに、/bin/bash,/bin/sh などが定められている。

システムユーザーやログインを想定しないユーザーアカウントには、
/bin/false (or nologin) としてログインを無効にする必要がある。

後から、ログインシェルを変更するには次の方法がある。

$ sudo chsh -s /bin/[ bash | false | nologin ] User_Name
$ sudo usermod -s /bin/[ bash | false | nologin ] User_Name


○ /bin/false と、/bin/nologin の違い

/bin/false : login = NG , su = NG , メッセージ = なし
/bin/nologin : login = NG . su = NG , メッセージ = あり

実行時のメッセージの有り無しぐらいで、どうやら実際にはあまり大きな違いは無いらしい。
/bin/false は、元々システムユーザーに割り当てられるのを想定しているらしいので、
一般ユーザーは、明示的にNGメッセージの表示される、/bin/nologin で良いように思う。

Webの情報を拾うと、"/bin/nologin"は"/etc/shells"の編集によっては、
FTP接続を拒否しないとの解説もあったりするが、
わざわざFTPサーバーを立てるのもわずらわしいので、検証はしていない Orz...
仮にそうならば、FTP運用の方針によって、どちらかを選択するというのもありだろう。


○ disabled-login と disabled-password の違い

これを後からログインと su できるようにするには、
$ sudo passwd User_name    として、パスワードを与えれば良い。

man adduser によると

disabled-login DO not run passwd to set the password.
The user won't be able to use her account until the password is set.
disabled-password Like --disabled-login, but logins are still possible
(for example using SSH RSA keys) but not using authentication.

となっていて、disabled-passwordの方だけがSSH経由でログインできるような印象だが、
検証してみると、--disabled-loginも同じくSSH経由でログインできる。

じゃあ一体何が違うのというと、
ネット上には、shadow情報に違いがあるとの解説もあり、
/etc/shadow をのぞいて見ると
login -----> User_account:!: = ロックされている状態
password --> User_account:*: = 設定されていない状態
ということらしいが、
詳しくはよくわからない.. ^_^;)?


○ SSH経由のログインとの関係

--shell /bin/false X
--shell /bin/nologin X
--disabled-password
--disabled-login
--no-create-home authorized-keysの置き場がない


■ ユーザのアカウント情報の修正

・usermod

< 書 式 >

# usermod [Options] User_Name

-- Options --

usermod   -d : ホームディレクトリを指定する
-e : そのアカウントの使用期限 書式:YYY-MM-DD
-f : パスワード切れてからアカウント使用不能になるまでの日数
-g : 主グループを登録
-G : 補助グループのリスト登録 複数をコンマ区切り
  *元の補助グルーフはリセットされるので要注意
-aG : 補助グルーフを追加登録
-l : ユーザーのログイン名を変更 Home_DIR名称は変更されないまま
-s : ログインシェルを指定する
-u : UIDを指定
-L : ユーザーパスワードをロックする
  shadow passwordの前に'!'を追加し無効化
-U : ロックを解除する


■ ユーザの削除

・userdel

< 書 式 >

# userdel [Options] User_Name

-- Options --

userdel   -r  : ホームディレクトリとメールスプールもあわせて削除

Copyright(C) green-pen miyagi