Belirli bir grubun gidonunu değiştir


34

Belirli bir grubun grup kimliğini değiştirmek istiyorum. Bir dosyanın veya dizinlerin gidini değiştirmek için bir çözüm olabilir. Ama istediğim bu değil. Bunu yapmanın bir yolu var mı?

Yanıtlar:


42

GID, grubun birincil tanımlayıcısıdır. Sistem söz konusu olduğunda, farklı bir GID farklı bir gruptur. Yani GID’i değiştirmek için, GID’in kullanıldığı tüm yerleri değiştirmeniz gerekecektir.

GID’i anlamlı olarak değerlendirmekten kaçınmalı ve bunun yerine grup adlarını kullanmalısınız; Bir grubun adını tek bir komutla değiştirebilirsiniz (Linux'ta:) groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME.

Bununla birlikte, GID'yi gerçekten değiştirmek istiyorsanız, işte böyle:

  • İlk olarak, gruptaki kullanıcıların oturumunu kapatmanız ve bu gruba sahip olanları etkin, gerçek veya kaydedilmiş grup olarak işlemden geçirmeniz gerekebilir.
  • Grup veritabanındaki girişi değiştirin. Linux'ta çalıştırın groupmod -g NEWGID GROUPNAME. Diğer sistemlerde, o sistemin yönetim aracını kullanın veya vigrvarsa veya uygun şekilde düzenleyin /etc/group.
  • Sisteminizde bulunan ve eski gruba ait olan tüm dosyaların grubunu değiştirin.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp, suid ve sgid bayraklarını temizler, bunları geri yükler.

  • Eski GID'yi kullanan herhangi bir arşiviniz varsa, yeniden oluşturun.
  • Eski GID'ye başvuran herhangi bir yapılandırma dosyanız veya komut dosyanız varsa, güncelleyin.
  • Yeni GID'yi kullanması gereken tüm işlemleri yeniden başlatın.

2
Kullanarak öner chgrp -h ...yerine chgrp .... Olmadan -h, ilgili herhangi bir sembolik bağın hedefi , grubunu değiştirecek.
Mark Plotnick

3
groupmodalmak benim için ana argüman olarak bir isimdir ...groupmod -g NEWGID GROUPNAME
Matt

29

En kolay yol kullanmak groupmod -g <NEW_GID> <groupname>

Başka bir yol /etc/groupdoğrudan düzenlemektir . Her sütundaki üçüncü alan gid'dir.

Değiştirilen grup bir kullanıcının ana grubu ise, /etc/passwdçok uyarlanması gerekmektedir: usermod -g <NEW_GID> <username>.


Bu aynı zamanda dosyaların silinmesini de etkiler mi? Yani, dosya gidonu ve grup gidonu aynı anda değişecek mi?
mibzer

1
Hayır. Bu sadece grubun kimliğini değiştirir. Dosyalar / Dizinler kendi adlarını değiştirmemiş halde tutar ve ayrı ayrı değiştirilmeleri gerekir.
jofel

Tamam teşekkürler. Bu yüzden onların (gidelim) dosyalarını yeni gide çevirmek istersem, başka bir komut çalıştırmam gerekiyor. Bu doğru mu ? Hem froup dosyasının gidini hem de ilgili dosyaların gidini aynı anda değiştirmenin bir yolu varsa daha iyi olurdu.
mibzer

Cevabımı diğer komutu ekledim. / Etc / group içinde olmayan geçici bir gid kullanılması sorun değil. Gruptaki her kullanıcı yeni gidonun olması için yeniden giriş yapmalıdır.
jofel

0

find / path -group foo -print0 | xargs -0 chgrp bar


Dediğim gibi bu dosyaların gideceğini değiştirecek. Ama demek istediğim bu değil. Bir grubun gidonunu dosya değil değiştirmek istiyorum.
mibzer

Tamam, kafam karıştı, sonra 'vi / etc / group' :) :)
jirib
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.