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で質問しましょう!
似たような質問が見つかりました
- ルーター・ネットワーク機器 NUROのルータF660Aについて 2 2022/09/07 11:44
- その他(開発・運用・管理) ユーザ権限でソフトを起動すると必ず管理者パスワードをきかれてうまく利用できない 3 2022/05/10 00:07
- その他(Microsoft Office) Excelでユーザ名を入力すればそのユーザの最大、平均が表示されるようにする、何も入力されてなければ 1 2022/07/28 00:31
- サーバー Windowsサーバでグループを検索したい 1 2023/04/17 15:30
- その他(クラウドサービス・オンラインストレージ) おすすめのパスワードマネージャは? 1 2023/02/28 20:09
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- Windows 10 windowsセキュリティーでパスワードエラー 1 2022/06/14 19:49
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- Outlook(アウトルック) 「Microsoft Outlook2016」接続のインポートはできますか? 2 2022/07/10 06:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルの変数をMySQLに送る方法...
-
mac os x10.6.4のターミナルでp...
-
シェルスクリプトのbashとperl...
-
シェルとシェルの間で環境変数...
-
posixでshellを起動したとき`da...
-
msys(cygwin)で、シェルスクリ...
-
ps -aのセッションリーダとは
-
Kシェルに関して。
-
SQL*Loaderの中断について
-
pc98のコマンドプロンプトからD...
-
『存在するかどうか分からない...
-
バックスラッシュの意味がわか...
-
Cシェル内でBシェルの様な関数...
-
.cshrc ファイルについて
-
Linuxのファイル禁止文字
-
シェルスクリプトで #!/bin/sh ...
-
BシェルとBashの違い
-
Linuxシェルによる同一文字列の...
-
シェルスクリプトに関する問題...
-
exitコマンドの後の変数につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cシェル内でBシェルの様な関数...
-
export と set は違うの?
-
ターミナルが全く入力できない
-
ubuntuの端末の左にカレントデ...
-
シェルスクリプトで #!/bin/sh ...
-
.cshrc ファイルについて
-
バックスラッシュの意味がわか...
-
シェル 会話形式でエンターキ...
-
『存在するかどうか分からない...
-
シェルスクリプトに関する問題...
-
シェルスクリプトのbashとperl...
-
lsコマンド部分一致方法
-
シェル(ksh)で変数にある文字列...
-
mac os x10.6.4のターミナルでp...
-
Linuxのファイル禁止文字
-
Solarisでデフォルト環境変数の...
-
ps -aのセッションリーダとは
-
csh (tcsh)での環境変数の長さ...
-
tcshなのにスクリプト構文中のs...
-
Cシェルでのファイルからの入...
おすすめ情報