Grupuj w ramach uprawnień do plików grupowych

13

Próbowałem znaleźć to tutaj, ale nie mogłem żałować, jeśli jest to duplikat.

Powiedzmy, że mam 2 grupy i użytkownika: grupa 1, grupa 2, użytkownik 1 o następującej strukturze: grupa 1 jest członkiem grupy 2, użytkownik 1 jest członkiem grupy 1

Teraz powiedz, że mam następujące pliki z odpowiednimi uprawnieniami

file1 root:group1 660
file2 root:group2 660

Teraz, gdy loguję się do użytkownika 1, mogę edytować plik 1, ale nie mogę edytować pliku 2. Czy oprócz dodania użytkownika 1 do grupy 2 jest jakiś sposób na to? czy nie ma mowy?

Używam Ubuntu btw.

Aram Papazian
źródło
Jeśli się nie mylę, klasyczne uprawnienia oparte na grupach w systemie Linux nie pozwalają na umieszczenie grupy w innej grupie. Czy zainstalowałeś coś, co umożliwia tę funkcję?
Gunther Struyf,
Użytkownik może być członkiem kilku grup. Jeśli dodasz użytkownika 1 do grupy 2, będzie on mógł zmienić plik 2. Polecenie do wyboru będzie dodane przez użytkownika.
user1146332,
@GuntherStruyf Nic nie zmieniłem ... Z tego, co mogłem powiedzieć, Ubuntu domyślnie zezwala na to ...
Aram Papazian
@ user1146332 Chodzi o to, aby nie dodawać użytkownika 1 do grupy 2. Jeśli to jedyny sposób, to mogę to zrobić, ale teoretycznie wolę strukturę grupowania grup ...
Aram Papazian

Odpowiedzi:

15

Nie ma czegoś takiego jak grupa będąca członkiem grupy. Grupa z definicji ma zestaw członków. Nigdy nie słyszałem o funkcji, która pozwoliłaby ci określić „podgrupy”, w których członkowie podgrup automatycznie otrzymują członkostwo w supergrupie podczas logowania. Jeśli /etc/grouplista group1jest członkiem group2, oznacza użytkownika, do którego dzwoni group1(jeśli taki użytkownik istnieje, co jest możliwe: nazwy użytkowników i nazwy grup znajdują się w różnych przestrzeniach nazw).

Jeśli chcesz, aby użytkownik1 miał dostęp do pliku2, masz kilka rozwiązań:

  • Udostępnij file2świat (prawdopodobnie tego nie chcesz)
  • Ustaw użytkownika user1 w pliku file2: chown user1 file2
  • Dodaj użytkownika 1 do grupy 2: adduser user1 group2
  • Dodaj listę ACL, file2która zapewnia dostęp do użytkownika 1 lub grupy`:

    setfacl -m user:user1:rw file2
    setfacl -m group:group1:rw file2
    

    Zobacz Udostępnianie wszystkich nowych plików w katalogu dla grupy po włączeniu list ACL.

Gilles „SO- przestań być zły”
źródło
7
Tak, unix / linux nie obsługuje grup zagnieżdżonych. Byłoby użyteczne, gdyby tak było, ale po prostu nie. Windows tak, a Active Directory. LDAP też, więc powinno być możliwe, jeśli dane konta i grupy znajdują się w LDAP, a nie w plikach / etc / passwd i / etc / group ... ale to przesada, gdy istnieją proste rozwiązania, takie jak ACL (lub po prostu dodać użytkownika do obu grup)
cas