wheelグループにユーザー追加(sedによるファイル変更手順)


前提条件

・RHEL6.x
・rootに昇格できる管理者ユーザで実施

経緯

有識者の手順通りにやってみたものの、手順はすべて「ファイルをviで編集」の文字ばかり。
サーバ何十台もあるのにそれはやってられん・・・というわけで、なにか楽な方法がないかと思案。
思い立ったらすぐ計画、行動。天才じゃない私にはそれしかできぬ。

やりたいこと

ある特定のユーザを、su(root=管理者権限)に昇格させたい。

管理ユーザーでログイン、root昇格

\[User01@hostname ~]$ su -
\[root@hostname ~]#

対象ファイルのバックアップ

[root@hostname ~]# cp /etc/group /etc/group_yyyymmdd_bak
[root@hostname ~]# cp /etc/pam.d/su /etc/pam.d/su_yyyymmdd_bak

wheelグループにユーザ追加

[root@hostname ~]# sed -i -e '/wheel:x/s/$/,ユーザ名/g' /etc/group

-iで上書き保存に指定。
-eで検索条件と追加文字(シングルクォーテーション)。
「'/wheel:x」で検索行を抽出。「/s/$/」で追加する文字列を記載。
「,ユーザ名」のカンマは、すでにwheelにユーザを記載している場合にだけ必要であるため注意。
サンプルは以下。

[root@hostname ~]# sed -i -e '/wheel:x/s/$/,User02/g' /etc/group
/etc/group(変更前)
wheel:x:10:User01
/etc/group(変更後)
wheel:x:10:User01,User02

/etc/pam.d/suの有効確認

前提条件が満たせていれば、おそらく実施済みの認識。

[root@hostname ~]# cat /etc/pam.d/su
/etc/pam.d/su
~~~~
auth  sufficient pam_wheel.so trust use_uid
auth  required pam_wheel.so use_uid
~~~~

以上のauth~の行がない、または先頭行に「#」があれば
追記か#を削除して、以上の状態になるように追記修正する。

設定確認(単体チェック)

[root@hostname ~]# diff /etc/group /etc/group_yyyymmdd_bak
[root@hostname ~]# diff /etc/pam.d/su /etc/pam.d/su_yyyymmdd_bak

変更分のみ差分として出ればOK。

設定確認(機能性)

設定したホストにSSH接続。
先ほどwheelに追加したユーザ名でログインしてsu-実施。
rootに昇格できればOK.

[User02@hostname ~]$ su -
[root@hostname ~]# 

Linuxの感想

コマンドライン文化はラクや~~。
WindowsはGUI文化ですから。

終わりに

Lenny Kravitz - Low (Official Video)

レニークラヴィッツお兄さんの新曲。娘さんのゾーイクラヴィッツさんは、『MADMAX怒りのデスロード』(北斗の拳の元ネタ映画)にヒロインとして出ていたり、親子ともに大活躍です。
レニー兄さんの曲も相変わらず渋くてかっこいいです。本曲の「フー!」などの甲高い掛け声は、故マイケルジャクソンの地声らしいっす。フォー!