Şu anda kullanıcı olarak oturum açmışsam, "gruplardan" çıktı "grup kullanıcısından" neden farklı?


21

Aşağıdaki farklı çıktı neden emin değilim. Anladığım kadarıyla, bir kullanıcı belirtmeden grupların, şu anda oturum açmış olan kullanıcının üyesi olduğu tüm gruplara verdikleri anlaşılır.

jacob@box:~$ groups
jacob adm lp dialout cdrom plugdev lpadmin sambashare

jacob@box:~$ groups jacob
jacob : jacob

Ayrıca "şu anki sürecin grupları" ne demektir (gruplar man sayfasından)? Nerede kurulurlar?

NOT: Dağıtımım Ubuntu.


@Jake Oturumu kapatıp tekrar deneyin.

1
Bu sorunu tersine çeviriyorum. 'gruplar adı' bana / etc / groups dosyasındaki tüm grupları verir, ancak sadece 'gruplar' yapmak bana yalnızca birincil grubumu gösterir. Ve aslında, belirli bir tamamlayıcı grupta olmamı gerektiren komutlar, izinlerin olmaması nedeniyle başarısız oluyor. Elbette buna neyin sebep olduğunu bilseydim.
Todd Walton

Yanıtlar:


11

Aşağıdakilerden biri olabilir:

  • Bir hata olabilir (şüphem olsa da)
  • Oturumu kapatıp tekrar giriş yapmanız gerekebilir

Gruplar /etc/group.


8

Her sürecin güncel bir gerçek ve etkili kullanıcı kimliği ve gerçek ve etkili bir grup kimliği olduğu gibi , ek grupların bir listesi de vardır . Bunlar , çekirdek tarafından tutulan sayılardır (isimler değil). Oturum açtığınızda, tıpkı kullanıcı kimliğiniz gibi, oturum açma işlemi (veya ekran yöneticisi) tarafından ayarlanır. Tıpkı kullanıcı kimliğiniz gibi alt süreçler tarafından miras alınır.

groupsHiçbir bağımsız değişken olmadan çalıştırdığınızda , sonuçta çekirdekten ek grup listesi almak için getgroups () işlevini çağırır . (Linux sistemimde, / usr / bin / groups "id -Gn" çalıştıran bir kabuk betiğidir ve getgroups () işlevini çağırır.)

Çalıştırdığınızda groups username, komut, kullanıcı oturum açtığında ek grupların ne olacağını "tahmin etmelidir". Bunu genellikle / etc / group okuyarak veya NIS ile konuşarak veya nscd veya ... ile konuşarak yapar. birçok şekilde çalışabilir.

Gözlemlediğiniz, geçerli gerçek kullanıcı kimliğinizin ve / etc / passwd içindeki girişinizin tutarsız olduğunu keşfetmeye benzer. Bu, sisteminizin yapılandırması hakkında biraz garip bir şey olduğu anlamına gelir, ancak daha fazla araştırma yapmadan ne olduğunu söylemek zor.


3

(Not: groupsKomut, yine de kullanışlı olmasına rağmen, çoğunlukla id komutu ile değiştirilir .)

Bir kullanıcının, /etc/passwdoturum açtığı dosya dosyasında geleneksel olarak tanımlanan bir birincil grubu vardır , ancak bugün başka kaynaklara sahip olabilir. Ayrıca, geleneksel olarak dosyada belirtilen /etc/groups, ancak bugün ek kaynaklardan (NIS, LDAP, SAMBA vb.) Da gelebilecek veya ima edilebilecek ikincil veya tamamlayıcı gruplar olarak bilinen ek grupların bir üyesi olabilir.

Birincil ve tamamlayıcı gruplar giriş sırasında tanımlanır ve güncel kalır . Ancak kullanıcı , komutunu kullanarak istediği zaman geçerli etkin birincil grubunu değiştirebilir newgrp.

Oturum açma işlemi birincil ve tamamlayıcı grupları belirler. Daha sonra, genellikle , ek grup verileri listesini derleyen ve bunu işlem bağlamında kuran setgroups işlevine ileten libc işlevi initgroups'i çağırır .

İçin bilgi kaynakları initgroups:

GNU C Kütüphanesi ve diğer bazı uygulamalar tarafından, bir dizi kategoride ve hangi sırayla ad hizmeti bilgilerinin alınacağı kaynakları belirlemek için kullanılır. Her bilgi kategorisi bir veritabanı adıyla tanımlanır.

groupsKomut gösterdiği gibi gruplar şu anda uygulanan sizin kullanıcıya ve liste ile başlayacak şu andaki birincil grubun giriş anından itibaren ilave gruplar tarafından takip etti. Giriş yaptıktan sonra verilerin kaynaklarında yapılan değişiklikler görüntülenen listeye yansıtılmaz.

groups usernameKomut için Linux soruyor hesaplamak prensipte dosyalarını kullanarak yapacak o kullanıcı için grupların /etc/password ve /etc/groupsdaha sonra ek kaynakları ve. Bu, sistem dosyalarının mevcut durumunu yansıtır ve oturum açma anından itibaren halen geçerli olan geçerli gruplara eşit olmayabilir .

groups usernameO Giriş işlemi görünüşte sizin durumunuzda ne oldu edilir sizin ek gruplarını hesaplamak için kullanılan tüm kaynakları kullanmaz zaman komut farklı bir sonuç verebilir. Bu kaynaklara giriş bilgilerinizden erişilemeyebilir ya da sadece komut tarafından danışılmayabilir.

Kullanımı id usernameda giriş sürecinin bu kadar tam olarak olması garanti olmasa da komutu, daha iyi sonuçlar verebilir. idKomut daha yeni ve eski, daha hassas olması amaçlanmıştır edildi groupskomuta.

İken groupskomut kesin ve doğru sonucu verir, iyi gösterdik groups usernamekomutu aynı şeyi bağlıydı edilemez.

groupsKomutun kaynak kodunu incelemeden, groups usernameLinux dağıtım analizlerinizde komutun uygulanmasının, /etc/groupssizin durumunuzda hiçbir şey içermeyen, ancak kullanmayan /etc/nsswitch.conf, tüm ek gruplarınızın geldiğini tahmin ediyorum . Bu nedenle, yalnızca birincil grup adı listelenir jacob.

Daha fazla bilgi için bakınız:

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.