Korzystając z tego pomocnego posta, jestem w stanie ustawić domyślną grupę i uprawnienia do plików w folderze.
Mam problem z ustawieniem domyślnego właściciela (Teamlead UID 1234).
setfacl -d -m g::rwx /my/test/folder
setfacl -d -m o::rx /my/test/folder
getfacl /my/test/folder
# file: /my/test/folder
# owner: teamlead
# group: web_prod
# flags: -s-
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Z tym:
[mary@boxen]# touch /my/test/folder/somefile
[mary@boxen]# ll /my/test/folder/somefile
-rw-rw-r--. 1 mary web_prod 0 Nov 6 08:58 somefile
Tak więc przypisano odpowiednią grupę, ale nowy plik ma własność użytkownika, który go utworzył. Chciałbym, aby nowo utworzone pliki miały teamlead: właściciel / grupa web_prod.
Wygląda na to, że setfacl
można go również użyć do ustawienia domyślnego użytkownika. Z istniejącym folderem acl config (powyżej):
[mary@boxen]# setfacl -d -m u:1234:rwx /my/test/folder
Teraz, aby utworzyć plik jako inny użytkownik. Spodziewam się, że będzie mieć teamlead: własność web_prod.
[mary@boxen]# touch /my/test/folder/anotherfile
[mary@boxen]# ll /my/test/folder/anotherfile
-rw-rw-r--+ 1 mary web_prod 0 Nov 6 08:58 somefile
Nowy plik nadal ma własność właściciela tworzącego plik, a nie identyfikator użytkownika 1234 (teamlead).
Czy to, czego szukam, jest w ogóle możliwe, czy też sposób, w jaki to robię, jest zły?
Zawsze tworzony jest nowy plik należący do użytkownika, który uruchomił proces tworzenia pliku. (Dokładnie efektywny identyfikator użytkownika.) Nie można tego zmienić, ponieważ umożliwienie użytkownikom tworzenia plików należących do innych użytkowników stanowiłoby lukę w zabezpieczeniach, podobnie jak pozwalanie użytkownikom innym niż root na rozdawanie plików .
Cokolwiek próbujesz zrobić, nie musisz tego robić. Listy ACL są wystarczające, aby zapewnić, że cokolwiek będzie trzeba później odczytać plik, będzie miało wystarczające uprawnienia. Pozostaw plik należący do użytkownika, który go utworzył.
źródło
g+s
).Jeśli chcesz, aby nowe pliki były tworzone z nową grupą, musisz zmienić grupę podstawową.
W tym celu możesz użyć usermod i parametru -g
na przykład
źródło
W systemie Linux musisz mieć sgid na katalogu macierzystym, aby dziedziczyć grupę plików. (Chociaż nie potrzebujesz sgid w katalogu na systemach BSD.)
źródło