Domyślne uprawnienia do przesyłania plików vsFTPd na Ubuntu nie działają


14

Mam serwer z systemem Ubuntu 12.10 x64 i ostatnią wersją vsFTPd.

Mój użytkownik example.com ma włączony folder domowy /var/www/example.com,

Wewnątrz utworzyłem folder public_html, 777nadałem mu uprawnienia i usunąłem uprawnienia do zapisu w folderze użytkownika domowego. Wszystko działa dobrze, ale:

Każdy plik przesłany przez FTP (za pomocą SmartFTP) otrzymuje wartość chmod równą 0.

Moja vsftpd.confpowiązana była tylko jedna linia:

local_umask=022.

Próbowałem zmienić na:

file_open_mode=777
local_umask=002

Tak więc moje pliki zostaną 775przesłane natychmiast po przesłaniu.

Ale tylko moje przesłane foldery otrzymują 775uprawnienia.

Dostałem moje przesłane pliki 1411 permissions

Czy ktoś może mi pomóc w rozwiązaniu tego?


musisz wyrazić zgodę na użytkownika FTP.
Gex

Odpowiedzi:


11

Skończyło się na tym

file_open_mode=0777
local_umask=022

na stronie vsftpd.conf. Problem polegał na tym, że zarówno użytkownik FTP, jak i użytkownik www-data potrzebowali uprawnień do zapisu, więc musiałem dołączyć www-data i ftpuser do grupy użytkowników www-data, a CHMOD -R 775 wszystkie pliki na / var / www - w ten sposób, z 775 CHMOD grupa miałaby uprawnienia do odczytu, zapisu i wykonania. Teraz działa idealnie.


1
nie zapomnij, aby ponownie uruchomić serwer FTP: sudo service restart vsftpd
Nahid

7

Mam odpowiedź:

Ponieważ www-data jest użytkownikiem odpowiedzialnym za serwer WWW, a twój normalny użytkownik jest odpowiedzialny za serwer ftp, musisz najpierw uczynić ich obojgiem członkami tej samej grupy: grupy www-data.

Tworzenie niestandardowego użytkownika:

useradd –d /var/www/asasd.com -g www-data -m yourusername w ten sposób katalogiem domowym będzie /var/www/asasd.com, a użytkownik będzie w grupie danych www .

następnie zmień hasło użytkownika, wpisując passwd.

Następnie trzeba stworzyć public_html folderu wewnątrz twoja_nazwa_użytkownika katalogu domowym, jak FTP nie będą mogli pisać w głównym katalogu domowym, trzeba utworzyć podfolder.

Usuń uprawnienia do zapisu w folderze z twoją nazwą użytkownika chmod a-w /var/www/asasd.com

Następnie zastosuj nowe uprawnienia do podfolderu: chmod -R 775 /var/www/asasd.com/public_html (pamiętaj, że musisz użyć 775 chmod, ponieważ potrzebujesz uprawnień do zapisu grupy, a nie uprawnień użytkownika do zapisu, ponieważ chcesz, aby cała grupa (ftp i www-data) była w stanie pisać). folder dla danych www chown -R www-data:www-data /var/www/asasd.com/public_html

W ten sposób musisz mieć możliwość korzystania z FTP i mieć działający serwer WWW.

Powodzenia!

Zabawne, że ta informacja jest tak trudna do znalezienia. Czy ludzie nie dzielą się już wiedzą?


„musisz najpierw uczynić ich obojgami członkami tej samej grupy: grupa www-data” Jak umieścić mojego użytkownika ftp w grupie www-data?
Czarny

Działa idealnie. Dzięki @lucasmx
Enrique Becerra

0

Miałem również problem z tym, że uprawnienia do pliku zostały zmienione, gdy przesyłam plik przez ftp. Jest to naprawione przez zmianę jednej linii w moimvsftpd.conf

local_umask=val(like 022,007,etc.,)


Chcesz ulepszyć i trochę to otworzyć? Dlaczego jest to lepsze niż poprzednie alternatywy i co tak naprawdę robi , skoro tego rodzaju składnia w ogóle nie jest opisana na stronie podręcznika: local_umaskmusi być pojedynczą wartością i musi mieć 0prefiks dla wartości ósemkowej.
Esa Jokinen

-4

musisz zmienić własność tego pliku:

chown root:root /home/username
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.