Sudo vim /etc/services
とsudoedit /etc/services
の違いは何ですか? Linuxで/etc/services
ファイルを編集しようとしました。 sudoedit
は編集を許可していますが、Sudo vim
は編集を許可していません。
sudoedit
は、-e
オプションを指定してSudo
を指定します。マニュアルページから:
-e The -e (edit) option indicates that, instead of running a command, the
user wishes to edit one or more files. In lieu of a command, the string
"sudoedit" is used when consulting the security policy. If the user is
authorized by the policy, the following steps are taken.
したがって、システム管理者は、特定のファイルや一般的なすべてのファイルではなく、特定のファイルを編集するためのSudo権限のみを許可できます。これにより、管理者は、ユーザー(またはユーザーのグループ)が昇格された特権で編集できるファイルを制御できます。
さらに、ユーザーは、管理者が指定したエディターではなく、好みのエディターを引き続き使用できます。また、このエディターをユーザー自体として実行します。つまり、たとえばユーザーが.vimrc
で指定したオプションやコマンドが適用されます。
Sudo vim /etc/services
は、スーパーユーザー権限でvimエディターを使用して、指定されたファイルを編集するようにシェルに指示しています。
一方、sudoedit /etc/services
は、スーパーユーザー権限を使用してファイルを編集するために、EDITOR環境変数に格納されているエディターを使用するようにシェルに指示しています。