[解決済み] su を使って、そのユーザとして残りの bash スクリプトを実行するにはどうすればよいですか?
2022-04-26 03:32:05
質問
ユーザー名とプロジェクトを連結した文字列を引数として受け取るスクリプトを書きました。このスクリプトは、ユーザー名にスイッチ(su)して、プロジェクト文字列に基づいて特定のディレクトリにcdすることになっています。
基本的にやりたいのは
su $USERNAME;
cd /home/$USERNAME/$PROJECT;
svn update;
問題は、一度suをすると...そこで待っているだけになってしまうことです。これは、実行の流れがユーザーへの切り替えに移行しているので、理にかなっています。一度終了すると、残りのものは実行されますが、希望通りには動きません。
svnコマンドの前にsuを付けましたが、コマンドは失敗しました(つまり、希望するディレクトリのsvnを更新しませんでした)。
ユーザーを切り替えて svn を起動するスクリプトはどのように書けばよいでしょうか(中略)。
どのように解決するのですか?
su"の代わりに、"sudo"を使用するのがコツです。
これを追加する必要があるかもしれません
username1 ALL=(username2) NOPASSWD: /path/to/svn
を /etc/sudoers ファイルに追加します。
に変更し、スクリプトを変更します。
sudo -u username2 -H sh -c "cd /home/$USERNAME/$PROJECT; svn update"
ここで、username2 は SVN コマンドを実行するユーザ、username1 はスクリプトを実行するユーザです。
このスクリプトを複数のユーザーで実行する必要がある場合は
%groupname
の代わりに、ユーザー名1
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法?
-
[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー
-
[解決済み] bash スクリプトの "${BASH_SOURCE[0]}" と $( cd $( dirname "xxx" && pwd )) の意味について
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] grepの出力に含まれる重複を削除する
-
[解決済み] bashスクリプトで変数の束縛を解除
-
[解決済み] シェルスクリプトで整数式が期待されるエラー
-
[解決済み] Grep 'binary file matches'. どうすれば正常なgrepの出力が得られるか?[重複]する
-
[解決済み] MINGW64 "make build" エラー。"bash: make: コマンドが見つかりません"