web-dev-qa-db-ja.com

sudoerがUIDで定義されていないのはなぜですか?

ログイン情報は、LinuxのUIDに関連付けられています。ただし、sudoersファイルを開くと、sudoersはUIDではなくユーザー名で定義されています。

UIDの代わりにユーザー名が使用されるのはなぜですか?
usermod -lを実行すると、sudoersファイルは自動的に変更されますか?

スニペット:

    # User privilege specification
    root    ALL=(ALL:ALL) ALL
5
Flightkick

いくつかのマニュアルに従う[ 12 ]私はあなたにこれらの答えを与えることができます:

  1. UIDでユーザーを示すことができます。

    buntuのsudoers wiki から:

    コメントの前に#を付けることでコメントを挿入できますが、これは、ファイルの特定の部分の後に数字が続く場合にuidを指定するためにも使用されます。

    後で Runasエイリアスセクション の例が報告されています:

    # UID 0 is normally used for root  
    # Note the hash (#) on the following line indicates a uid, not a comment.  
    Runas_Alias ROOT = #0
    
  2. 単にusermod -lを実行する場合、sudoersの変更を伝播しないでください。
    確かに sermodのmanページ から、 BSD one よりも有益です。

    -l、-login NEW_LOGIN
    ユーザーの名前がLOGINからNEW_LOGINに変更されます。 他に何も変更されていません。
    特に、ユーザーのホームディレクトリ名は、新しいログイン名を反映するように手動で変更する必要があります。

    -lパラメーターのみを指定した場合でも、sudoersの変更を手動で処理することを意味しているようです。おそらく、古いユーザー名を消去して ユーザーをSudoグループに追加する

    Sudo usermod -a -G Sudo hduser
    

    実際、2008年にDebian Sidシステムを使用して このユーザー で発生しました。

    以前は、sidラップトップにログインするためのユーザー名としてXXXを使用していましたが、XXXはsudoersファイルにあります。今日はYYYに変更しました

    Sudo usermod -l YYY XXX

    私は他に何もしませんでした。

    これで、YYYを使用してログインできますが、rootパスワードを使用してrootにsuすることができませんでした。 また、 'YYY'はsudoersファイルにないため、/ etc/sudoersを編集してYYYを含めることはできません。

最後にwhy、おそらくあなたはSudoの最後の(勝った)フォークをした Todd Miller からのみ決定的な答えを得る必要があります1991年、または1980年からの場合はBobCoggeshallまたはCliffSpencerから[ 7 ]。

参照

1
Hastur