10/06/17 05:39:56 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です。