Jak działa local_umask i file_open_mode?

11

Miałem pewne problemy z uprawnieniami do plików, gdy lokalni użytkownicy przesyłali swoje pliki przez vsftp na serwer.

Chciałem, aby pliki miały wszystkie uprawnienia 766. Po wielu próbach i błędach dowiedziałem się, że muszę ustawić takie ustawienia:

local_umask=011
file_open_mode=0777

Ale nie wiem, dlaczego powoduje to 766 uprawnień. Czy ktoś może to wyjaśnić?

OrangeTux
źródło

Odpowiedzi:

13

Vsftpd daemeon stworzy uprawnienia do plików jako 0777 . Od tego odejmuje się local_umask( 0011 ). Umask zasadniczo usuwa uprawnienia, których użytkownicy nie powinni mieć. Powoduje to, że uprawnienia użytkownika do pliku mają wartość 0766 .

Aby uzyskać więcej informacji, zobacz ten artykuł na temat uprawnień do plików .

Ignacio Vazquez-Abrams
źródło
2
Tak, rozumiem. Ale jak to działa? Dlaczego nie mogę ustawić tylko 766?
OrangeTux,
1

Wartość umask jest odejmowana od ustawienia trybu otwartego. Jeśli nie podasz niestandardowej wartości umask, zostanie użyta wartość domyślna (077), co prowadzi do wyniku, którego nie chcesz.

Timo Reimann
źródło
-1

Otrzymujesz to uprawnienie, ponieważ:

1) Ustawienie local_umask = 011 każesz vsftp ustawić:

0: odczyt, zapis i wykonanie 1: odczyt i zapis 1: odczyt i zapis

To jest równe chmod 766.

2) Wartość file_open_mode = 0777 nie jest analizowana,

Tutaj możesz znaleźć bardzo dobre wyjaśnienie, czym jest umask i jak go używać: https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Fernando Kosh
źródło
To nie jest odpowiedź na pytanie. (1) OP chce, aby pliki były chronione 766, a nie 666, więc rozwiązujesz zły scenariusz. (2) OP ma konfigurację, która działa. Pytanie brzmi: dlaczego to działa? Nie rozwiązałeś tego.
Scott
Ok, @Scott, zredagowałem odpowiedź.
Fernando Kosh,