
SunOS 5.10を使っていますが
シェルを実行するのはAやBなど同一グループに属すユーザとしてシェルと作成し、
シェルの中で実行されるコマンドや子シェルはXというAやBと同一グループだけど
単一ユーザにしたいのですがそういう事は可能ですか?
・rootユーザはNG
・パスワードの入力は対話型でするのではなく自動化させたい
・rshやrloginなどは使いたくない
・恒久的にXというユーザのパスワード入力が省略されるのはNG
などが条件です。
要はツールをシェルで作って実行するユーザはマルチユーザ化したいが
シェル内ではパスワード入力などマルチユーザが意識しないで処理が止まる事なく
単一ユーザで処理させたい、出力したファイルなどの所有者も
単一ユーザとなるのようにしたいのですが。
わざと抽象的に書いていますが、なにか方法はありますでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> やってみました。
> A.shlがkshだとうまくいくようですがcshだと
> 「csh 権限がありません」と怒られます。
本来シェルに suid をセットすることはセキュリティ上望ましくありません。なので、OSによってはブロックされる (suid が無視される) ケースがあります。
> ラッパープログラムってなんでしょう?
こんなやつです。
--
#include <unistd.h>
int main (int argc, char *argv[])
{ execv (argv[0], argv[1]); return 0; }
--
あとは、コンパイラがgcc であれば、
# gcc -o suid_wrapper suid_wrapper.c
# chmod u+s suid_wrapper
% ./suid_wrapper /usr/bin/csh ...
とすれば、csh は root ユーザ起動されるので、いけると思います。
くれぐれもセキュリティホールにご注意!!
cshも-bオプションで解消されました。
セキュリティの問題は目的が複数ユーザが特定のシェル(TOOL)を
利用できる事が目的でただし実行は単一ユーザにする事なので
問題ないと思っています。ありがとうございました。
No.3
- 回答日時:
su ユーザ名 -c "実行コマンド"
では駄目でしょうか?
この回答への補足
su の場合
・パスワードの入力は対話型でするのではなく自動化させたい
・恒久的にXというユーザのパスワード入力が省略されるのはNG
が満たせないと思うのですが・・・
No.2
- 回答日時:
シェルもしくはラッパープログラムに setuid を設定するのでダメですか?
プログラムに setuid を設定すると誰が実行してもプログラムの所有者の権
限で動作するようになるので、あとはグループに属さない人がシェルを実行
できないように、other に対して実行権限を与えなければ良い、つまりパー
ミッションを 4750 などにすればように思いますが。
この回答への補足
ラッパープログラムってなんでしょう?
とは別に、例えばA.shlが実際のシェルだった場合に
chmod 4755 A.shl
とするって事ですよね?やってみます。
やってみました。
A.shlがkshだとうまくいくようですがcshだと
「csh 権限がありません」と怒られます。
シェルの内容は
ksh:
#! /bin/ksh
touch test
csh:
#! /bin/csh
touch test
とtouchをするだけのシェルですが
kshの方はシェルの所有者と別のユーザで実行してもtestファイルが所有者と同じですがcshはそもそも上のエラーが出てしまいます。
なにが違う、いけないのでしょうか?
kshかcshって言語の違いのようなだけだと思っているのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
違いについて
-
Cシェルでのファイルからの入...
-
unix初心者です
-
シェルとシェルの間で環境変数...
-
BシェルとCシェル
-
『存在するかどうか分からない...
-
シェルスクリプトで #!/bin/sh ...
-
export と set は違うの?
-
TOPコマンドで表示するCPU使用...
-
ラズパイで『’test.service’をs...
-
pingは正常なのにtracerouteで...
-
batである文字列内に特定の文字...
-
Linux環境 grepで改行コード(CR...
-
タスクマネージャのCPU率がおか...
-
スクリプトのエラー「unexpecte...
-
空きIPアドレスを探す方法
-
コマンドプロンプトにおけるコ...
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
bashでシングルクォート内の変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェル 会話形式でエンターキ...
-
ubuntuの端末の左にカレントデ...
-
export と set は違うの?
-
Cシェル内でBシェルの様な関数...
-
.cshrc ファイルについて
-
シェル(ksh)で変数にある文字列...
-
コマンドプロンプトとかで、net...
-
シェルを元に戻したい
-
solarisのsetenvが無効
-
lsコマンド部分一致方法
-
バックスラッシュの意味がわか...
-
WindowsXPについて
-
kshについて
-
シェルスクリプトの切り替え?
-
unix初心者です
-
apache停止してたら再起動させ...
-
UNIX(hp-ux)のコマンド履歴↑↓
-
シェルの編集の仕方について
-
telnetの制限
-
コンソールでの上下左右矢印ボ...
おすすめ情報