GIDは実際にはどういう意味ですか?

Googleで検索しましたが、これが linux.about.com のコメント:

プロセスのグループ識別番号。有効なグループ番号は、/etc/groupおよび/etc/passwdファイルのGIDフィールドに記載されています。プロセスが開始されると、そのGIDはその親プロセスのGIDに設定されます。

  • しかし、それはどういう意味ですか?

現在、自分のフォルダに対する権限は0755

にあります。

所有者のUIDを設定すると、0755

グループのGIDを設定すると、2755

の場合他のユーザーにスティッキービットを設定します。1755

  • これらの権限を設定することも重要ですか?

回答

UNIXライクなシステムのすべてのプロセスは、すべてのファイルと同様に、所有者(実際のユーザー、またはシステムの「疑似」)を持っています。 -ユーザー」(daemonbinmanなど)およびグループオーナー。ユーザーのファイルのグループ所有者は通常、そのユーザーのプライマリグループであり、同様の方法で、開始するプロセスは通常、ユーザーIDとプライマリグループIDによって所有されます。

場合によってはただし、特定のコマンドを実行するには昇格された特権が必要ですが、完全な管理者権限を付与することは望ましくありません。たとえば、passwdコマンドは、パスワードを更新できるように、システムのシャドウパスワードファイルにアクセスする必要があります。もちろん、すべてのユーザーにroot権限を付与する必要はありません。彼らがパスワードをリセットできるようにするためだけに-それは間違いなく混乱につながるでしょう!代わりに、特定のタスクを実行するためにユーザーに昇格された特権を一時的に付与する別の方法が必要です。それがSETUIDビットとSETGIDビットの目的です。これは、マークされたコマンドの実行中に、ユーザーの特権を一時的に上げるようにカーネルに指示する方法です。 SETUIDバイナリは、実行可能ファイルの所有者の特権(通常はroot)で実行され、SETGIDバイナリは、実行可能ファイルのグループ所有者のグループ特権で実行されます。ファイル。 rootに属しSETUIDであるpasswdコマンドの場合、通常のユーザーがパスワードの内容に直接影響を与えることができます。 root権限で実行することにより、制御された予測可能な方法でファイルを作成します。 UNIXライクなシステムには他にも多数のSETUIDコマンドがあります(chshscreenpingsuなど)。これらはすべて、正しく動作するために昇格された特権を必要とします。 SETGIDプログラムもいくつかあり、カーネルがプロセスのGIDを一時的に変更して、ログファイルなどにアクセスできるようにします。sendmailはそのようなユーティリティです。

sticky bitの目的は少し異なります。その最も一般的な使用法は、ファイルを作成したユーザーアカウントのみがファイルを削除できるようにすることです。 /tmpディレクトリについて考えてみてください。非常に自由な権限があり、誰でもそこでファイルを作成できます。これは優れており、ユーザーのプロセスが一時ファイル(screensshなど)を作成し、状態情報を/tmp)。ユーザーの一時ファイルを保護するために、/tmpにはスティッキービットが設定されているため、ファイルを削除できるのは私だけで、あなただけが削除できます。あなたのものを削除します。もちろん、rootは何でもできますが、sysadminが混乱しないことを期待する必要があります!

通常のファイル(つまり、実行不可能なファイル)の場合、SETUIDを設定する意味はほとんどありません。 / SETGIDビット。一部のシステムのディレクトリのSETGIDは、そのディレクトリに作成された新しいファイルのデフォルトのグループ所有者を制御します。

コメント

  • ああ、ありがとう。したがって、スティッキービットは個人(ユーザー)の許可のようなものですか?その答えはわかりやすく、わかりやすいものでした。
  • ありがとうございます。スティッキービットは、リベラルなディレクトリ内のファイルを少し保護します。権限。'は、所有者が誰であるかに関係なく、すべてのファイルに同じレベルの保護が提供されるため、特定のユーザーに固有のものではありません。'誰でもファイルを作成できるようにし、所有者だけがファイルを破棄できるようにする方法。
  • + 1、D_bye、ディレクトリに設定されたsetgidビットの例を教えてください。ありがとう
  • @AnkitSolarisでは(そしてほぼ間違いなく他の人-私は* BSDとSolarisのみを使用します)、setgidビットがディレクトリに設定されている場合、そのディレクトリの下に作成された新しいファイルはすべて同じになりますグループ所有者をディレクトリ自体として使用し、作成プロセス(実行中のユーザー)のプライマリグループを継承しません。

回答

ファイルの「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-:所有者はこのファイルの読み取りと書き込みはできますが、実行はできません。所有者は「bristol」です。行の後半。

(c)r–:所有者以外のこのファイルが属するグループのメンバー(例では「users」)は、このファイルの読み取りはできますが、書き込みや実行はできません。

(d)—:A他の誰もこのファイルにアクセスできません(もちろんルートを除く)。

GIDフィールドは、このファイルがどのグループに属しているか(この場合は「ユーザー」)を示すフィールドです。

あなたの説明に基づいておそらくあなたが意味したフィールドはSGIDビットであり、ここに「私が思いつくよりも良い説明があります:

http://www.codecoffee.com/tipsforlinux/articles/028.html

短いバージョンは次のとおりです。実行可能ファイルにSGIDビットが設定されている場合、グループに属していないがこのファイルを実行できると、プログラムの実行中に一時的にこのグループの権限を取得できます。

たとえば、印刷スプーラディレクトリでファイルの読み取りと書き込みができるグループ「スプール」がある場合は、誰もがこのディレクトリをいじりたいが、ファイルを印刷できるようにしたい場合は、印刷プログラムまたはスクリプトにグループ「スプール」を作成してSGIDビットを設定すると、誰かがこのプログラムを起動すると、プログラムで次のことができるようになります。人を実行せずにspoolerディレクトリに書き込むフルアクセスを取得します。

コメント

  • それは良いことです、ありがとうございます。パーミッションの部分(abbbcccdddの部分)は理解していますが、それはあなたです:)
  • tmpフォルダーのパーミッションがdrwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmpであることを確認しました。 abbbcccddt(文字' t ')とはどういう意味ですか?-" d = directory "、" rwx = read、書き込み、実行";しかし、私はこれまで最後に' t 'を見たことがありません。 tmpフォルダーに対する特別なアクセス許可ですか?
  • 小さいtは"実行可能(x)で、スティッキービットが設定されています"。これが/ tmpで通常行われる理由の説明については、上記を参照してください。

回答

GIDは次のとおりです。あなたが見つけた、グループのID番号。これは、OSが何か(プロセス、ファイルなど)に関連付けられた(ユーザー)グループを表現するための便利な方法です。潜在的に長い文字列識別子の代わりに、固定サイズの数値として表すことができます。

4桁の8進数のファイルアクセス許可値(たとえば、0755)では、3桁目がグループのアクセス許可を指定します。最初の桁を省略すると、グループのパーミッションを指定するのは2桁目です。この点では、ファイルとディレクトリは同じように扱われますが、各パーミッションビットの正確な意味は多少異なることに注意してください。 -ディレクトリの場合は直感的です。

2つの概念は関連していますが、目的は大きく異なります。

質問については、「これらの権限を設定することも重要ですか?」;これらは常に何かに設定されますが、ほとんどの場合、最初の桁は0(「特別なものはない」)であるため、簡潔にするために省略される傾向があります。他の値を指定する必要があるかどうかは、完全に異なります。問題のファイルまたはディレクトリの使用パターン。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です