- PR -

一般ユーザにルート権限でシェルを実行する方法について

投稿者投稿内容
TSUYOSHI
常連さん
会議室デビュー日: 2004/09/02
投稿数: 32
投稿日時: 2004-09-06 20:34
はじめまして、
現在、RedHat9環境をしようしています。

一般ユーザにルート権限でシェルを実行する方法についてですが
私の調べた限りでは、
 1.ルート権限で実行したいスクリプトのオーナーをルートにする
 2.ルート権限で実行したいスクリプトのパーミッションを「4755」にする(s-bitを立てる)
を行えば、一般ユーザで実行してもルート権限で実行できるはずなんですが
実際には上手く行かず、権限が一般ユーザのままで実行されてしまいます。

これは何か他の設定が必要なのでしょうか?
よろしくお願い致します。

佐々木
大ベテラン
会議室デビュー日: 2003/03/30
投稿数: 121
投稿日時: 2004-09-06 22:08
UNIXを知ったのは10年ぐらい前なのでそれより昔はどうだったのか知りませんが、スクリプトのSUIDビットというのは危なっかしいので無視されるもののようです。

参照元記事にも
引用:

では、スクリプトを suid できるのだろうか?
・・・中略・・・
となる。つまりスクリプトの suid bit は無視されるわけである。これには深い理由があるのだが割愛。


とありますよね。「深い理由」ってやつは私も詳しくは知らないのですが、

  1. execシステムコールの実行により、カーネルが#!行を解釈し(つまり実行するインタプリタを決定し)
  2. スクリプトを引数にしてインタプリタを起動する

という動作がatomicに行われないから危ないんだ。みたいなことをどこかで読んだ気がします。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-09-06 22:21
sudors ファイルいじくって sudo 実行したら?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-09-06 23:17
こんばんわ.
引用:

コブラさんの書き込み (2004-09-06 22:21) より:
sudors ファイルいじくって sudo 実行したら?


username ALL=(ALL) NOPASSWD: command
な感じでしょうか?

便乗でゴメンナサイ.
visudo 使うのと sudoers 直で編集するのと同じでしょうか?-> コブラ様
差し支えなければご教示いただきたく.
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-09-06 23:41
kazさん、こんばんは。

visudo 、、知らんもんで(笑)
すんまへん。

直編集しか分かりません・・・何せ useradd(adduser) も余り使いたくなくて
/etc/passwd, /etc/shadow 直接 vi(vipw)でいじりたがる人間性の持ち主なもんで。。。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-09-07 00:00
引用:

コブラさんの書き込み (2004-09-06 23:41) より:

直編集しか分かりません・・・何せ useradd(adduser) も余り使いたくなくて
/etc/passwd, /etc/shadow 直接 vi(vipw)でいじりたがる人間性の持ち主なもんで。。。


それはそれで玄人っぽくてカッコ良いですね〜 コブラ様

自分もときどき手抜きに sudo 使いますが,
安易に該当の user で login させないようにする仕掛けも必要かも,
です -> TSUYOSHI様
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-09-07 10:06
ハッ!!

kaz さんの名前が最新投稿者名テーブルから消えとる・・・・
TSUYOSHI
常連さん
会議室デビュー日: 2004/09/02
投稿数: 32
投稿日時: 2004-09-07 10:59
数々の返答ありがとうございました。
あまりシステムの深いところをいじるのはちょっと怖いので、
ちょっとやめておこうかなと考えています。
(どうしても無理なら、頑張って調査するしかないかもしれませんが・・・)

そこで、佐々木さんの書込みにあるように
何か「深い理由」でスクリプトにはs-bitを立てられないようなのですが
pingのようにバイナリファイルにs-bitを立ててルート権限で実行しようかと考えましたが
これも上手くいきませんでした。
バイナリの場合は、コンパイル前のソースに手を加える必要があるのでしょうか?
今回s-bitを立てようとしたバイナリファイルは、ベンダー提供の物のため手を加える事ができません。

また現在、別の開発ではSolaris8を使用し「sus」パッケージにてルート権限で実行していますが、これのLINUX版もあるのでしょうか

スキルアップ/キャリアアップ(JOB@IT)