GID anlamı ne?


14

GID aslında ne anlama geliyor?

Google'ı aradım ve bu linux.about.com'un söylediği şey:

İşlem için grup kimlik numarası. Geçerli grup numaraları dosyanın /etc/groupGID alanında ve GID alanında verilir /etc/passwd. Bir işlem başlatıldığında, GID'si üst işleminin GID'sine ayarlanır.

  • Peki bu ne anlama geliyor?

Klasörüm için sahip olduğum izinler şu anda 0755

Sahibi için UID ayarladığımı anlıyorum 4755

Ve eğer Grubun GID'sini ayarlarsam, 2755

Yapışkan Bit'i Diğerleri için ayarlarsam, 1755

  • Bu izinleri ayarlamak bile önemli mi?

Yanıtlar:


27

Her işlem UNIX benzeri sistem sadece her dosya gibi bir sahibi (kullanıcı, gerçek veya bir sistem ya "sözde kullanıcı" gibi vardır daemon, bin, man, vs) ve bir grup sahibi. Bir kullanıcının dosyaları için grup sahibi genellikle kullanıcının birincil grubudur ve benzer şekilde başlattığınız tüm işlemler genellikle kullanıcı kimliğinize ve birincil grup kimliğinize aittir.

Bununla birlikte, bazen, bazı komutları çalıştırmak için ayrıcalıkların yükseltilmesi gerekir, ancak tam idari haklar vermek istenmez. Örneğin, passwdkomutun sisteminizin gölge parola dosyasına erişmesi gerekir, böylece parolanızı güncelleyebilir. Açıkçası, her kullanıcıya kök ayrıcalıkları vermek istemezsiniz, sadece şifrelerini sıfırlayabilmeleri için - şüphesiz kaosa yol açacaktır! Bunun yerine, belirli görevleri gerçekleştirmek için kullanıcılara geçici olarak yükseltilmiş ayrıcalıklar vermenin başka bir yolu olması gerekir. SETUID ve SETGID bitleri bunun içindir. Çekirdeğe, işaretli komutun yürütülmesi süresince kullanıcının ayrıcalıklarını geçici olarak yükseltmesini söylemenin bir yoludur. Bir SETUID ikili dosyası yürütülebilir dosya sahibinin ayrıcalıklarıyla yürütülür (genellikleroot) ve çalıştırılabilir dosyanın grup sahibinin grup ayrıcalıklarıyla bir SETGID ikili dosyası yürütülür. SETUID'e passwdait olan rootve SETUID olan komut durumunda, normal kullanıcıların, root ayrıcalıklarıyla çalışarak şifre dosyasının içeriğini kontrollü ve öngörülebilir bir şekilde doğrudan etkilemesine izin verir. Çok sayıda diğer vardır SETUIDüzerinde komutlar UNIX benzeri sistemlerde ( chsh, screen, ping, sudoğru çalışması için yükseltilmiş ayrıcalıklar gerekir hepsi, vs). SETGIDÇekirdeğin, günlük dosyalarına erişime izin vermek için işlemin GID'sini geçici olarak değiştirdiği birkaç program da vardır , vb sendmail.

Hizmet sticky bitbiraz farklı bir amaca hizmet eder. En yaygın kullanımı, yalnızca bir dosya oluşturan kullanıcı hesabının dosyayı silebilmesini sağlamaktır. /tmpDizini düşünün . Herkesin orada dosya oluşturmasına izin veren çok liberal izinlere sahiptir. Bu iyi ve kullanıcıların süreçleri (geçici dosyaları oluşturmanıza olanak sağlar screen, sshvb, tutmak durum bilgisi içinde /tmp). Bir kullanıcının geçici dosyalarını korumak için /tmp, yapışkan bit ayarlanmıştır, böylece dosyalarımı yalnızca silebilirim ve yalnızca siz silebilirsiniz. Tabii ki, kök her şeyi yapabilir, ancak sisadmin düzensiz olmadığını ummalıyız!

Normal dosyalar için (çalıştırılamayan dosyalar için) SETUID / SETGID bitlerinin ayarlanmasında çok az nokta vardır. Bazı sistemlerde dizinlerdeki SETGID, bu dizinde oluşturulan yeni dosyalar için varsayılan grup sahibini kontrol eder.


2
Ah harika, bunun için teşekkürler. Bu nedenle, Yapışkan Bit kişisel (kullanıcı) izni gibi mi? Bu cevap iyi ifade edilmiş ve anlaşılabilirdi.
Kevdog777

1
Teşekkür ederim! Yapışkan bit, liberal izinleri olan bir dizindeki dosyalar için küçük bir koruma sağlar. Belirli bir kullanıcıya gerçekten özgü değildir, çünkü sahibi kim olursa olsun, tüm dosyalara aynı düzeyde koruma sağlanır. Bu, herkesin dosya oluşturmasına izin vermenin ve yalnızca sahibin onları yok edebilmesini sağlamanın bir yoludur.
D_Bye

+1, D_bye, dizinde ayarlanan setgid biti için bir örnek paylaşabilir misiniz? Teşekkürler
Ankit

1
@Ankit Solaris altında (ve neredeyse kesinlikle diğerleri - ben sadece * BSD ve Solaris kullanıyorum), setgid bit bir dizinde ayarlanmışsa, bu dizin altında oluşturulan yeni dosyalar dizinin kendisiyle aynı grup sahibine sahip olacak ve oluşturma işleminin birincil grubunu (çalıştıran kullanıcı) devralmaz.
D_Bye

3

Sanırım GID ile aynı olmayan bir dosyanın "SGID" bitini kastediyorsunuz.

İşte bilgisayarımda tipik bir dosya (ls -l çıktısı):

-rw-r----- 1 bristol    users 16 2012-07-23 11:36 file.txt
abbbcccddd <-- See explanation below.

İlk 10 simgeye bakarsanız,

(a) -: Bu sadece düz eski bir dosyadır (bir dizinin, sembolik bağın, borunun vs. aksine) ...

(b) rw-: Dosya sahibi bu dosyayı okuyabilir ve yazabilir, ancak yürütemez. Daha sonra satırda görebileceğiniz gibi sahibi "bristol" dir.

(c) r--: Bu dosyanın ait olduğu grubun üyeleri (örnekte "kullanıcılar") dışında bu dosyayı okuyabilir, ancak yazamaz veya yürütemez.

(d) ---: Bu dosyaya hiç kimse erişemez (elbette kökü hariç).

GID alanı, bu dosyanın hangi gruba ait olduğunu söyleyen alandır - bu durumda "kullanıcılar".

Açıklamanıza dayanarak muhtemelen kastettiğiniz alan SGID bitidir ve işte gelebileceğimden daha iyi bir açıklama:

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

Kısa sürüm: yürütülebilir bir dosyanın SGID biti ayarlanmışsa, grupta olmayan ancak bu dosyayı çalıştırabilen herkes program yürütülürken bu grubun haklarını kazanır.

Örneğin, yazdırma biriktirici dizinindeki dosyaları okuyabilen ve yazabilen bir "biriktirme" grubunuz varsa, yalnızca bu diziyle uğraşmak istemezsiniz, ancak dosyaların yazdırabilmesini istersiniz. bazı yazdırma programlarının veya komut dosyalarının "biriktirme" grubu vardır ve SGID bitini ayarlar ve herkes bu programı başlattığında, program artık onu çalıştıran kişi tam erişime sahip olmadan biriktirme dizinine yazabilir.


Bu iyi, bunun için teşekkürler. İzinleri anlıyorum, (abbbcccddd bölümü) - ama teşekkür ederim :)
Kevdog777

Az önce tmp klasöründeki izinlerimi gördüm drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Ne gelmez abbbcccddt(mektup 't') demek? - Anlıyorum "d = dizin", "rwx = okuma, yazma, yürütme"; ama daha önce hiç 't' görmedim. Bu tmp klasörü için özel bir izin mi?
Kevdog777

Küçük t "yürütülebilir (x) ve yapışkan bit kümesidir". Bunun neden / tmp'de olağan olduğuna dair açıklama için yukarıya bakın.
Bristol

3

GID, bulduğunuz gibi bir grubun kimlik numarasıdır. İşletim sisteminin bir şeyle ilişkili (kullanıcı) grubunu (bir işlem, bir dosya, vb.) İfade etmesi rahat bir yöntemdir; potansiyel olarak uzun bir dize tanımlayıcısı yerine, sabit boyut numarası olarak ifade edilebilir.

Dört sekizli basamaklı dosya izinleri değerinde (örneğin, 0755), üçüncü basamak grubun dosyaya yönelik izinlerini belirtir. İlk basamağı atlarsanız, grubun izinlerini belirten ikinci basamaktır. Dosya ve dizinlerin bu bağlamda aynı şekilde ele alındığını, ancak her izin bitinin tam anlamının dizinler için biraz sezgisel olmadığını unutmayın.

İki kavram birbiriyle ilişkilidir, ancak çok farklı amaçlara hizmet eder.

Sorunuza gelince, "bu izinleri ayarlamak bile önemli mi?"; her zaman bir şeye ayarlanırlar , ancak çoğu durumda ilk basamak 0 ("özel bir şey") olmadığından kısalık için göz ardı edilir. Başka bir değer belirtmeniz gerekip gerekmediği tamamen söz konusu dosya veya dizinin kullanım şekline bağlıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.