Odpowiedzi:
Umask i końcowe uprawnienia, których potrzebujesz, powinny sumować się do 777. Ponieważ potrzebujesz uprawnień 775, potrzebujesz 777 - 775 = 002 jako umask.
002
jest wartością ósemkową, prawda? Dlaczego dodajesz kolejne wiodące 0
?
002
(nie pamiętam moje potrzeby w tym czasie), ale należy na przykład 022
(który będzie traktowany jako podstawy 10 22
) vs 0022
. W każdym razie bez mnie to nie działało…
Jeśli zastanawiasz się, gdzie ustawić umask, możesz ustawić go w pliku konfiguracyjnym vsftpd (/etc/vsftpd.conf), tak jak w anon_umask
przypadku dostępu anonimowego i local_umask
użytkowników.
Aby maska działała poprawnie (nawet bez anonimowego dostępu), konieczne wydaje się ustawienie anon_upload_enable=YES
i anon_mkdir_write_enable=YES
. Jeśli nie zostaną one ustawione, pisanie, czytanie i wykonywanie nie będzie dozwolone dla grup lub innych osób na plikach przesyłanych przez ftp (nawet jeśli standardowe uprawnienia mogą być ustawione dla czegoś innego).
W twoim przypadku, jeśli potrzebujesz dostępu uwierzytelnionego przez użytkownika, powinieneś ustawić następujące ustawienia:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=0002
anon_upload_enable=YES
anon_mkdir_write_enable=YES
file_open_mode=0777
Tutaj file_open_mode
ustawia domyślne ustawienie plików. 777
sprawia, że jest czytelny, zapisywalny i wykonywalny dla każdego. Z local_umask
ustawionym na 002
to daje 775
, zgodnie z prośbą.
Notica local_umask
domyślnie 077
, wyłączająca grupy i inne osoby w celu uzyskania dostępu do plików w jakikolwiek sposób (stąd ustawia się tutaj).
Dalsza lektura: https://security.appspot.com/vsftpd/vsftpd_conf.html
anon_umask
local_umask=002
może nie dać oczekiwanych rezultatów - lepiej przedrostek „0”:local_umask=0002
(patrzman vsftpd.conf
).