Jak skonfigurować folder, aby wszystko, co w nim utworzone, odziedziczyło uprawnienia?


18

Mam folder / data (właściwie partycję) dla wszystkich danych, które powinny być dostępne dla wszystkich użytkowników (w tym przypadku członków rodziny). Wszyscy mamy indywidualne konta użytkowników i często wszyscy jesteśmy zalogowani w dowolnym momencie na tym samym komputerze.

Jak skonfigurować uprawnienia, abyśmy wszyscy mieli dostęp do plików tam, bez względu na to, kto je tworzy, w tym nowe foldery? Jeśli utworzę folder, otrzymuje on mojego użytkownika i grupę, więc nikt inny nie może do niego pisać.


dla odwiedzających. Jeśli chcesz tylko odziedziczyć nazwę grupy chmod -R g+s /parentdir. Uwaga: chmod -R w razie potrzeby uruchom wcześniej
Thamme Gowda

1
Uwaga na powyższe: -Rflaga do chmodjest bardzo rzadko przydatna, ponieważ rzadko chcemy katalogów (które zawsze wymagają uprawnień do wykonywania) i zwykłych plików (które rzadko wymagają uprawnień do wykonywania), aby miały takie same uprawnienia
Zanna

Odpowiedzi:


17

Innym podejściem jest użycie list kontroli dostępu, nadzbiór uprawnień do plików.

Przede wszystkim musimy zainstalować pakiet acl Zainstaluj acl :

sudo apt-get install acl

Przed Ubuntu 14.04 partycja musi być zamontowana z opcją, aclaby następujące działały. Można go dodać /etc/fstab, jak w

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

lub dla już zamontowanego systemu plików

sudo mount -o remount,acl /media/shared

Następnie należy utworzyć nową grupę, do której zostaną dodani wszyscy użytkownicy mający dostęp do udziału w trybie odczytu / zapisu. Nazywam to usershare. Można użyć już istniejącej grupy.

sudo addgroup usershare

Teraz dodajemy użytkowników enzotibi steevcdo tej grupy:

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(obowiązuje przy następnym logowaniu).

Następnie dodajemy listę ACL z rwxuprawnieniami dla grupy usersharedo wszystkich plików już w niej zawartych/media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

Na koniec dodajemy domyślną listę ACL z rwxuprawnieniami dla grupy usersharedla wszystkich plików utworzonych od teraz w środku/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

Teraz wszyscy użytkownicy usersharegrupy mają pełne uprawnienia do wszystkich plików w obszarze /media/shared. Nie ma to wpływu na uprawnienia każdego użytkownika w jego katalogach domowych.

Testowałem to rozwiązanie i wydaje się, że działa, ale sugestie i poprawki są mile widziane.

Uwaga : nowe pliki i katalogi utworzone w rozważanym katalogu będą miały uprawnienia do zapisu dla usersharegrupy, ale pliki skopiowane lub przeniesione do folderu zachowają swoje pierwotne uprawnienia. Jeśli użytkownik, jak rozumiem, wymaga tylko dostępu do zapisu do nowo utworzonych katalogów, nie stanowi to problemu. W przeciwnym razie powinien ręcznie zmodyfikować uprawnienia. Zobacz tę odpowiedź na temat tego, jak to rozwiązać, definiując umask użytkowników 002.


Nie znam dobrze acl, czy możesz przetestować i skopiować plik z uprawnieniami, takimi jak rw-r - r-- z folderu domowego do folderu współdzielonego i sprawdzić, czy uprawnienia zmienią się na domyślne rwx dla usersharegrupy?
umów się

@arrange: nie, to nie działa zgodnie z przeznaczeniem. Wskażę w odpowiedzi. Dziękuję
enzotib,

Dodałbym, że krok /etc/fstab/ remountnie jest wymagany, ponieważ ext4powinien być montowany z aclopcją aktywną domyślnie.
enzotib,

8
  1. Utwórz folder.

    Na przykład:

    mkdir /mnt/family
    

    Jeśli potrzebujesz zamontować do nich partycję ... jeśli ext4 wszystko czego potrzebujesz /etc/fstabto

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Utwórz grupę myfam.

    addgroup myfam
    
  3. Dodaj niektórych użytkowników do tej grupy

    adduser papa myfam  
    adduser mom myfam
    
  4. Teraz weź i daj pozwolenie.

    Myślę, że powinieneś zacząć od zmiany umask.

    Domyślne uprawnienia systemu plików i prawa dostępu w 12.04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Teraz najważniejsze. Ta linia tworzy setgidwszystko, co utworzysz w tym folderze, z użytkownikami jako właścicielem i grupą myfam. Pozwala to systemowi zastąpić grupę podstawową użytkownika.

    chmod -R g+s /mnt/family   
    

3

Najprostszą rzeczą, jaka przychodzi na myśl, jest dodanie każdego użytkownika do grupy wszystkich innych użytkowników.

Następnie zmień umask każdego użytkownika z 022 na 002, można to zrobić w /etc/profile.

Edytować

Pierwszy krok można zastąpić następującym: spraw, aby wszyscy użytkownicy należeli do usersgrupy jako grupy podstawowej.

Edi2

Jak sugerował @James_Henstridge, wygodne może być ustawienie bitu setgid w katalogu głównym, aby nowe utworzone pliki i katalogi miały tę samą grupę, niezależnie od użytkownika. W ten sposób można uniknąć zestawu usersjako podstawowej grupy dla użytkowników.


Możesz zredagować swoją odpowiedź, aby zasugerować także ustawienie bitu setgid we wszystkich katalogach /data, aby nowe pliki dziedziczyły własność grupy.
James Henstridge

edit3 :) Jeśli skopiujesz plik do /datafolderu, uprawnienia nie zostaną odziedziczone, więc stare pliki z uprawnieniami gw nie będą modyfikowane przez innych. edit4: ustawienie usersjako podstawowej grupy i umask0002 zdecydowanie nie jest dobrym pomysłem, ponieważ każdy z tej grupy będzie mógł zmodyfikować dowolny z nowo utworzonych plików.
umów się

@arrange: odnośnie twojej edycji4, zasugerowałem, aby umieścić w usersgrupie tylko użytkowników, którzy mogą mieć dostęp rw do udziału. Było to dla wygody, mogło też stworzyć do tego kolejną grupę. Jeśli chodzi o edycję3, to nie jest poprawny, skopiowany plik pozyskuje grupę folderów.
enzotib

@enzotib: aby powtórzyć mój punkt innymi słowy: edit4 - jeśli usersjest to moja podstawowa grupa i jest w niej więcej użytkowników, to mogą oni modyfikować moje pliki nawet poza udostępnionym katalogiem; edit3 - Napisałem uprawnienia , NIE grupa folderów.
umówić

@arrange: masz rację, właśnie napisałem inną odpowiedź, może być interesujące usłyszeć twoją opinię.
enzotib

2

To brzmi jak zadanie dla list ACL. Giles ma bardzo dokładną odpowiedź na stronie SE Unix i Linux, która pomogła mi rozwiązać ten sam problem.


1
To się udało! Widziałem inne odpowiedzi przy użyciu ACL, ale jest to jedyna, którą widziałem, która zmienia uprawnienia nie tylko nowych plików i katalogów utworzonych we współdzielonym katalogu, ale także uprawnień tych skopiowanych lub przeniesionych do niego.
ダ ン ボ ー

0

Nie rozumiem, czy wszystkie Linux-Linux, Linux-Windows, Linux - ???, używając Samby ?, SSH ?, Gołębie ?; w każdym razie musisz dołączyć innych do grupy za pomocą swojej nazwy użytkownika (swojej grupy), a oni uzyskają takie same uprawnienia jak ty.


Jest to wielu użytkowników na jednym komputerze. Jestem pewien, że musi istnieć sposób na uzyskanie domyślnych uprawnień do czegoś przydatnego.
steevc

0

Natknąłem się na to pytanie, szukając odpowiedzi na mój problem ZEZWOLENIA GRUPOWEGO. Przeczytałem pytanie i wygląda na to, że już wdrażam to, co pytanie próbuje osiągnąć.

Więc starałem się odpowiedzieć.

Mam już skonfigurowany udział dla wszystkich użytkowników w mojej sieci z funkcją tylko do odczytu i wykonywania, a tylko moje konto ma uprawnienia do pisania w folderach udostępnionych.

Mam serwer wielofunkcyjny w mojej sieci, który używa Ubuntu 12.04 LTS Desktop Edition. Mam mix maszyn klienckich z systemem Linux i Windows.

Oto jak to skonfigurowałem:

1. Na moim serwerze mam konta użytkowników o nazwach adminiclientone

adminKonto to konto utworzone po zainstalowaniu ubuntu i clientonekonto to konto utworzone przy użyciu menu USER rachunki w ubuntu. Ma tylko standardowe uprawnienia, nie ma uprawnień administratora i jest dodawany do usersgrupy. Możesz to oczywiście zrobić tylko przy użyciu terminala. Dodaj więcej dodatkowych kont użytkowników dla komputerów klienckich.

2. Współużytkowana partycja / folder jest automatycznie montowana w fstab przy użyciu tylko opcji domyślnej.

3.Moja sieć jest w środowisku grupy roboczej i jest w grupie mylanroboczej.

Wszystkie maszyny w mojej sieci są skonfigurowane do korzystania z mylangrupy roboczej.

4. Mój folder współdzielony o nazwie sharedjuż zawiera pliki. Dlatego zmieniam właściciela i grupę rekurencyjnie za pomocą poniższego polecenia.

 sudo chown -Rv admin:users /shared

5.Ustawiam również /sharedrekursywnie uprawnienia do folderów i plików do folderu za pomocą polecenia

 sudo chmod -Rv 750 /shared

komputery-goście w mojej mylangrupie roboczej nie mają dostępu do udziału za pomocą chmod 750

możesz użyć

 sudo chmod -Rv 755 /shared

Wszystkie przyszłe konta użytkowników w usersgrupie mają tylko uprawnienia do odczytu.

6. Na moim komputerze klienta (Windows XP) skonfigurowałem konto użytkownika o nazwie clientone. Ta sama nazwa użytkownika i hasło jak w przypadku tego utworzonego na moim serwerze Ubuntu. Drugie nazwane konto clienttwojest również tworzone na serwerze Ubuntu i jest to to samo konto użytkownika, które było używane na mojej drugiej maszynie (linuxmint 15).

7. Na moim komputerze klienckim po zalogowaniu przy użyciu clientonekonta, idę uruchomić polecenie, a następnie wprowadzić

 //192.168.10.254/shared

192.168.10.254to adres IP mojego serwera ubuntu, /sharedto folder współdzielony z moim serwerem ubuntu Na moim komputerze klienckim dwa (linuxmint 15), idę do Menu> Sieć i na pasku dialogowym Lokalizacja: Wpisałem:

 smb://192.168.10.254/shared

Jeśli pojawi się monit o hasło, wprowadź hasło użytkownika. A także hasło do kluczy, jeśli KEYRING jest włączony w twoich maszynach z systemem Linux.

Ten działa dla mnie w mojej własnej konfiguracji sieci. Mój serwer jest serwerem wielofunkcyjnym służącym jako serwer kałamarnicy, serwer xbmc i serwer mediatomb oraz serwer amahi.

Nadal szukam sposobów na ulepszenie części udostępniania plików w mojej konfiguracji. Powyższa instrukcja nie jest rozwiązaniem kuloodpornym, kup, możesz wypróbować. Testuję i próbuję ACL ”wraz z automatycznym montowaniem folderów współdzielonych. Ponieważ wymagania dotyczące udostępniania folderów stają się skomplikowane, powyższa instrukcja nie gwarantuje sukcesu.

Dodano informacje:

Mam serwer Amahi zainstalowany na moim serwerze, użyłem go również do tworzenia kont użytkowników, które chciałem mieć dostęp do folderów współdzielonych. Użyłem go również do tworzenia nowych udziałów folderów.

Aby uzyskać bardziej złożone uprawnienia dla różnych użytkowników, należy wybrać ACL.


0

Mam pliki wideo na swoje imię, ale kiedy loguję się przy użyciu nazwy mojej córki, jej konto nie widzi plików wideo. Tak więc poszedłem do kont użytkowników, odblokowałem (u góry po prawej), a następnie zmieniłem typ konta z „standardowego” na „administratora” (którym jest moje konto), a teraz wszystkie pliki wideo, a właściwie wszystko, pokazuje się po zalogowaniu się na swoim koncie.

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.