499 名前:login:Penguin mailto:sage [2010/06/17(木) 05:39:56 ID:TJFzO9Yj] 以下のようなことが実現したいです。 ・root又は(ログイン出来る)一般ユーザーのcron等で、shスクリプトを実行 ・そのスクリプトの動作自体は、他のユーザー権限で行いたい(ファイル作成やコピー等) ・その"他のユーザー"と言うのは、システムには存在するが、ログインシェルやパスワードがない (普段はFTPやメール等専用のユーザーで、SSHログインを認めていない) 色々ググッて調べてみたのですが、 ・スクリプト内で su は使えない → "This account is currently not available."と出て、userが切り替わらない ・suidビットを立てる → shスクリプトには無効(他の例えばperlスクリプト等では可能?) っと言ったような状況です。 とりあえずの解決策としては、以下のようなことが考えられるのですが、 ・全部rootで実行後、chmodやchownで適宜ファイル属性を修正する ・perl等shスクリプト以外で実現 ・その実行ユーザーにログインシェルとPasswordを与えてログイン出来るようにする 端的に希望を述べると、"suで切り替えできないユーザーの権限で、スクリプトやプログラムを実行したい" っと言うことなんですが、出来ればshスクリプト(bash)だけで解決する方法はないでしょうか? もちろん実現不可能であれば、上記のどれかで解決しようとは思いますが、 サービス起動のいくつかのプログラムで似たような動作 (rootでキックされるが、アプリ実体は別のユーザー権限で実行される)が 実現出来ているので、なんとかやる方法はあるとは思うのですが・・・。 (mysqld_safe等、そのあたりの起動スクリプトはこれから読んでみようと思います) ディストリはCentOS/5.5 or 4.8、bashのバージョンは3.0及び3.2.25です。