/ Var / www / html için izinleri değiştirme


12

Bu konuyu bir süredir inceledim https://help.ubuntu.com/community/FilePermissions ve bir sebepten ötürü çalışamıyor.

Özellikle, bu hatlar beni en çok ilgilendiren şey:

Belirli bir dizin altındaki her dosya ve klasörün tüm izinlerini bir kerede değiştirmek için, sudo chmod'u -R ile kullanın

$ 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

İşte yazdıklarım:

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

Sonra sftp herhangi bir değişiklik kontrol:

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

Çıktıdan, html dizininin yalnızca kök tarafından değiştirilebileceği açıktır.

Bunu (root olmayan) html dizinine dosya yükleyecek şekilde nasıl değiştirebilirim?

Ayrıca test ettim:

Bir dosyanın sahibi chown komutu kullanılarak değiştirilebilir. Örneğin, foobar dosyasının sahibini tux olarak değiştirmek için:

$ sudo chown tux foobar

Sunucudan yazdım:

sudo chown mark owner

etkisi yok.


Özyinelemeli için -r seçeneğini kaçırıyorsunuz. Ve 777 -never- yapmak için doğru değişiklik (t seçeneğini (yapışkan bit) de ayarlamadığınız sürece) Soru: dir neden 2. komutta boş ve 3. komutta index.html ile dolu? aynı durumlarla yayınlandı, sudo chown mark ownerne yapmalıyım? Oraya "sahip" adında bir dosya veya dizin nasıl tanıtıyorsunuz?
Rinzwind

Bir dosya veya dizinin sahipliğini almak için yeni sahibin kim olduğunu, grubu (isteğe bağlı) ve dosya veya dizini belirtmeniz gerekir. Örneğin sudo chown user:user mydocs, yeni sahip ve grubun olduğu userve sahipliğini aldığınız dizinmydocs
Gansheim

1
Bu durumda, dizinin sahipliğini tek başına bırakabilirim, bu dizinin izinlerini değiştirmek için yazabilirsiniz, böylece okuma / yazma izinlerini ayarlayabilirsiniz, komut sudo chmod 766 -r /var/www/html
şekildedir

@Rinzwind ls -lkomutu kendi dizinlerinden vermiş gibi görünüyor . @Mark Görüntülemeye / değiştirmeye çalıştığınız dizinde değilseniz, yolu belirtmeniz gerekir, bu durumda şu komutu ls -l /var/www/html
vermelisiniz

1
Adamların işaret ettiği gibi, chmodizinleri chowndeğiştirir, sahibi değiştirir. 755 birinci basamak (7) 'sahip''in tüm izinlere sahip olduğu anlamına gelirken, ikinci ve son basamak (5)' grup 've' diğer 'öğelerinin hem okuma hem de yürütme izinlerine sahip olduğu anlamına gelir. Kullanıcıyı gruba ekleyebilir ve grupta tam izinler verebilirsiniz, böylece bu kadar fazla değişiklik yapmanız gerekmez.
Samuel

Yanıtlar:


11

Bu durumda dizin sahipliğini yalnız bırakardım. Söz konusu dizine ilişkin izinleri, ona yazabileceğiniz şekilde değiştirmek için, okuma / yazma izinlerini ayarlayın, komut sudo chmod 766 -R /var/www/html. Bu 7, sahip için tam izinler atayacak 6, grup için okuma / yazma ve herkes için okuma / yazma 6özyinelemeli olarak atayacaktır .


9

Kendinizi bu dizinin sahibi yapabilirsiniz

sudo chown pi /var/www/html

Ancak kesinlikle izinleri ayarlamak istiyorsunuz

chmod 755 -R /var/www/html

-R (özyinelemeli) seçeneğini kullanmak komut dosyalarınızın ve .htaccess dosyanızın aynı şekilde ayarlandığından emin olur.


Yeni bir komut dosyası eklediğinizde, bunu da bu şekilde ayarladığınızdan emin olun.

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

Bazı CGI programlarının kendi gereksinimleri vardır;

Bestdam Web Sitesi Ziyaretçi Kaydedici + Hit Sayacı

Alıntı:

Bdlogger.pl dosyasını bir metin düzenleyicide açın ve gerekirse, shebang satırını değiştirin.

Sunucuda, cgi-bin dizininizin altında bir bdlogger alt dizini oluşturun ve ASCII modunu kullanarak komut dosyasını ve veri dosyalarını FTP'ye aktarın

UNIX / Linux sunucusu kullanıyorsanız, dosyaları değiştirin:

bdlogger.pl to 755
all other files to 666

Web sayfalarınıza aşağıdaki SSI yönergesi etiketini ekleyin:

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

5

Www klasörü sahibini 'root'tan' Ben 'olarak ayarlamanız gerekir.

Terminalinizden şu komutu çalıştırın:

sudo chown -R your_system_username /var/www

Umarım çalışır!!


2

Yukarıdaki cevaplar hemen hemen hile yapacak olsa da, bu daha sağlıklı bir yaklaşımdır. / Var / www / html içindeki dosyaları değiştirmek isteyebilirsiniz çünkü sunulacak bir web uygulaması eklemek istersiniz Apache2. Bunu başarmak için aşağıdaki adımlara ihtiyacınız vardır

  1. Kullanıcıyı www-data, klasörün varsayılan sahipliği olan Kullanıcı Grubuna ekleyin . Neden? Çünkü web uygulamasında dinamik olarak herhangi bir değişiklik yapmak istiyorsanız, içeri wordpressgirmiş olsa bile , bu gruptaki kullanıcıların yazma izinlerine sahip olması gerekir. Bunu yapmak için sadece şunu yazın: sudo adduser username grouptoaddBizim durumumuzda olacak sudo adduser username www-data.
  2. Sonra komutunu read/write permissionskullanarak değiştirmeniz gerekir chmod. Şimdi kullanıcı grubunun bir parçası olduğunuzu ve sahipliğin değiştirilmesine gerek olmadığını unutmayın chown. Bunu yapmak için sadece çalıştırın:, sudo chmod -R 766 directorybu durumda olacak sudo chmod -R 766 html. Sportif hissediyorsanız (777), uygulamanızın ne kadar güvenli olduğuna bağlı olarak tam yazma izinleri alabilirsiniz .

Bu -R, komutun tüm alt dizinlere uygulanmasına izin veren özyinelemeli bir işlevdir. Umarım bu ihtiyacı olan birine yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.