Jak ustawić domyślne uprawnienia do plików dla wszystkich folderów / plików w katalogu?

254

Chcę ustawić folder tak, aby wszystko, co w nim utworzone (katalogi, pliki) odziedziczyło domyślne uprawnienia i grupę.

Nazwijmy grupę „media”. Ponadto foldery / pliki utworzone w katalogu powinny mieć automatycznie g + rw.

Chris
źródło
1
Czy to nie jest kontrolowane przez użytkownika tworzącego nowy plik / folder i jego umask?
Wadih M.
umask odnosi się do uprawnień, ale nie sądzę, aby miało to jakiś wpływ na ustawienie domyślnej grupy, która nie jest użytkownikiem.
Chris
1
Jaki system operacyjny Potrzebne tagi. setfacla domyślne listy ACL nie istnieją w systemie AIX.
Amit Naidu

Odpowiedzi:

269

Znalazłem: stosowanie domyślnych uprawnień

Z artykułu:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

Następnie możemy zweryfikować:

getfacl /<directory>

Wynik:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Chris
źródło
5
Tak, lepka odrobina!
Gabe.
22
Nie myl gid z lepkim bitem.
Amit Naidu
10
G + s zapewni, że nowa zawartość w katalogu odziedziczy własność grupy. setfacl zmienia tylko chmod, w twoim przypadku ustawia pozwolenie na o = rx
Steen Schütt
10
Należy pamiętać, że ACL musi być włączona (dołączona jako jedna z opcji montowania podłączonego systemu plików), aby uprawnienia do plików mogły być dziedziczone.
sg23
11
Możesz zamiast tego rozważyć użycie „X”, aby ustawić uprawnienia do wykonywania tylko dla katalogów, a nie plikówsetfacl -d -m g::rwX /<directory>
Adrian Gunawan
27

Jest to dodatek do odpowiedzi Chrisa, oparty na moim doświadczeniu na moim sprzęcie Arch Linux.

Użycie domyślnego przełącznika (-d) i modyfikatora (-m) zmodyfikuje tylko domyślne uprawnienia, ale pozostawi istniejące bez zmian:

setfacl -d -m g::rwx /<directory>

Jeśli chcesz zmienić całą strukturę uprawnień folderu, w tym istniejące (musisz zrobić dodatkową linię i sprawić, by była rekurencyjna -R:

setfacl -R -m g::rwx /<directory>

na przykład.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( CREDIT do markdwite w komentarzach do synthax do unieważnienia wszystkich przywilejów linii)

thebunnyrules
źródło
2
Aby odwołać uprawnienia grupy (jako przykład): sudo setfacl -d -mg :: --- / path
markdwhite
1
czy to tylko literówka określająca setfacl -R -m g::rwx /<directory>dwukrotnie twoją odpowiedź?
Shane Rowatt,
0

Dodaj siebie / zalogowanego użytkownika do grupy www-data, abyśmy mogli pracować z plikami utworzonymi przez serwer www-data

sudo usermod -a -G www-data $USER

Konieczne jest ponowne uruchomienie / ponowne zalogowanie, aby nowo dodana grupa zaczęła obowiązywać

cd /var/www

Dodaj dane www jako członka grupy folderu HTML, a użytkownika jako właściciela, więc jesteśmy jego właścicielem, a także członkiem grupy

sudo chown -R $USER:www-data html

Wpisz swoją nazwę użytkownika zamiast USER

Ustaw odczyt, zapis, wykonaj uprawnienia zgodnie z wymaganiami, (ugo) u = użytkownik, g = grupa, o = inne

sudo chmod 750 html

Ustaw GID html, teraz nowo utworzone pliki w html odziedziczą prawa własności:

sudo chmod g+s html

Spowoduje to utworzenie domyślnych reguł dla nowo tworzonych plików / katalogów w katalogu html i podkatalogach.

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Zrób SELinux, jeśli jest zainstalowany, zignoruj ​​wymaganie kontekstu danych www, aby pozwolić na uprawnienia do zapisu

sudo setsebool -P httpd_unified 1

lista katalogów, aby zobaczyć zastosowane nowe uprawnienia

ls -ld html

Zwraca to

drwxrwsr-x+   3 html www-data

Końcowy znak + oznacza, że ​​ACL, lista kontroli dostępu, jest ustawiona w katalogu.

Odniesienie : Link do forum

Bsienn
źródło
-2

Za pomocą następującego polecenia możesz ustawić domyślne uprawnienia do pliku:

chacl -R filename
użytkownik240513
źródło
3
Czym różni się to od innych odpowiedzi? I podaj kilka przykładów
Romeo Ninov
3
Jesteś pewien, że tak właśnie działa? linux.die.net/man/1/chacl wskazuje, że usunie listę ACL.
Jeff Schaller