0

【Linux】アカウント作成の初期設定要件、はこれだ!!!& usermod コマンドの注意点について。

Linuxでユーザーアカウント作成するにあたり、
rootはすべての権限があるため、なんでもできてしまう分、間違えた操作を行うと大変です。

一般的には、作業用のユーザーを作成し、
必要な権限を与えて作業をするのが、
ならわしです。

ここでは、実際にhachim というユーザーを新規作成するプロセスの中で、
初期設定の必要要件を考えることで、
解像度を上げていきましょう。

■INDEX


①ユーザ:hachim を作成
②パスワード設定<
③権限の設定
(i)wheelグループ所属ユーザーへsudoコマンドを許可するための設定
(ii)suコマンドを指定したグループ(wheel)内のユーザーのみ使用を許可する
(iii)最後に、wheelグループにユーザ:hachim を追加
補足:usermod VS gpasswd


①ユーザ:hachim を作成

# useradd -d /home/hachim hachim

 -c    コメントの指定(未設定)
 -d    ホームディレクトリの指定(デフォルトは/home/ユーザー名)
 -g    プライマリグループの指定(デフォルトはユーザー名と同じ名前)
 -G    セカンダリグループの指定(未設定)
 -m    ホームディレクトリが無い時に/etc/default/useradd の通りにホームディレクトリを作成
 -s    デフォルトシェルの指定(/bin/bash)
 -u    ユーザーIDの指定(現在の最大値+1)
 -D    ディフォルト値の表示。cat /etc/default/useradd と同義。

      # cat /etc/default/useradd
      # useradd defaults file
      GROUP=100
      HOME=/home
      INACTIVE=-1
      EXPIRE=
      SHELL=/bin/bash
      SKEL=/etc/skel
      CREATE_MAIL_SPOOL=yes

なお、/etc/skel 配下に好きなファイルを追加すれば、useradd時に作られるファイルを追加できます。
ユーザーごとに.ssh/を手動で掘るのはアホらしいので、OSインストール直後にまず/etc/skel/.sshや.bashrc を作ると楽です。

$ su -
# mkdir /etc/skel/.ssh
# chmod 700 /etc/skel/.ssh
# touch /etc/skel/.ssh/authorized_keys
# chmod 600 /etc/skel/.ssh/authorized_keys

②パスワード設定

# passwd hachim

ユーザー hachim のパスワードを変更
新しいパスワード:
パスワードの確認:

■③権限の設定

(i)wheelグループ所属ユーザーへsudoコマンドを許可するための設定

visudo

## Allows people in group wheel to run all commands

#%wheel        ALL=(ALL)       ALL
↓ コメントアウトを外す
%wheel        ALL=(ALL)       ALL  ←#を削除

(ii)suコマンドを指定したグループ(wheel)内のユーザーのみ使用を許可する

vi /etc/pam.d/su

#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid ←★
auth            include         system-auth
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         optional        pam_xauth.so

★の部分

#auth           required        pam_wheel.so use_uid
↓ コメントアウトを外す
auth           required        pam_wheel.so use_uid

(iii)最後に、wheelグループにユーザ:hachim を追加

usermod -aG wheel hachim
 +++ コマンド実行後に新しくログインした時点で有効になります。 +++

ここで、1つ注意!!!

ユーザ情報を変更する際に多くのWeb上の記事では、

usermod -G hoge-group hoge-user

という書き方をする情報が非常に多~い!!!

間違ってはいないのですが、、
既にセカンダリーグループ設定がある場合、
綺麗に上書きされます。

そして、上書きされるとまずいことがほとんどでしょう。。

下記の通り、セカンダリーグループがごっそり上書きされます。

現状のuser-hoge のグループを確認
[user-hoge@hachim.jp:~]$ groups
user-hoge wheel mail tcpdump munin hachim rpm2

mysqlグループにuser-hogsを追加したくなったとして・・
[root@hachim.jp:~]# usermod -G mysql user-hoge

追加されたか確認・・・
[user-hoge@hachim.jp:~]$ groups
user-hoge mysql ←!!!

セカンダリーグループを上書きせず、追加
usermod -aG オプション:a をつける。

# usermod -aG mysql user-hoge
# su - user-hoge

$ groups
user-hoge wheel mail mysql tcpdump munin hachim rpm2 ← 上書きされることなく、追加された。

補足:usermod VS gpasswd


また、usermod 以外にも、
gpasswd コマンドがあり、こちらのほうが、運用上は安全なので、お薦めです。

# gpasswd -a user-hoge mysql
Adding user user-hoge to group mysql ←親切である。
# su - user-hoge

$ groups
user-hoge wheel mail mysql tcpdump munin hachim rpm2

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です