ユーザーの作成と削除

デフォルト値の確認

-Dを付けて実行すると、対象のオプション(ホームディレクトリ設定)などを指定しなかった場合、何が設定されるのかを確認できます。

useradd -D
# GROUP=100
# HOME=/home
# INACTIVE=-1
# EXPIRE=
# SHELL=/bin/sh
# SKEL=/etc/skel
# CREATE_MAIL_SPOOL=no

例えば、ホームディレクトリを変えたい場合は-m-dオプションを、デフォルトシェルを変えたい場合は-sオプションを作る時に指定してあげます。

ユーザーを作る

sudo useradd <user-name>

# -m で ホームディレクトリ $HOME/<user-name> を作り
# -s で デフォルトシェル /usr/bin/fish を指定
# sudo useradd <user-name> -m -s /usr/bin/fish

以下のコマンドで表示されれば追加できていると確認できます。

ユーザー確認

cat /etc/passwd | grep <user-name>

ここで「ユーザー名間違えてた」って時は、

sudo usermod -l <current-name> <new-name>

で変更できます。もし、ホームディレクトリも作ってしまっているなら、

sudo usermod -l ... -d /home/<new-name> -m

上記のように一緒に-d-mを付けることで変更できます。

sudoer にする

/etc/sudoers/<user-name>を作ります。

<user-name> ALL=(ALL) ALL

上だとsudoを付けた時に毎回パスワードを入力する必要がある設定です。パスワードを省きたい場合は以下も追記します。

<user-name> ALL=(ALL) NOPASSWD:ALL

ちなみにこのファイルは、/etc/sudoersにこう書かれていることでsudoers.d内に作ったファイルが読み込まれるようです。

#includedir /etc/sudoers.d

ユーザーのパスワードを設定する

sudo passwd <user-name>
# Changing password for user test.
# New password: ***
# Retype new password: ***

シェルスクリプトなどで標準入力などで渡したい場合は次のように設定します。

echo <password> | passwd <user> --stdin

ubuntu ではpasswdの代わりにchpasswdを使います。

echo <user>:<password> | chpasswd

ユーザーを削除する

--remove -rを付けるとそのユーザーのホームディレクトリも削除します。

sudo userdel <user-name>
# sudo userdel --remove <user-name>