GIDは実際に何を意味しますか?
私はGoogleを試しました。linux.about.com説明する:
プロセスのグループ識別番号。有効なグループ番号は、ファイルのフィールド
/etc/group
とGIDフィールドに提供されます/etc/passwd
。プロセスが開始されると、そのGIDは親プロセスのGIDに設定されます。
- しかし、これは何を意味しますか?
フォルダに対する私の権限は現在次のとおりです。0755
所有者のUIDを設定すると4755
グループのGIDを設定すると2755
他人のために固定ビットを設定すると1755
- これらの権限を設定することは重要ですか?
答え1
すべてのファイルと同様に、UNIXシリーズシステムのすべてのプロセスには、所有者(実際のユーザーまたはシステムの「医師ユーザー」である可能性があるユーザー)とグループ所有者がdaemon
あります。ユーザーファイルのグループ所有者は通常そのユーザーのデフォルトグループであり、同様の方法で開始するすべてのプロセスは通常、ユーザーIDとデフォルトグループIDによって所有されます。bin
man
ただし、特定のコマンドを実行するには高い権限が必要な場合がありますが、完全な管理権限を付与することは望ましくありません。たとえば、passwd
コマンドがパスワードを更新するには、システムのシャドウパスワードファイルにアクセスする必要があります。明らかに、すべてのユーザーにパスワードをリセットできるようにroot権限を与えたくありません。これは間違いなく混乱を招くでしょう!代わりに、特定のタスクを実行するためにユーザーに高い権限を一時的に付与する別の方法が必要です。これがSETUIDとSETGIDビットの目的です。これは、表示されたコマンドの実行中に一時的にユーザー権限を向上させるようにカーネルに指示する方法です。 SETUIDバイナリはroot
(通常)実行可能ファイルの所有者の権限で実行されますが、SETGIDバイナリは実行可能ファイルのグループ所有者のグループ権限で実行されます。 SETUIDコマンドpasswd
の場合、root
通常のユーザーはroot権限で実行して、制御され予測可能な方法でパスワードファイルの内容に直接影響を与える可能性があります。 UNIXシリーズシステム(、、、など)SETUID
には他の多くのコマンドがあり、すべて正しく機能するには高い権限が必要です。ログファイルなどへのアクセスを許可するために、カーネルがプロセスのGIDを一時的に変更するプログラムもあります。これがそのようなユーティリティの1つです。chsh
screen
ping
su
SETGID
sendmail
そのsticky bit
目的は少し異なります。最も一般的な用途は、ファイルを作成したユーザーアカウントのみがそのファイルを削除できるようにすることです。/tmp
目次を考えてみてください。非常に自由な権限を持っているので、誰でもファイルを生成できます。これは良い機能であり、ユーザープロセスが一時ファイル(などを生成しscreen
てssh
ステータス情報を/tmp
)に保存できるようにします。ユーザーの一時ファイルを保護するために、/tmp
私のファイルは自分だけを削除でき、自分のファイルは自分だけを削除できるように固定ビットが設定されています。もちろん、ルートは何でもできますが、システム管理者が正気ではないことを望む必要があります!
通常のファイル(つまり実行不可能なファイル)の場合、SETUID / SETGIDビットの設定はほとんど意味がありません。一部のシステムのディレクトリにあるSETGIDは、そのディレクトリに作成された新しいファイルのデフォルトグループの所有者を制御します。
答え2
ご存知のように、GIDはグループID番号です。これは、オペレーティングシステムが何か(プロセス、ファイルなど)に関連する(ユーザー)グループを表現する便利な方法にすぎず、潜在的に長い文字列識別子ではなく固定サイズの数字で表すことができます。
4進数ファイル権限値(0755など)では、3番目の数字はファイルに対するグループの権限を指定します。最初の数字が省略された場合、2番目の数字はグループの権限を指定します。これに関して、ファイルとディレクトリは同じように扱われますが、ディレクトリの場合、各許可ビットの正確な意味はやや直感的ではありません。
2つの概念は互いに関連していますが、用途は非常に異なります。
「これらの権限を設定することは重要ですか?」という質問は、常に次のように設定されています。何ただし、ほとんどの場合、最初の数字は0(「特別なものはありません」)なので、簡潔さのためにしばしば省略されます。別の値を指定する必要があるかどうかは、完全にそのファイルまたはディレクトリの使用パターンによって異なります。
答え3
ファイルの「SGID」ビットを意味するようですが、これはGIDとは異なります。
これは私のコンピュータにある一般的なファイルです(ls -lの出力)。
-rw-r----- 1 bristol users 16 2012-07-23 11:36 file.txt
abbbcccddd <-- See explanation below.
最初の10個の記号を見ると、
(a) - :これは通常の古いファイルです(ディレクトリ、シンボリックリンク、パイプなどとは反対...)。
(b) rw-: 所有者はファイルを読み書きできますが、ファイルを実行することはできません。後でキューに見られるように、所有者は「ブリストル」です。
(c)r--:所有者以外のファイルが属するグループのメンバー(例: "user")はファイルを読み取ることはできますが、ファイルを書き込んだり実行したりすることはできません。
(d)---:他の誰もこのファイルにアクセスできません(もちろんルートは除く)。
GIDフィールドは、ファイルが属するグループ(この場合は「ユーザー」)を示します。
説明によると、おそらく参照するフィールドはSGIDビットです。私が考えるよりも良い説明は次のとおりです。
http://www.codecoffee.com/tipsforlinux/articles/028.html
短いバージョンは次のとおりです。実行可能ファイルにSGIDビットが設定されている場合、そのグループに属していませんが、ファイルを実行できる人はプログラムの実行中に一時的にそのグループの権限を取得します。
たとえば、印刷スプーラディレクトリでファイルを読み書きできる「spool」グループがあり、誰もこのディレクトリを操作したくないがファイルを印刷できるようにしたい場合は、次のようにします。一部の印刷プログラムまたはスクリプトには「スプール」グループがあり、SGIDビットが設定されており、誰でもプログラムを起動すると、プログラムを実行している人がフルアクセスを持っていなくてもプログラムがスプーラディレクトリに書き込むことができます。