Listy kontroli dostępu
Prostą odpowiedzią są listy kontroli dostępu (ACL) . Tak, możesz znaleźć kontrprzykład, ale są one wystarczająco dobre w praktyce (w przeciwieństwie do zwykłego zapisu grupowego, które wymaga, aby użytkownicy cały czas o tym myśleli). Wymagają, aby administrator systemu (root) zdefiniował grupy, jeśli chcesz, aby pliki były udostępniane tylko przez nazwaną grupę (root może zdecydować o delegowaniu, na przykład akceptując grupy z LDAP, ale to inna historia).
Potrzebujący uczestnicy muszą mieć maskę 022. Jeśli rutynowo tworzą pliki nieczytelne dla świata, ten schemat nie zadziała. Ale jeśli mają restrykcyjną umaskę, to prawdopodobnie dlatego, że i tak nie chcą udostępniać plików.
Włączanie list ACL
Ubuntu domyślnie nie włącza list ACL, więc istnieje jednorazowy wymóg administratora. Edytuj /etc/fstab
za pomocą swojego ulubionego edytora i zmieniaj każdą linię odpowiadającą systemowi plików, w którym chcesz współdzielić pliki: dodaj acl
do opcji. (Pamiętaj, aby nie zmieniać żadnej innej linii i nie używać edytora, który zawija długie linie.) Oto przykładowa linia z acl
dodaną opcją:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Aby opcja zaczęła obowiązywać za pierwszym razem, użyj polecenia takiego jak poniżej (dla każdego systemu plików):
sudo mount -o remount,acl /
Zainstaluj narzędzia ACL z acl
pakietu.
Konfigurowanie udostępnionego katalogu
Aby udostępnić pliki grupie mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Jeśli ludzie utworzą pliki i skopiują je do udostępnionego katalogu, pliki będą czytelne dla całego świata (z powodu umask), a każdy w grupie będzie mógł dodawać i usuwać pliki (ponieważ grupa jest zapisywalna przez grupę). Ludzie nie mogą edytować plików innych użytkowników, ale to dobrze, bo od razu natrafilibyście na konflikty edycji.
Jeśli nie masz grupy uniksowej, możesz dodawać użytkowników jeden po drugim:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Kontrola wersji
Jeśli chcesz, aby ludzie mogli edytować pliki w miejscu, potrzebujesz również czegoś, co zapobiegnie konfliktom edycji. To kontrola wersji.
Nie potrzebujesz nic z tego, aby współdzielić repozytorium git. Wiesz, że istnieją rozwiązania takie jak gitosis, więc używaj ich.
Po prostu zrób to:
Teraz wszyscy w
teamA
grupie mogą zrobić wszystko w środku/src/teamA
Magią jest bit sgid (ustaw identyfikator grupy) w katalogu.
źródło
Jeśli chcesz, aby użytkownicy mieli dostęp do plików w folderze współdzielonym (na przykład różne osoby logują się na tym samym komputerze w różnym czasie i potrzebują dostępu do tych samych plików), możesz użyć
bindfs
do utworzenia katalogu współdzielonego.Umożliwia wielu lokalnym użytkownikom odczytywanie i zapisywanie (tworzenie, usuwanie, zmiana nazwy, modyfikacja ...) wszystkich plików (w tym nowo utworzonych) ze wspólnego katalogu i jego podkatalogów. Każdy użytkownik zobaczy pliki i foldery (w tym nowo utworzone) jako należące do nich.
Krótko mówiąc, uciekasz
udostępnić / home / shared użytkownikowi 1, użytkownikowi 2 i użytkownikowi 3.
Instrukcje
Zobacz Bindfs-SharedDirectoryLocalUsers (dokumentacja Ubuntu), aby uzyskać pełne instrukcje, w tym konfigurację na stałe (za każdym razem, gdy włączasz komputer). Używam tego na własnym komputerze dla wielu katalogów, każdy z różnymi grupami udostępniania (jeden folder jest dostępny dla wszystkich kont, inny tylko dla kont służbowych, inny tylko dla kont osobistych).
Z postu:
Listy kontroli dostępu (ACL)
Uwagi do dokumentacji:
Zobacz więcej odpowiedzi Gillesa .
źródło
Możesz połączyć rozwiązanie Shellholic z zadaniem cron, które aktualizuje gid dla wszystkich plików w tym folderze co 15 sekund lub coś podobnego.
źródło