Centos Sftp Ssh - Jak zawsze tworzyć pliki za pomocą rwx-rwx-r-x i zawsze należy do określonej grupy

2

Mam użytkownika myuser, który może łączyć się tylko z ssh przez sftp. Chciałbym, aby ten użytkownik zawsze tworzył pliki z rwx-rwx-r-x i zawsze był własnością grupy apache. Próbowałem wykonać część uprawnień do pliku za pomocą umask, ale w plikach umask i katalogach uzyskiwane są różne uprawnienia dla tej samej umask. Pomoc jest doceniana.

Jojo Coana
źródło

Odpowiedzi:

2

tło

Jest to trwały problem sftp i udostępnianie plików. Wynika to z faktu, że wynikające z tego uprawnienia są oparte na oryginalnym uprawnieniu pliku po stronie użytkownika i umask ( -u ) argument nie wymusza takich uprawnień, a jedynie usuwa niechciane uprawnienia. Oznacza to, że tylko jeśli użytkownik próbuje przesłać plik za zgodą 0777, jest stosowany i rozbierany do 0775. W przeciwnym razie zostanie po prostu tak, jak było. Na przykład jeśli użytkownik ma plik zapisany w swoim systemie plików za zgodą 0700, pojawi się również po wgraniu jako 0700.

Rozwiązanie

Ostatnio rozwiązaliśmy ten problem w Fedorze, stosując poprawkę, która wymusza dokładne zezwolenie na nowe przesłane pliki -m Przełącz na sftp-server. Opiera się na tym głównym błędzie:

https://bugzilla.mindrot.org/show_bug.cgi?id=1844

To jest dostępne w bieżącym CentOS 7.2 . Z dziennika zmian:

 - Add sftp option to force mode of created files (#1197989)

Obejście problemu

Nie ma innego eleganckiego rozwiązania z wyjątkiem okresowego uruchamiania skryptu (z cron ), który naprawia nieprawidłowe uprawnienia. Byłby to jeden liner w bashu, ale myślę, że możesz wymyślić jakieś. Mogę to bardziej rozwinąć, jeśli jesteś zainteresowany.

Albo możesz użyć inotify „złapać” zmiany wcześniej.


Grupa powinna być dziedziczona z katalogu nadrzędnego, prawda?

Jakuje
źródło