GNU/Linux >> Linux の 問題 >  >> Linux

所有者/ルートとRuid/euidの違いは?

私は質問で言及された概念に比較的慣れていません、そして異なる情報源からそれらについて読むことはそれらをより混乱させるだけです。これが私がこれまでに理解したことです:

ファイルへのアクセス許可が与えられると、次のようになります。

-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin

ユーザーuser2を想定しています usersグループのメンバー file.binを実行しようとします 。 setuidビットが設定されていない場合、これはfile.binのRUIDとEUIDの両方を意味します。 user2のUIDと同じでした 。ただし、setuidビットが設定されているため、これはRUIDがuser2のUIDと等しくなることを意味します。 、EUIDはファイルの所有者のUIDですが、user1

私の質問は次のとおりです:

  1. ファイルの所有者とrootの違いは何ですか ? rootを実行します 所有者と同じ権限を持っていますか?または、rootの権限リストに別のエントリが必要ですか? ?
  2. RUIDとEUIDの違いは?
    • 私が理解しているように、RUIDとEUIDはプロセスにのみ適用されます。その場合、なぜユーザーIDの値を持っているのですか?
    • RUIDがプロセスを作成するユーザーであり、EUIDが現在プロセスを実行しているユーザーである場合、この質問の最初の回答の最初の文は私には意味がありません。
    • setuidビットが何をするのか正しく理解しましたか?

承認された回答:

答えは次のとおりです:

  1. root 常に満杯 ファイルとディレクトリへのアクセス。通常、ファイルの所有者もそれらを持っていますが、これは常に正しいとは限りません。例:

    -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

    user1 所有者です;ただし、読むしかできません および実行 、ただしroot 引き続きフルアクセス( rwx )ファイルに。

  2. RUIDは実際のユーザーID そしてそれは(ほとんど)変わらない。 user2の場合 システムにログインすると、シェルは実際のIDをuser2に設定して起動されます。 。シェルから開始するすべてのプロセスは、実際のID user2を継承します 実際のIDとして。

    EUIDは有効なユーザーIDsetuidビットを設定したユーザーが実行するプロセス(ユーザーではない)に対して変更されます 。

    user2の場合 file.binを実行します 、RUIDはuser2になります 開始されたプロセスのEUIDはuser1になります 。

passwdの場合を使用してみましょう :

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • user2の場合 パスワードを変更したい 、/usr/bin/passwdを実行します 。

  • RUIDはuser2になります ただし、そのプロセスのEUIDはrootになります 。

  • user2 passwdを使用できます のみを変更するには 内部的にpasswdであるため、自分のパスワード RUIDをチェックし、それがrootでない場合はチェックします 、そのアクションは実際のユーザーのパスワードに制限されます。

  • EUIDがrootになる必要があります passwdの場合 プロセスは書き込む必要があるためです /etc/passwdへ および/または/etc/shadow


Linux
  1. ログインシェルと非ログインシェルの違いは?

  2. 2>&-、2> / dev / null、|&、&> / dev/nullと>/dev / null 2>&1の違いは?

  3. Sudo Su –とSudo Su —の違いは何ですか?

  1. EotとEofの違いは?

  2. [0-9]、[[:digit:]]とDの違いは?

  3. GtkとQtアプリケーションの違いは?

  1. ブロックサイズとクラスターサイズの違いは?

  2. 配管とコマンド拡張の違いは?

  3. SnatとMasqueradeの違いは?