Zmiana uprawnień dla / var / www / html


12

Przez jakiś czas studiowałem ten temat https://help.ubuntu.com/community/FilePermissions i z jakiegoś powodu nie mogę go uruchomić.

Szczególnie te linie interesują mnie najbardziej:

Aby zmienić jednocześnie wszystkie uprawnienia każdego pliku i folderu w określonym katalogu, użyj sudo chmod z opcją -R

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

Oto co wpisałem:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

Następnie sprawdziłem wszelkie zmiany w sftp:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

Z danych wyjściowych wynika, że ​​katalog html jest nadal modyfikowalny tylko przez root.

Jak mogę to zmienić w taki sposób, że ja (inny niż root) mogę przesyłać pliki do katalogu HTML?

Testowałem również:

Właściciela pliku można zmienić za pomocą polecenia chown. Na przykład, aby zmienić właściciela pliku foobar na tux:

$ sudo chown tux foobar

Wpisałem z serwera:

sudo chown mark owner

bez efektu.


Brakuje opcji -r dla rekurencyjnego. A 777 jest - zawsze - poprawną zmianą do wprowadzenia (chyba że ustawisz również opcję t (lepki bit). Pytanie: dlaczego katalog jest pusty przy drugim poleceniu i wypełniony index.html przy trzecim poleceniu? Te polecenia NIE są wydane w tych samych sytuacjach. sudo chown mark ownerco to ma zrobić? Jak to możliwe, że wprowadzasz tam plik lub katalog o nazwie „właściciel”?
Rinzwind

Aby przejąć na własność plik lub katalog, musisz określić, kto jest nowym właścicielem, grupę (opcjonalnie) oraz plik lub katalog. Na przykład, sudo chown user:user mydocsgdzie jest nowy właściciel i grupa, usera katalog, w którym bierzesz własność, tomydocs
Gansheim

1
W takim przypadku pozostawiłbym własność katalogu w spokoju, aby zmodyfikować uprawnienia do tego konkretnego katalogu, abyś mógł do niego pisać, ustawić uprawnienia do odczytu / zapisu, polecenie tosudo chmod 766 -r /var/www/html
Gansheim 14.04.17

@Rinzwind wygląda tak, jakby wydał ls -lpolecenie z katalogu domowego. @ Mark O ile nie znajdujesz się w katalogu, który próbujesz przeglądać / manipulować, musisz określić ścieżkę, w takim przypadku powinieneś wydać polecenie jakols -l /var/www/html
Gansheim

1
Jak zauważyli chłopaki, chmodzmienia uprawnienia, chownzmienia właściciela. 755 pierwsza cyfra (7) oznacza, że ​​„właściciel” ma wszystkie uprawnienia, a druga i ostatnia cyfra (5) oznaczają, że zarówno „grupa”, jak i „inne” mają uprawnienia do odczytu i wykonywania. Możesz dodać użytkownika do grupy i dać pełne uprawnienia również grupie, abyś nie musiał wprowadzać tylu zmian.
Samuel

Odpowiedzi:


11

W takim przypadku pozostawiłbym własność katalogu w spokoju. Aby zmodyfikować uprawnienia do tego konkretnego katalogu, aby można było do niego pisać, ustaw uprawnienia do odczytu / zapisu, przy czym polecenie to sudo chmod 766 -R /var/www/html. Spowoduje to przypisanie pełnych uprawnień 7właścicielowi, odczyt / zapis 6dla grupy oraz odczyt / zapis dla wszystkich 6, rekurencyjnie.


9

Możesz stać się właścicielem tego katalogu

sudo chown pi /var/www/html

Ale zdecydowanie chcesz ustawić uprawnienia

chmod 755 -R /var/www/html

Użycie opcji -R (rekurencyjnej) upewni się, że pliki skryptów i plik .htaccess są ustawione tak samo.


Ilekroć dodajesz nowy skrypt, pamiętaj, aby ustawić go również w ten sposób.

chmod 755 /var/www/html/cgi-bin/newscript.cgi

Pamiętaj, że niektóre programy CGI mają własne wymagania, takie jak

Logger dla odwiedzających witrynę Bestdam + licznik trafień

Fragment:

Otwórz plik bdlogger.pl w edytorze tekstu i, jeśli to konieczne, zmodyfikuj linię shebang.

Na serwerze utwórz podkatalog bdlogger w katalogu cgi-bin i prześlij do niego pliki skryptów i danych w trybie ASCII

Jeśli używasz serwera UNIX / Linux, chmod pliki:

bdlogger.pl to 755
all other files to 666

Dodaj następujący tag dyrektywy SSI do swoich stron internetowych:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->

5

Musisz ustawić właściciela folderu www z „root” na „ja”.

Z poziomu terminala uruchom polecenie:

sudo chown -R your_system_username /var/www

Mam nadzieję, że to działa !!


2

Mimo że powyższe odpowiedzi w zasadzie się przydadzą, jest to zdrowsze podejście. Możliwe, że chcesz zmodyfikować pliki w katalogu / var / www / html, ponieważ chcesz dodać aplikację internetową do obsługi Apache2. Aby to osiągnąć, musisz wykonać następujące kroki

  1. Dodaj użytkownika do grupy użytkowników, www-dataktóra ma domyślną własność folderu. Dlaczego? Ponieważ jeśli zamierzasz dynamicznie wprowadzać zmiany w aplikacji sieci Web, nawet jeśli jest ona włączona, wordpressużytkownicy w tej grupie będą musieli mieć uprawnienia do zapisu. Aby to zrobić, po prostu napisz: sudo adduser username grouptoaddW naszym przypadku będzie sudo adduser username www-data.
  2. Następnie musisz zmienić sposób read/write permissionskorzystania z chmodpolecenia. Pamiętaj, że jesteś teraz częścią grupy użytkowników i nie musisz zmieniać właściciela za pomocą chown. Aby to zrobić, po prostu uruchom:, sudo chmod -R 766 directoryw tym przypadku będzie sudo chmod -R 766 html. Jeśli czujesz się sportowo, możesz uzyskać pełne uprawnienia do zapisu (777), w zależności od bezpieczeństwa aplikacji.

-RJest przeznaczona jest do funkcji rekurencyjnej, pozwalając polecenie stosuje się do wszystkich podkatalogów. Mam nadzieję, że to pomaga komuś w potrzebie.

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.