
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ランキング
-
Core 2 Duo の古いパソコンに最...
-
LinuxでWine使うとどのくらいWi...
-
Linux のシェルスクリプトの強...
-
「/var/log」内のログの削除の...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
ubuntu が起動しない。
-
bashでシングルクォート内の変...
-
インストールできないですどう...
-
ubuntuお試し中です
-
ubuntu(linux)のシャットダウン...
-
linuxのインストール
-
ubuntuのシャットダウンが進ま...
-
ubuntu 24 へのCanon 複合機ス...
-
ubuntuで デイスク/deb/loopと...
-
VirtualBox ゲストOSにPC内蔵HD...
-
ssl_request_logの必要性について
-
ログにserver reached MaxReque...
-
「トゥ]の出し方
-
ubuntu 22日本語Remixのisoイメ...
-
LinuxのUbuntuのアップデートに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
export と set は違うの?
-
Cシェル内でBシェルの様な関数...
-
.cshrc ファイルについて
-
シェル 会話形式でエンターキ...
-
x11のTerminalが複数個起動しない
-
BシェルとBashの違い
-
if [ "$PS1" ]の意味を教えてく...
-
コマンドプロンプトとかで、net...
-
シェルスクリプトで #!/bin/sh ...
-
Cシェルでのファイルからの入...
-
『存在するかどうか分からない...
-
ターミナルが全く入力できない
-
シェルとシェルの間で環境変数...
-
Linuxのファイル禁止文字
-
ubuntuの端末の左にカレントデ...
-
シェル(ksh)で変数にある文字列...
-
solarisのsetenvが無効
-
ログインシェルについて
-
Tabキー補完や↑キーのヒストリ...
-
UNIX(hp-ux)のコマンド履歴↑↓
おすすめ情報