Gdzie mam umieścić udostępnione pliki grupy w systemie Linux?

14

Migruję wiele małych niestandardowych skryptów i danych z systemu Linux do innego.

W starym systemie mieliśmy współdzielonego użytkownika, który był właścicielem większości plików, a oni znajdowali się w tych użytkownikach /home, ale w nowym systemie wolelibyśmy zalogować się na własnych kontach i używać uprawnień grupy do współpracy, ale ponieważ nie będzie pojedynczy właściciel plików, nie ma /home-dir.

Więc gdzie powinienem umieścić te udostępnione pliki? Czy powinienem utworzyć użytkownika bez logowania, który jest właścicielem plików? Czy jest jakieś odpowiednie /grouphomemiejsce?

(Nie chcę rozpowszechniać ich wśród poszczególnych użytkowników /home: s.)

Daniel
źródło
Jakie to są pliki?
Dan Carley
Większość to skrypty importowe z różnego rodzaju powiązanymi danymi, które powinny być filtrowane i importowane do baz danych.
Daniel
Lubię / grouphome. Dobry jest także użytkownik bez logowania, który jest właścicielem pliku.
pjc50,

Odpowiedzi:

15

Niemal na pewno sugeruję użycie /usr/local.

Można umieszczać globalnie dostępne skrypty użytkownika /usr/local/bin. Mogą również wchodzić niewielkie ilości powiązanych danych bin. Lub możesz podzielić dane na /usr/local/varlub /usr/local/share.

W ten sposób będziesz mieć pewność, że każdy znajomy FHS będzie w stanie zlokalizować go dość szybko, bez wcześniejszej wiedzy na temat konkretnego systemu.

Dan Carley
źródło
3
(+1) W celu uzyskania informacji na temat tego, co należy umieścić gdzie: pathname.com/fhs/pub/fhs-2.3.html
Kyle Brandt
Dzięki Wam obojgu. /usr/localniech tak będzie. Właściwie był to jeden z moich pierwszych opcji, ale opis celów z /usr(read-only) w sugerowanej artykule odwrócił mnie od tego pomysłu. Chyba powinienem był przeczytać dalej /usr/local.
Daniel
7

Właśnie do tego służą prawa grupy. Oto jak to robię w Ubuntu:

sudo mkdir /home/shared
sudo addgroup shared
sudo chown :shared /home/shared
sudo chmod 770 /home/shared
sudo vim /etc/group

Dodaj listę użytkowników, którzy mają mieć dostęp do udostępnionego katalogu do udostępnionej grupy. Na przykład:

shared:x:1002:norman,nextuser,and,so-on

Możesz oczywiście użyć dowolnej nazwy innej niż „shared” i nie musi ona znajdować się w katalogu / home. Zaletą jest to, że nie musisz robić nic specjalnego na kontach użytkowników i możesz łatwo dodawać lub usuwać użytkowników z grupy.

prościej
źródło
Dziękuję za głosowanie w dół. Ale chciałbym wiedzieć, co napisałem, co jest niepoprawne.
prościej,
ustaw także bit lepki grupy, aby grupa była ustawiona na nowe utworzone pliki. chmod g+s /home/shared
jris198944
1
@ jris198944 sjest dla bitów SUID i GUID, tjest dla lepkiego bitu. Proszę dokładnie sprawdzić przed wysłaniem ;-) Zobacz: unix.stackexchange.com/a/79401/136321 .
liść
1

Krótka odpowiedź brzmi; Gdziekolwiek chcesz :)

Lubię używać czegoś takiego jak / projects, / shared lub / common. / home / shared też działa.

Roy
źródło
Dzięki. Krótko i miło, ale czasem łatwiej jest, jeśli nie musisz podejmować samodzielnych decyzji ... Czy byłoby zgodne z FHS, aby umieścić mój własny katalog bezpośrednio /? Kiedy (jeśli w ogóle) to ma znaczenie? Nie mam wystarczającego doświadczenia, aby zrozumieć konsekwencje mojego wyboru.
Daniel
To naprawdę tylko konwencje. Inne programy, które szukają rzeczy, wyglądają w tych predefiniowanych lokalizacjach. Katalogi bin będą już w $ PATH, więc nie będziesz musiał określać pełnej nazwy ścieżki do uruchomienia skryptu. Inni administratorzy mogą oczekiwać, że tam będą. Prawdopodobnie nie ma to w twoim przypadku znaczenia, ale dobre nawyki są dobre :-)
Kyle Brandt,
Istnieje wiele obowiązujących konwencji w środowiskach UNIX. FHS stanowi dobrą linię bazową, ale dość często odstępuje się od tego standardu. Na przykład serwery bazy danych Optimal Flexible Architecture dla Oracle używają / u * (/ u01, / u02) dla lokalnych danych użytkownika, podczas gdy Ubuntu między innymi używa / media do wymiennych punktów montowania nośników. Dopóki masz konwencję, na którą zgadzasz się wewnętrznie w swoim środowisku operacyjnym, nie powinno być problemu.
Roy,
0

Używam /shares; jest to również lokalizacja używana przez qnap.

W /sharesMam dowiązania symboliczne do miejsca docelowego w folderze o nazwie, /shares/.mnt/gdzie mam zamontowane dyski danych.

Ma to na celu uniknięcie długiego czasu oczekiwania podczas przenoszenia plików między udziałami, gdy używane są dowiązania twarde, /sharesktóre są potrzebne, gdy dyski danych są montowane tylko w / mnt.

/shares/.mnt Nawiasem mówiąc, nie jest udostępniany.

Jeroen
źródło