udzielanie uprawnień do zapisu grupie do folderu


34

Jak mogę przyznać uprawnienia do zapisu 1 grupie?
Mam 2 użytkowników ( alexi ben).
alexjest członkiem grupy alexi grupy consult.
benjest członkiem grupy beni grupy consult.

Chcę przyznać dostęp do odczytu i zapisu zarówno do folderu, jak alexi bendo folderu consult_documents.

Jeśli zrobię alexwłaściciela katalogu consult_documentsi udzielenia 775dostępu do katalogu consult_documents, bena alexbędą mogli uzyskać dostęp do folderu, myślę.

Ale czy pozwoli to również na bendostęp do alexinnych folderów? Jeśli użytkownik jest w dwóch grupach, czy to oznacza, że ​​wszyscy członkowie z obu grup mają takie same uprawnienia we wszystkich folderach?


Czy chcesz, aby Alex i Ben mogli tworzyć pliki w consult_documents i zezwalać im na dostęp do odczytu i zapisu w tych dokumentach?
X Tian

Odpowiedzi:


42

Przyznanie 775 uprawnień do katalogu nie oznacza automatycznie, że wszyscy użytkownicy w określonej grupie uzyskają rwxdo niego dostęp. Muszą być właścicielem katalogu lub należeć do grupy katalogu:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

Aby więc zarówno Alex, jak i Ben mieli dostęp do zapisu some_dir, some_dirsam katalog musi należeć do consultgrupy. Jeśli tak nie jest, właściciel katalogu (alex w twoim przykładzie) powinien wydać następujące polecenie:

$ chgrp consult some_dir/

lub aby zmienić własność grupy na wszystko w katalogu:

$ chgrp -R consult some_dir/

Działa to tylko wtedy, gdy alex jest członkiem consultgrupy, co wydaje się mieć miejsce w twoim przykładzie.

To nie pozwoli ben uzyskać dostępu do wszystkich katalogów Alexa z dwóch powodów:

  1. Nie wszystkie katalogi Alexa będą należeć do consultgrupy
  2. Niektóre katalogi alex mogą należeć do consultgrupy, ale alex mógł nie zdecydować się na rwxdostęp do nich.

Krótko mówiąc, odpowiedź zależy zarówno od własności grupy, jak i od bitów uprawnień grupy ustawionych dla katalogu.

Wszystko to pod warunkiem, że nie użyjesz żadnych dodatkowych obowiązkowych środków kontroli dostępu w swoim systemie.


Consult_documents jest katalogiem, w jaki sposób możesz określić go jako grupę?
Babin Lonston

@Babinlonston Nie możesz. Ty określasz consultjako grupę.
Joseph R.

Dziękuję, szukałem sposobu na udzielenie dostępu do katalogu jednej grupie. Nie zdawałem sobie sprawy, że polecenie chgrp może to zrobić. Myślałem, że chgrp służy tylko do dodawania / usuwania użytkowników do grupy.
anatak

1
@anatak Modyfikacja członkostwa w grupie odbywa się za pośrednictwem usermodnotchgrp
Joseph R.

Czy to to samo co chown -R :consult some_dir/?
Aaron Franke

7

To sprawi, że Alex i Ben będą ze sobą współpracować w tym katalogu, i nie będą mogli współpracować w innym Dir ..

Zmodyfikuj grupę użytkowników za pomocą

# usermod -a -G alex,ben alex

Następnie zmień uprawnienia do folderu

# chown alex:ben consult_documents

Sprawdź tutaj, pracowałem nad tym

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

Spójrz tutaj


6

Jeśli dobrze zrozumiałem twoje pytanie, odpowiedź brzmi tak.

Pozwól mi wyjaśnić:

Twoje prawa dostępu do folderów i plików są podzielone na trzy strategie:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

Każdy plik i folder musi być własnością użytkownika.

Co oznacza, że ​​jeśli masz folder o nazwie consult_documents i chcesz, aby był dostępny dla wszystkich członków grupy Consult, będziesz mieć to (z 755 prawami dostępu):

drwxrwxr-x Alex Consult [......]

Katalog jest własnością Alexa, a grupa to Consult. Alex ma na nim prawa dostępu do RWX. Group Consult ma na nim prawa dostępu RWX. Inni użytkownicy mają prawa RX.

Ponieważ użytkownik Alex ma kilka grup, możesz wybrać grupę, z którą chcesz się dzielić.

Na przykład jeśli twój folder jest własnością Alexa z grupy Alex:

drwxrwxr-x Alex Alex [......]

Zrób to:

chown Alex:Consult your_folder

Stanie się:

drwxrwxr-x Alex Consult [......]

A potem katalog jest dostępny dla grupy Consult.

Pamiętaj, że o ile wiem, możesz dodać grupę, która nie należy do grupy właściciela. Ale nie jestem pewien, czy jest to zalecane (niejasne podczas czytania praw dostępu).


3

setfacl -mg: debian-transmisja: rwx -R / mnt / sra

Znalazłem to polecenie, zamiast chown , który całkowicie zmieni właściciela pliku lub katalogu!

Zobaczysz na ls -Al, że znak + zostanie dodany, aby pokazać, że istnieje więcej niż jeden właściciel!

drwxr-xr-x 2 root root 4096 8 listopada 19:11 sdc1 /

drwxrwxr-x + 3 root root 4096 17 lutego 19:16 sra /

A potem możesz użyć getfacl, aby zobaczyć, kto może pisać lub czytać plik lub katalog!

# plik: sra

# owner: root

# group: root user :: rwx

grupa :: rx

grupa: debian-transmisja: rwx

maska ​​:: rwx

inne :: rx

domyślnie: user :: rwx

domyślnie: group :: rx

domyślnie: grupa: debian-transmisja: rwx

domyślnie: mask :: rwx

domyślnie: other :: rx

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.