Mengubah izin untuk / var / www / html

12

Saya telah mempelajari topik ini https://help.ubuntu.com/community/FilePermissions untuk sementara waktu dan tidak dapat membuatnya berfungsi karena suatu alasan.

Terutama, baris-baris ini paling menarik minat saya:

Untuk mengubah semua izin setiap file dan folder di bawah direktori yang ditentukan sekaligus, gunakan sudo chmod dengan -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

Inilah yang saya ketikkan:

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

Kemudian saya memeriksa perubahan di 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

Dari hasilnya jelas bahwa direktori html masih dapat dimodifikasi hanya oleh root.

Bagaimana saya bisa mengubahnya dengan cara saya (non-root) dapat mengunggah file ke direktori html?

Saya juga menguji:

Pemilik file dapat diubah menggunakan perintah chown. Misalnya, untuk mengubah pemilik file foobar ke tux:

$ sudo chown tux foobar

Saya mengetik dari server:

sudo chown mark owner

tidak berpengaruh.

Mark Alexa
sumber
Anda melewatkan opsi -r untuk rekursif. Dan 777 adalah -tidak- perubahan yang benar untuk dilakukan (kecuali jika Anda juga mengatur opsi t (bit sticky). Pertanyaan: mengapa dir kosong pada perintah ke-2 dan diisi dengan index.html pada perintah ke-3? Perintah-perintah itu TIDAK dikeluarkan dengan situasi yang sama. sudo chown mark ownerApa yang seharusnya dilakukan? Kenapa Anda memperkenalkan file atau dir yang disebut "pemilik" di sana?
Rinzwind
Untuk mengambil kepemilikan suatu file atau direktori, Anda harus menentukan siapa pemilik baru, grup (opsional) dan file atau direktori. Misalnya di sudo chown user:user mydocsmana pemilik dan grup baru berada userdan direktori tempat Anda ambil adalahmydocs
Gansheim
1
Dalam hal ini saya akan meninggalkan kepemilikan direktori sendirian, untuk memodifikasi izin untuk direktori tertentu sehingga Anda dapat menulis ke sana, mengatur izin baca / tulis, perintahnya adalahsudo chmod 766 -r /var/www/html
Gansheim
@Rinzwind sepertinya dia mengeluarkan ls -lperintah dari direktori home mereka. @ Markus Kecuali jika Anda berada dalam direktori yang Anda coba lihat / manipulasi, Anda perlu menentukan path, dalam hal ini Anda seharusnya mengeluarkan perintah sebagails -l /var/www/html
Gansheim
1
Seperti yang telah ditunjukkan orang-orang, chmodperubahan izin, chownubah pemilik. 755 digit pertama (7) berarti bahwa 'pemilik' memiliki semua izin, sedangkan digit kedua dan terakhir (5) berarti bahwa 'grup' dan 'lainnya' keduanya telah membaca dan mengeksekusi izin. Anda dapat menambahkan pengguna Anda ke grup dan memberikan izin penuh ke grup juga sehingga Anda tidak perlu melakukan banyak perubahan.
Samuel

Jawaban:

10

Dalam hal ini saya akan meninggalkan kepemilikan direktori sendirian. Untuk memodifikasi izin untuk direktori tertentu sehingga Anda bisa menulis ke sana, atur izin baca / tulis, perintahnya adalah sudo chmod 766 -R /var/www/html. Ini akan memberikan izin penuh 7untuk pemilik, baca / tulis 6untuk grup, dan baca / tulis untuk semua orang 6, secara rekursif.

Gansheim
sumber
9

Anda dapat menjadikan diri Anda pemilik direktori itu

sudo chown pi /var/www/html

Tapi Anda pasti ingin mengatur izin

chmod 755 -R /var/www/html

Menggunakan opsi -R (rekursif) akan memastikan bahwa file skrip dan file .htaccess Anda semuanya disetel sama.


Setiap kali Anda menambahkan skrip baru, pastikan untuk mengaturnya juga.

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

Perhatikan bahwa beberapa program CGI memiliki persyaratan sendiri, seperti

Pencatat Pengunjung Situs Web Bestdam + Penghitung Hit

Kutipan:

Buka file bdlogger.pl dalam editor teks dan jika perlu, modifikasi baris shebang.

Di server, buat subdirektori bdlogger di bawah direktori cgi-bin Anda dan FTP skrip dan file data ke dalamnya menggunakan mode ASCII

Jika Anda menggunakan server UNIX / Linux, chmod file:

bdlogger.pl to 755
all other files to 666

Tambahkan tag arahan SSI berikut ke halaman Web Anda:

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

Anda perlu mengatur pemilik folder www dari 'root' ke 'Me'.

Dari terminal Anda, jalankan perintah:

sudo chown -R your_system_username /var/www

Semoga Berhasil !!

Jenius
sumber
2

Meskipun jawaban di atas cukup banyak membantu, ini adalah pendekatan yang lebih sehat. Kemungkinan Anda ingin memodifikasi file di dalam / var / www / html karena Anda ingin menambahkan aplikasi web untuk dilayani Apache2. Untuk mencapai ini, Anda perlu langkah-langkah berikut

  1. Tambahkan pengguna ke Usergroup www-datayang memiliki kepemilikan default folder. Mengapa? Karena jika Anda bermaksud untuk membuat perubahan apa pun di aplikasi web secara dinamis, bahkan jika itu dalam wordpress, Anda akan memerlukan pengguna dalam grup ini untuk memiliki izin menulis. Untuk melakukan ini cukup menulis: sudo adduser username grouptoaddDalam kasus kami akan sudo adduser username www-data.
  2. Selanjutnya Anda perlu mengubah perintah read/write permissionsmenggunakan chmod. Ingat sekarang Anda adalah bagian dari grup pengguna dan tidak perlu mengubah kepemilikan menggunakan chown. Untuk melakukan ini jalankan saja:, sudo chmod -R 766 directorydalam hal ini akan sudo chmod -R 766 html. Jika Anda merasa sporty, Anda bisa mendapatkan izin menulis penuh (777), tergantung seberapa aman aplikasi Anda.

Yang -Rdimaksud adalah fungsi rekursif, yang memungkinkan perintah untuk diterapkan ke semua subdirektori. Saya harap ini membantu seseorang yang membutuhkan.

AntonyMN
sumber