Mam serwer SFTP (openssh / sftp-server) i chciałbym ustawić umask 002 dla użytkowników korzystających z tej usługi. Próbowałem ustawić PAM (pam.d / common-session) i .profile dla każdego użytkownika, ale bez powodzenia.
Przy logowaniu SSH wszystko jest w porządku, ale kiedy próbuję z SFTP (z gFTP) mam ustawiony zestaw umask 022.
Próbowałem już użyć opakowania dla serwera sftp, który zmienia umask przed wywołaniem serwera sftp, bez powodzenia.
Jakaś pomoc? Wielkie dzięki!
Subsystem sftp /bin/sh -c 'umask 0002; /usr/lib/openssh/sftp-server'
Mam nadzieję, że pozwoli to zaoszczędzić komuś godziny frustracji ...
Jeśli używasz aplikacji GUI SFTP, sprawdź jej preferencje dotyczące ustawiania uprawnień podczas przesyłania.
Wypróbowałem wszystkie powyższe rozwiązania i okazało się, że aplikacja po prostu je zastąpiła.
źródło
Po wielu godzinach prób zastosowania różnych hacków i poprawek znalazłem właściwe rozwiązanie!
Istnieje łatka dla SSH, która pozwala wybrać umask, który chcesz dla SFTP. Możesz go pobrać tutaj: http://sftpfilecontrol.sourceforge.net/
Dla mnie (OpenSSH_5.2p1 + sftpfilecontrol-v1.3, OpenSSL 0.9.8g 19 października 2007) działa idealnie!
źródło
W pliku konfiguracyjnym ssh możesz również użyć tego do specyficznego ustawienia trybu pliku (przesłaniając dowolny chmod, który klient może próbować ustawić). Tutaj używam wewnętrznego sftp, ale myślę, że byłoby tak samo dla sftp-server:
źródło
Aby zacytować tę wiadomość :
Bash używa
.profile
interaktywnych powłok logowania. Nie sądzę, żesftp
liczy się jako jeden. Możliwe, że możesz ustawić umask/etc/bash.bashrc
lub~/.bashrc
jeśli powyższa wskazówka nie działa lub chcesz mieć bardziej szczegółową kontrolę.źródło
Zapoznaj się z tym pytaniem, aby znaleźć proste rozwiązanie, które nie wymaga określonych wersji openssh ani niestandardowych poprawek.
źródło