Grup izinleri izin veriyor, ancak yine de izin verilmedi.


43

Bir ext4 bölümüm var ve tüm alt dizin gruplarının grup sahibini grubum için belirledim:

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

Kullanıcım bu grubun bir parçası. Bu bölümün içinde, kullanıcının 'hiç kimse' ve şimdi 'grubum' grubuna ait bir klasör var. Kullanıcım 'grubum'un bir parçası. İşte bir ls - l:

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

Kullanıcımın bir parçası olduğu bir gruba ait bir dosyayı silemediğimi veya oluşturamadığımı unutmayın.

Sanırım grupların nasıl çalıştığını tam olarak anlamadım. Bir grubun parçası olsaydın, o grubun izinlerini devraldığını düşünmüştüm. Yanlış bir şey mi yapıyorum?

Teşekkürler


İzinler triad'ın sahip-grup-dünya olduğunu gösteriyor. Yukarıda dizin için drwxr-sr-x'i görebilirsiniz. Yani grubun izni rs. Görünüşe göre chmod -R tekrarlı olarak izinleri rwx'e ayarlamamış. W bitini klasörün grup izni için çevirdiğimde işe yarıyor.
Kaos,

Yanıtlar:


69

Kısa bir süre önce bu kullanıcıyı, arasında oturum açmadan / girmeden o gruba eklediniz mi? Sonra "gruplar" grubu gösterecek, ancak kullanıcı henüz grup izinlerine sahip değil.

Etkili gruplarınızı kullanarak

$ id

Örnek olarak, kullanıcımı psgruba ekler faxve sonra

$ id

grubu göstermez fax, ancak

$ groups ps

gösterir fax.

suKendi kullanıcınıza yapmak size yeni grup üyeliği verir:

$ su ps
$ id

Çıktı şimdi de içeriyor fax.


1
Bu bilmek gerçekten yardımcı olur. Özellikle 'sudo <kullanıcı adı>' kısmı.
Kaos

3
giriş / çıkış o kadar açık ki, noktayı kaçırdım, çok teşekkürler dostum!
nicolallias

1
@ peschü sudoDüzenli kullanıyorum ve kullanıyorum. Size gösterdiğim hata, komutun ubuntu(kullanıcı adının) tanınmış bir komut olmadığından şikayet ediyor . Önerinizin sözdizimsel olarak doğru olduğunu düşünmüyorum - belki de sizin durumunuzda işe yarıyor çünkü psbir kullanıcı adı kadar bir komut da olabilir.
beldaz

1
@beldaz oh hayır! Haklısın! sözdizimsel olarak doğru su <username>. Gönderiyi düzenledim.
peschü

1
Lanet olası eski oturumu kapat / oturumu aç her defasında çalış.
Steampunkery

9

Kullandığınız yöntem doğru görünüyor. Şimdi kopyalamaya çalıştım ve gayet iyi çalıştı.

Yazım hatası olup olmadığından emin değilim, ancak komutla ilgili küçük bir sorun var. Orada "grubum" un belirtilmesine gerek yoktur. Aşağıdaki işler

# chmod -R g+swrx /mount/abc

Hatta, sbiraz kaldırabilirsiniz , sadece yapın g+rwx. İzinleri değiştirdikten ve yaptığınız ls -ltakdirde ilgili yetkileri göstermesi gerekir.


2
Yazım yolunu grup adıyla kaldırdım. Dizin, ls -l yaptığınızda wrx izinlerine sahiptir ve hiç kimseye ait değildir: grubum. Kullanıcım grubumun bir parçası olsa da kullanıcı kullanıcım hala dosya oluşturamıyor / silemiyor. Umarım anlamlı olur.
Kaos,

3

Dosyayı kaldıramazsınız çünkü grubun klasörde olduğu gibi mygroupdosyada test.pngda yazma izni yoktur . Yazma işlemlerinin dosya üzerinde çalışması için dosya izinleri şöyle görünmelidir:

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

Daha yakından bakarsanız izin formatına bakın

duuugggooo

İlk üç tutucuları uuukullanıcı r , EAD ağırlık ayin ve e x ecute. Sonraki üç yer tutucu ggggrup ve ooodiğerleri içindir. OP grubu tarafından yayınlanan snippet'inde eksik w ayin izni.


2

Kabul edilen cevaba eklemek için (henüz yorum yapamadığımdan beri):

Sunucunuzla SSH bağlantısı oluşturmak için BitVise gibi bir yazılım kullanıyorsanız, bir terminali kapatmanız ve yeniden açmanız giriş ve çıkış olarak sayılmaz. Bu olacak yeniden yükleme senin gibi şeyler yapmak ~/.bashrc, ama değil (eğer "login" oturumunda grubuna eklendi varsa) gerçek grup güncellemelerini gerçekleştirin. Bunun etkili olması için SSH anahtarınız / kimlik bilgilerinizle tamamen çıkış yapmanız ve tekrar giriş yapmanız gerekecektir.


2

Dizinlerin açılması için x bit ayarına (o bitin arama biti olarak göründüğü dizin için) ihtiyacı vardır. Bu yüzden ağaç kullanıyorum, böylece sadece set klasörü alıyorum ve tüm dosyaların çalıştırılabilir olarak ayarlanması kabusundan kaçınıyorum (ağaç seçeneği -d List directories only.):

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

Uyarı!!! Bunu dikkate almanız gerekenler:

  • root /dizininde veya sistem dizinlerinde chmod veya chown özyinelemeli işletim sistemi işletim sisteminizi tahrip eder (aslında /dizin veya sistem dizinlerinde özyinelemeli olan her şey tehlikelidir)

  • Bu, böyle bir izin toplu ayarlamak için iyi bir güvenlik uygulaması değil


1
Çok teşekkürler! "Dizinlerin x bit ayarına ihtiyacı var" kelimeleri sorunumu çözdü! "Sudo chmod g + x <parent dir path>" yaptım ve işe yaradı.
kinORnirvana
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.