![rootと現在のユーザーの両方でスクリプトを実行するにはどうすればよいですか? [コピー]](https://linux33.com/image/135929/root%E3%81%A8%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%A7%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
sudo
特定のタスクを実行するには権限が必要ですが、現在のユーザーとして特定の設定を変更する必要があるシェルスクリプトを作成したいと思います。ユーザーの介入を必要としないようにスクリプトをできるだけ自動化したいと思います。
私が経験している問題は、スクリプト全体を実行するとsudo
現在のユーザーの設定を変更できないことです。ただし、root権限を必要とする特定のコマンドのみを追加すると、スクリプトが長くなりタイムアウトになるため、sudo
パスワードを入力し続ける必要があります。sudo
sudo
現在のユーザーでスクリプトを実行していますが、必要に応じて権限を維持する方法はありますか?
答え1
基本的には2つの方法があります。
他のプログラム/スクリプトへのrootアクセスを必要とする子タスクを分離し、その部分をrootとして実行します(setuid rootバイナリまたは経由
sudo
)。プログラム全体をrootとして実行し、次のように通常のユーザーとして実行する必要がある部分を実行します。
su - user