2 つのコマンドの違いは何ですか? 別のユーザーとして何かを実行したいときに、そのユーザーをエミュレートするにはどちらが適していますか?
sudo -H -iu USER command
そして
su -l USER -c command
答え1
別のユーザーとしてコマンドを実行しようとすると、sudo
パスワードが要求され、su
他のユーザーのパスワードが要求されます。
Sudo は、権限のないユーザーが別のユーザーとして特定のコマンドを実行できるように設計されており、/etc/sudoers
システム管理者がどのユーザーがどのコマンドをどのユーザーとして実行できるかを決定できる構成ファイルがあります。つまり、きめ細かい権限があります。これらの権限は付与でき、後で取り消すことができます。
Su では、別のユーザーとしてコマンドを実行することもできますが、同じきめ細かい権限が設計されていません。他のユーザーのパスワードを持っている場合は、そのユーザーとして何でも実行できます。そのアクセスを取り消す唯一の方法は、他のユーザーのパスワードを変更することです。
意見アラート
一般的に、私はほとんどのことには使用しませんsudo
。su
誰かにすべての鍵(パスワード)を渡すのではなく、少しのアクセス権を与える方が簡単です。
意見終了
別のユーザーを「シミュレート」しようとする場合、効果に大きな違いはありません。どちらもそのユーザーとしてコマンドを実行します。