Jestem bardziej osobą z Windows, więc proszę wybacz moją ignorancję w tym podstawowym pytaniu o Linuksa.
Dbam o serwer Linux (Debian), na którym jest zainstalowany tylko Apache2 i vsftp.
To, co się dzieje, polega na ciągłej walce z tym, kto jest właścicielem plików i folderów i wydaje się, że nie udało się tego naprawić.
Oto moje dotychczasowe zrozumienie:
- Użytkownik www-data potrzebuje własności folderów i plików, ponieważ wszystkie pliki w katalogu / var / www / html uruchamiają skrypty, które wymagają zapisania w swoim folderze. I oczywiście musi być w stanie obsługiwać strony przez http.
- Mój użytkownik ftp (nazwijmy go ftpuser ) również wymaga pozwolenia na zapis do folderu / var / www / html (rekurencyjny), ponieważ muszę móc przesyłać nowe pliki.
Mając to na uwadze, stworzyłem grupę o nazwie ftpandwww i przeszukałem wszystkie foldery i pliki w tej grupie. To działało do pewnego stopnia ...
Jestem prawie we właściwym miejscu, z wyjątkiem faktu, że wszelkie nowe foldery utworzone za pomocą mojego klienta FTP mają nieprawidłowe uprawnienia (które mogę poprawić, zmieniając je w kliencie FTP), ale dane www nie mogą do nich zapisywać ponieważ są one własnością ftpuser, a ja w końcu muszę połączyć się z SSH i uruchomić grupę chown na ftpandwww, aby oboje byli szczęśliwi.
Jak sprawić, aby wszystkie nowe foldery, które tworzę na FTP, miały odpowiednie uprawnienia (774) i były automatycznie własnością grupy ftpandwww , do której mogę przesyłać i udostępniać przez Internet (z uprawnieniami do zapisu) bez konieczności wchodzenia i przeglądania wszystkich nowe foldery i pliki za każdym razem?
źródło
Odpowiedzi:
Użyj uprawnień SetGID w głównym katalogu internetowym i rozpowszechnij je wśród dzieci.
Kiedy zastosujesz SetGID w katalogu, wszystkie nowe elementy w tym katalogu zostaną utworzone z tą samą grupą, co ich rodzic, niezależnie od domyślnego członkostwa użytkownika w grupie.
Aby zastosować SetGID do obiektu systemu plików, użyj
chmod
z 2 przed kodem uprawnień.(np .: 740 => 2740).
Używam SetGID na wielu moich udziałach Samba, dzięki czemu pliki zawsze mają własną grupę,
Users
a każdy członek grupy może je odczytać (zwykle używam2750
, aby tylko użytkownik właściciela mógł pisać do pliku).W twoim przypadku uruchom coś takiego (zastąp XXX żądanymi uprawnieniami):
Wtedy pojawią się nowe pliki i foldery z własnością jak
ftpuser:ftpandwww
.Edytować:
W zależności od przypadku użycia SetGID prawdopodobnie wystarczy do rozwiązania problemu, ale jeśli nadal występują problemy, w których odmówiono zapisu jednemu lub drugiemu użytkownikowi, z powodu niepoprawnego pozwolenia grupy (ale własność jest prawidłowa), najlepszym rozwiązaniem jest ustawienie zwyczaj UMASK dla użytkownika, który tworzy pliki .
Jeśli masz trudności z ustawieniem UMASK dla użytkownika (ponieważ jest to demon), sprawdź ten wątek na temat opcji ustawiania UMASK użytkownika-demona .
Poleciłbym maskę,
007
jeśli chcesz, aby członkowie grupy mogli zapisywać i usuwać pliki oraz nie mieli uprawnień dla osób niebędących właścicielami.źródło