質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

解決済

3回答

16706閲覧

[centos7] ユーザ切り替え(su)の制限方法について

choitarou

総合スコア112

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

1クリップ

投稿2016/12/15 06:13

編集2016/12/15 06:19

お世話になっております。
ユーザとグループの設定方法について、以下の点が不明な為、ご質問させてください。


<やりたいこと>
特定のグループに所属しているユーザからのみ、su <切り替えたいユーザ>
を許可したい。
特定のグループに所属していないユーザからのsuによるユーザ切り替えは拒否したいです。

※切り替えたいユーザは、rootではなく、登録してある個人ユーザです。
例えば、A、B、C、D、Eの5名がいて、
BとCが所属するグループ1だけが、su Dでスイッチ可能にしたいです。
AとEはグループ2なのでsuを拒否したいです。


今の設定だと、どのユーザからでもsuでパスワードを入力すると
スイッチ出来てしまうのですが、どのような設定を行えば、上記のような
制限が出来るのかについて、ご教授いただけないでしょうか?

簡単な質問かとは思うのですが、ネット上で調べると、ルートユーザの
設定ばかりが大量に検索でHITして、なかなか上記の設定が何なのか
検索できない為、ここに質問させて頂きました。
どうぞ宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

sudo コマンドでsu - Dコマンドの実行許可を与えるのではどうでしょうか。

/etc/sudoers ファイルに以下を記述すると、

sh

1%グループ1 ALL=/usr/bin/su - D

「グループ1」のユーザだけが以下のコマンドを実行できるようになります。

sh

1$ sudo su - D

投稿2016/12/15 07:59

tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

choitarou

2016/12/15 09:03

ご教授頂きまして、ありがとうございます。 試してみたところ、Dになれなくなりました。 なんでしょうね、CentOS7だからなのかな、、 一応、suコマンドのパスを確認して、/bin/suを指定してみたのですが、 グループ1、グループ2のどちらのユーザでもsu - Dでコマンドは打てて、 パスワードを入力すると、どちらの場合も、Dユーザにはなっておらず、 コマンドを打つ前と同じユーザになっている状態です。
choitarou

2016/12/15 09:16

すみません、できました! 私の設定が間違ってただけでした。 大変助かりました、ありがとうございました。
guest

0

以下の参照URLが参考にならないでしょうか?
Weheel以外のグループに対しての制限も記載されています。
http://wp.heptagon.co.jp/blog/archives/154

投稿2016/12/15 06:24

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

choitarou

2016/12/15 06:30

早急ご回答ありがとうございます。上記HPは私も見ておりましたが、/etc/pam.d/suの設定は、rootになるためのsuの制限のようです。なので、登録したユーザと、グループに所属していればsu rootが出来る設定のようです。今回私が行いたいのは、su 一般ユーザの切り替えを制限したいと考えているのですが、なかなか設定が見つからない状態です><;
yunano

2016/12/15 06:38

この設定をすると対象グループ以外だとsu rootだけでなくsu (一般ユーザ)も失敗します。 むしろrootだけに制限したい場合は「use_uid」の代わりに「root_only」にする必要があります。
choitarou

2016/12/15 06:45

ご回答ありがとうございます。ご記載頂きました内容について承知致しました。 また、今回私が行いたい設定の su <一般ユーザ> の制限方法につきましても 引き続き募集しております。どなたかご存知の方、いらっしゃいましたら、ご回答頂ければと 思いますので、よろしくお願い致します。
yunano

2016/12/15 06:56

というと、頂いた例を使わせてもらえばユーザBは「su D」は成功するが「su E」は失敗するようにしたい、とかでしょうか。
choitarou

2016/12/15 07:03

ユーザDに「su D」でスイッチ可能なユーザを「グループ1」に所属したユーザ(この例ですとBとCだけ)に制限したいと考えております。 AとEは、「グループ1に所属していない」ので、「su : 拒否されたパーミッション」のように エラーとして弾きたいです。
over

2016/12/15 07:03

> 今回私が行いたい設定の su <一般ユーザ> の制限方法 これは、su自体を禁止にするのではなく「su <一般ユーザ> 」のみを禁止という意味でしょうか? 動作確認したら、期待した動きを見せたのですが。
choitarou

2016/12/15 07:12

すみません、記載不足でした。 su はA~Eまでの全てのユーザがwheelにも所属しており、全員suコマンド実行は可能な状態とお考え頂ければと思います。私の環境でも、全員がwheelに所属している為、全員が、「su D」でスイッチ可能なのが現在の状態となります。 全員su自体は出来る上で、更に、所属グループによって、特定ユーザ<D>へのスイッチをグループによって制限したいと考えているのですが、、これは無理かもしれませんね。
guest

0

/etc/pam.d/su の「account sufficient pam_succeed_if.so uid = 0 use_uid quiet」行のすぐ下に、

account [success=ignore default=1] pam_succeed_if.so uid = (Dのuid) quiet account required pam_succeed_if.so gid = (グループ1のgid) use_uid quiet

を追加すれば、Dにsuできるのはグループ1に所属するユーザー(とroot)のみとなるはずです。

投稿2016/12/15 10:09

yunano

総合スコア841

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

choitarou

2016/12/28 05:25

ご回答が遅くなり大変申し訳ございません。しばらく、このサイトを見ておりませんでした。 上記の方法でも試してみたところ、期待通り動作致しました。 こちらの方法がスマートで分かりやすく良い方法だと思います。 大変ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問