Sahip olduğum bir dosyanın gidini (grubunu) değiştirme izni reddedildi


17

Görünüşe göre izinlerin nasıl çalıştığı hakkında bazı şeyler özlüyorum. Ben debian 7 sistemi btw. şimdi indirdiğim ve ait olduğu bu dosya var myuser:myuser, bu hem kullanıcı hem de grup bana ayarlandı. Ayrıca $HOME, indirdiğim yer olduğu için dizinimde bulunur .

Çok uzak çok iyi. Şimdi bu dosyayı pc diğer bazı kullanıcılarla paylaşmak istiyorum ve bunun için grubun "kullanıcılar" grubun sahipliğini değiştirmek istiyorum. ancak bu başarısız olur:

nass@quarx:~/xmas_carol$ chgrp -R users * 
chgrp: changing group of movie.mov': Operation not permitted

Ve klasörün içeriği:

-rwxr-xr-x 1 nass nass 2482411461 Feb  6 03:57 movie.mov

İzinlerde neler olduğuna dair bulanıkım. Birisi açıklayabilir mi


olduğu /xmas_carolsamba / nfs monte?
Rahul Patil

Çözüm setfacl(dosya sisteminde ACL'ler varsa). bkz. unix.stackexchange.com/questions/101263/…
ctrl-alt-delor

Kendimi bu gruba SADECE EKLEDİĞİMİ fark edene kadar aynı hatayla karşılaştım. Başka bir deyişle, değişikliklerin etkili olması için oturumu kapatıp tekrar oturum açmak zorunda kaldım.
Jonathan

Yanıtlar:


22

Kullanıcınız muhtemelen usersgrubun bir üyesi değildir , bu nedenle o gruba dosya verme hakkınız yoktur. Örneklemek gerekirse:

$ groups
terdon sudo netdev fuse vboxsf vboxusers

$ ls -l file
-rw-r--r-- 1 terdon terdon 604 Feb  6 03:04 file
$ chgrp users file
chgrp: changing group of ‘file’: Operation not permitted
$ chgrp vboxusers file
$ ls -l file
-rw-r--r-- 1 terdon vboxusers 604 Feb  6 03:04 file

Bu davranış POSIX teknik özelliklerinde belirtilmiştir :

Yalnızca bir dosyanın sahibi veya uygun yetkilere sahip kullanıcı bir dosyanın sahibini veya grubunu değiştirebilir.

Bazı uygulamalar, belirtilen grup etkin grup kimliği veya çağrı sürecinin tamamlayıcı grup kimliklerinden biri olmadığında, chgrp'nin uygun ayrıcalıklara sahip bir kullanıcıyla kullanımını kısıtlar.

Bunun ana nedeni, bir grubun üyesi değilseniz, grubun neye erişebileceğini değiştirememenizdir. İzinlerle ilgili bu cevapchown da önemlidir.

Geleneksel olarak, paylaşılan sistemlerde, userstüm normal kullanıcıların ait olduğu ve her kullanıcının birincil grubu olan bir grubunuz vardır. Bu şekilde, dosyalar usersgruba ait oluşturulur ve tüm kullanıcılar bunları okuyabilir.

Her neyse, bu günlerde Debian tabanlı dağıtımların oluşturulma şekli bu olmadığından, belirli bir kullanıcıya dosyanıza erişim vermenin yolu

  1. Dosya / dizinin grup sahipliğini hem sizin hem de diğer kullanıcının üyesi olduğu bir grupla değiştirin;

  2. Sadece dosyanın / dizinin izinlerini uygun şekilde değiştirin:

    $ chmod 755 /home/terdon
    $ ls -ld /home/terdon
    drwxr-xr-x 170 terdon terdon 491520 Apr 20 13:43 /home/terdon/
    

    Bu, dizinin herkes tarafından erişilebilir olmasını sağlayacaktır.


4

Son UNIC'lerde (ve "son" burada oldukça geniş bir anlama sahiptir), dosyaların grup sahipliğini üyesi olmadığınız bir gruba değiştiremezsiniz. Sizinki gibi kullanım durumları için farklı UNIX lezzetlerinin eski sürümleri bunu destekledi, ancak bir güvenlik sorunu olduğu kanıtlandı.

Grup sahipliğini yabancı gruplara değiştirebilme sorunu oldukça önemsiz bir sorundur: Dosyanın bulunduğu dosya sisteminde grup kotaları etkinleştirilmişse, kötü niyetli bir kullanıcı yabancı grubun kotasını doldurarak kullanıcılar için imkansız hale gelebilir başka grup oluşturmak için birincil grup kimliği olarak bu gruba ekleyin. Bu, zaten çalışan işlemleri bile kolayca etkileyebilir ve "tam disk" nedeniyle ölmelerine neden olabilir.

Sorununuzu atlatmak için (en azından) iki olasılık vardır: Birincisi, sisteminizin süper kullanıcıdan, hedeflenen grubu hesabınızın ek gruplar listesine eklemesini isteyebilirsiniz. Elbette bu, aksi takdirde bu grupla bir bağlantınız yoksa sınırlı bir anlam ifade eder.

Dosyayı dünya çapında yazılabilir hale getirmeye gerek kalmamasının diğer bir yolu, kesinlikle istenmeyen, istenen gruba okuma ve yazma izinleri vermek için ACL'leri kullanmaktır:

$ setfacl -m group:thegroupsname:rwx the_file(s)

yürütme (normal bir dosyada) vermek zorunda değilsiniz ve muhtemelen yazma izni vermek istemezsiniz.
ctrl-alt-delor

2

Değişmez bit ayarlanmış olabilir. Çalışan dosya özniteliklerinin listesini alın

lsattr /path/to/your/file

eğer i görünür, daha sonra değişmez nitelik ayarlanır ve kimse dosyası (hatta kök) değiştirebilirsiniz.

Özelliği kaldırmak için root olarak çalıştırmalısınız

chattr -i /path/to/your/file

Daha fazla dosya sistemi özelliği görmek için kılavuz sayfalarını okuyun

man chattr
man lsattr

İyi bir nokta, ama sorudan, soru soran, değişmez bayrağı temizlemeniz gereken süper kullanıcı haklarına sahip olmadığını düşünüyorum (en azından bu kadar uzun süredir kullandığım tüm dosya sistemlerinde). Ayrıca, bir arşivi yeni çıkardığı için, kullanılan arşivleyicinin ayarlaması gerektiğinden büyük olasılıkla sorun değil (aynı sorun).
Andreas Wiese

0

Kendinizi gruba şimdi eklediyseniz, değişikliklerin geçerli olduğundan emin olmak için oturumu kapattığınızdan emin olun.

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.