Niedawno zainstalowałem serwer Ubuntu na moim serwerze, aby wypróbować system Linux jako nowy użytkownik. Postępowałem zgodnie z samouczkiem na temat konfigurowania serwera WWW, który powiedział, że potrzebuję chmod 777
katalogu serwera WWW, aby można go było zapisać.
W każdym razie utworzyłem nowe konto dla jednego kolesia, aby umożliwić mu przeglądanie niektórych plików na serwerze, które umieściłem w jego katalogu domowym:
adduser francis
Po utworzeniu konta sprawdziłem, z jakim dostępem ma on
groups francis
Napisał „francis: francis”, więc nie jest to problem, pomyślałem, że ubuntu domyślnie nie włączył go do żadnej grupy, co ma sens, stworzył go bez dodatkowych uprawnień ze względów bezpieczeństwa, więc wszystko jest w porządku i eleganckie. Tydzień później, z absolutnym i całkowitym przerażeniem, dowiedziałem się, że chociaż nie mógł robić takich rzeczy jak SUDO lub robić bałaganu w katalogach systemowych, miał pełny dostęp do prawie wszystkiego innego na serwerze. Na przykład miał pełny dostęp do odczytu / zapisu do moich plików serwera WWW w / var / www (a więc haseł przechowywanych w plikach konfiguracyjnych php itp.), Mimo że katalog ten NIE znajduje się w jego katalogu domowym i nigdy nie dodałem go do żadnych grup, które mogłyby uzyskać dostęp do tego katalogu, ani nie przyznałem mu żadnego specjalnego dostępu do czegokolwiek po wykonaniu adduser.
W każdym razie, co się tutaj dzieje? Jak zabić jego dostęp do czegoś ważnego? Nie powinien mieć dostępu do takich rzeczy jak / media lub / var / www. Myślałem, że nowi użytkownicy domyślnie nie mogą robić nic niebezpiecznego lub węszyć w miejscach, w których nie powinni być.
Podsumowując, muszę tylko pozwolić mu na dostęp do katalogów, które ręcznie określam + do katalogów, które musi poprawnie funkcjonować (jego domowy katalog, vim, nano itp.)
Dziękuję Ci
źródło
chmod
gdzie indziej, możesz mieć inne problemy.Odpowiedzi:
To jest zgodne z przeznaczeniem. I gorzej. chmod 777 oznacza ... „Chciałbym, aby właściciel, każdy w jego grupie i ktokolwiek w ogóle miał uprawnienia do odczytu, zapisu i wykonywania”
Co jest okropne.
A dla serwera WWW 777 nie jest optymalny. 755 (Właściciel ma pełną grupę uprawnień, a inni mają odczyt i wykonanie) jest częstym ustawieniem domyślnym, ale z tego, co powiedziałeś, że chcesz przynajmniej odczyt-zapis lub odczyt-zapis wykonać dla właściciela (użytkownika serwera WWW), a może grupa i brak uprawnień dla użytkownika. Bardziej kompletne pytania dotyczą tego, jakie odpowiednie poziomy uprawnień dotyczą błędu serwera ale rozważmy coś takiego jak 640 lub 740.
powiedziawszy, możesz również umieścić użytkownika w jego małym świecie - konfigurując chroota, aby trzymał użytkownika we własnej przestrzeni w systemie. W tym celu krążą przewodniki - na przykład doskonała odpowiedź oli tutaj, która może być opcją w zależności od potrzeb.
źródło
Zasadniczo rozkłada się w następujący sposób:
Zatem uprawnienia do odczytu to 4, odczyt i zapis to 6, odczyt i wykonanie to 5, a wszystkie (odczyt, zapis, wykonanie) to 7. W ten sposób obliczasz wartość oktetu uprawnień dla właściciela, grupy właściciela lub wszyscy.
Podczas stosowania tych uprawnień
chmod
do do lokalizacji pliku lub katalogu, obliczone powyżej liczby są stosowane w ten sposób, z oktetem dla właściciela, grupy i wszystkich:Więc jeśli chciałbym dać sobie i mojej grupie uprawnienia do odczytu, zapisu i wykonywania uprawnień do folderu, który posiadałem, ale nie chciałem, aby wszyscy mogli go nawet przeczytać, użyłbym:
Aby uzyskać więcej informacji, sprawdź stronę podręcznika dla chmod :
źródło
chmod ugo+rwx <...>
. Postacie oznaczają u Ser g rupy, O Ther; r ead, w rite, e x ecute. Możesz użyć „-”, aby usunąć (npchmod go-wx <...>
.:). Pamiętaj, że powoduje to tylko dodanie lub usunięcie dokładnie tego, co wpisujesz.chmod ugo+rwx <file>; chmod u+rwx <file>
nie usuwa dostępu dla grupy / innych.chmod 777
, co się stało , więc w tym miejscu skierowałem moje wyjaśnienie.Jak wspomnieli inni, nie powinieneś mieć uprawnień ustawionych na 777
Oto pomocny arkusz, którego używam.
źródło
Aby udostępnić pliki osobie, której podałeś login, nie musisz nic robić. Podczas domyślnej instalacji Debiana użytkownicy mają dostęp do swoich katalogów domowych.
Na przykład,
Uprawnienia do mojego katalogu domowego są odczytywane (r) i dostępne (x) dla każdego użytkownika w moim systemie. Tylko ja dodatkowo mam napisać (w) .
Ponadto domyślnym
umask
w Ubuntu jest to, że pliki i katalogi tworzone przez użytkowników są domyślnie czytelne na całym świecie . Możesz ustawićumask
na077
jeśli nie chcemy.Co to oznacza, że w domyślnej konfiguracji, jeśli użytkownik
you
chce udostępnić~/README.txt
mi dokument , nieyou
trzeba nic robić. Mogę to po prostu wyświetlić:Nie mogę edytować ani usunąć pliku, ale mogę go skopiować do lokalizacji, w której mam uprawnienia do zapisu. Następnie jestem właścicielem kopii:
Są dobre powody, dla których większość systemu jest domyślnie czytelna na całym świecie, jak wyjaśniłem w innej odpowiedzi na AskUbuntu . Jednak w systemie współdzielonym może być sensowne, aby katalogi domowe były niedostępne dla osób niebędących właścicielami:
... ponieważ wielu użytkowników najwyraźniej nie zna domyślnych ustawień - QED ;-). Rozsądniej byłoby jednak uświadomić użytkownikom, że uprawnienia do plików nie chronią tajemnic.
źródło
W Ubuntu każdy użytkownik ma uprawnienia administratora, które są dodawane do grupy „sudo”. Sprawdź to, aby upewnić się, że żaden inny użytkownik nie zostanie dodany w tej grupie.
Aby zabezpieczyć swoje pliki i katalog przed innymi użytkownikami, możesz ustawić uprawnienia zgodnie z sugestią pana Journeyman Geek w powyższej odpowiedzi.
Możesz także użyć specjalnych uprawnień, aby zabezpieczyć swoje pliki i katalogi przed innymi.
źródło