LoginSignup
2
1

More than 5 years have passed since last update.

Arch Linux で wheel グループ以外の su を禁止する

Last updated at Posted at 2013-04-21

ArchWiki には手順が記載されているのですが、日本語化されてないようなのでまとめてみました。

※ 追記 2013/04/23 3:00
下記の設定だとログアウト時に正常にアンマウントされず、2回目以降のログイン時にマウントポイントのマウントに失敗するようです。これが設定の問題なら修正すればいいのですが、どうも pam_mount のバグっぽい雰囲気もあったりで微妙です。

※ 追々記 2013/05/01 12:30
原理はイマイチわかってませんがとりあえずできてるっぽいので更新。
上記の問題は (表面上) なくなりました。

参考
su (日本語) - ArchWiki
Pam mount - ArchWiki

1. 前置き

CentOS 等では、/etc/pam.d/su を一行コメントアウトするだけでできます。

/etc/pam.d/su
#auth   required    pam_wheel.so use_uid    ← コメントアウトを外す

Arch Linux の場合そもそも PAM を使っていないため、これだけでは su ユーザーを制限できません。

そこで Arch Linux にも PAM を導入して su を PAM で管理しよう、というのが流れになります。

(実のところこの変よくわかってません。ツッコミ大歓迎)

2. 手順

pam_mount をインストール

pacman でぶち込むだけです。

# pacman -S pam_mount

pam_mount.conf.xml を編集

/etc/security/pam_mount.conf.xml に下記を追記します。追記場所はどこでもいいはずですが、<mkmountpoint enable="1" remove="true" /> の直前がいいと思います。

なお、path は環境に合わせて適切に変更してください。

/etc/security/pam_mount.conf.xml

<volume user="^(?!root).*" fstype="auto" path="/dev/sdaX/home" mountpoint="/" options="fsck,noatime" />
<mkmountpoint enable="1" remove="true" />

</pam_mount>

正規表現が使えるようなので、root 以外はすべて PAM で管理します。
(root を除いているのは PAM がおかしくなった時にログインできなくなったらやだなーと思ってのことです。user="*" でも問題ないかもしれません)

system-auth を編集

/etc/security/system-auth に下記を追記します。

(ArchWiki よりそのまま引用)

/etc/security/system-auth
#%PAM-1.0

auth      required  pam_env.so
auth      required  pam_unix.so     try_first_pass nullok
auth      optional  pam_mount.so    <- 追加
auth      optional  pam_permit.so

account   required  pam_unix.so
account   optional  pam_permit.so
account   required  pam_time.so

password  optional  pam_mount.so    <- 追加
password  required  pam_unix.so     try_first_pass nullok sha512 shadow
password  optional  pam_permit.so

session   optional  pam_mount.so    <- 追加
session   required  pam_limits.so
session   required  pam_env.so
session   required  pam_unix.so
session   optional  pam_permit.so

ディスプレイマネージャーとして SLiM や GDM を使ってる場合、/etc/pam.d/login と、それぞれ /etc/pam.d/slim /etc/pam.d/gdm-password も編集するようです。
(この辺は試してません)

su を編集

/etc/pam.d/su を編集します。

/etc/pam.d/su
#auth   required    pam_wheel.so use_uid    ← コメントアウトを外す

これだけだと su - によるユーザーの変更は制限できないので、su-l も編集しておいた方がいいと思います。

/etc/pam.d/su-l
#auth   required    pam_wheel.so use_uid    ← コメントアウトを外す

sudo できるユーザーも wheel のみにする場合、visudo を編集します。

# visudo

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

再起動

再起動後に反映されます。

以上です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1