Jika kami memeriksa kepemilikan situs1, kami akan menemukan sesuatu seperti ini,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Ini berarti bahwa direktori tersebut dimiliki oleh root pengguna, root grup. Meskipun root pengguna memiliki izin menulis (ditambah izin baca dan eksekusi) ke direktori, root grup hanya membaca dan mengeksekusi izin.
Kami ingin mengubah kepemilikan grup ke grup (baru) lain dan menambahkan user1 ke grup tersebut. Kami akan memberikan izin tertulis kepada grup tersebut juga.
Buat grup baru,
sudo addgroup site1
Tambahkan user1 ke grup yang baru dibuat,
sudo adduser user1 site1
Periksa apakah user1 benar-benar dalam grup itu,
groups user1
Outputnya harus berupa daftar,
user1 : <other-groups> site1
Sekarang kita dapat mengubah kepemilikan grup dari direktori yang diinginkan.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Berikan izin tertulis kepada pemilik grup baru ini,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Periksa apakah semua perubahan memang ada,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Jadi, direktori sekarang dimiliki oleh root pengguna, grup site1. Root pengguna dan grup situs1 memiliki izin menulis (ditambah izin baca dan eksekusi) ke direktori. Setiap pengguna yang tergabung dalam situs grup1 akan menikmati semua hak istimewa yang diberikan kepada grup itu.
Sekarang login sebagai user1, pindah ke direktori site1 dan cobalah untuk membuat file di direktori itu,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Ini gagal karena kemungkinan besar grup utama user1 bukan site1. Jadi, ubah ke grup itu.
newgrp - site1
Cobalah untuk membuat ulang file (berhati-hatilah karena Anda telah dipindahkan ke direktori home user1 setelah mengubah grup), ini seharusnya berfungsi sekarang. Karena file yang dibuat akan memiliki izin baca dunia, apache (atau server web Anda) tidak akan menghadapi masalah mengaksesnya.
EDIT
Juga, seperti yang ditunjukkan oleh dan08 dalam komentar, Anda perlu menambahkan www-data ke grup site1.
sudo adduser www-data site1
Pada banyak (tidak semua) distribusi, www-data adalah pengguna di mana server web Apache berjalan. Ini juga berarti bahwa semua yang dilakukan oleh Apache (terutama termasuk skrip PHP) akan dilakukan dengan izin data pengguna www (dan juga kelompok data www) secara default. WordPress menggunakan data-pengguna www untuk menulis file.
Jika Anda ingin melihat bagaimana server web apache berjalan, jalankan perintah,
ps aux | grep apache2 | less
Permission denied
pesan bukan karena "kelompok utama", melainkan pengguna belum benar-benar berada dalam kelompok yang (sejauh OS yang bersangkutan). Jika Anda logout dan kembali, itu akan berfungsi seperti yang diharapkan (tanpa berjalannewgrp - site1
).www-data
akses group tulis jika Anda akhirnya harus menambahkanwww-data
kesite1
lagian?www-data' write permissions? If that is the question,
www-data 'bukan grup, itu adalah pengguna. Tolong beri tahu saya jika saya salah mengerti pertanyaan Anda.Buat dua grup:
site1grp
dansite2grp
Tambahkan
www-data
ke kedua grup.Tambahkan user1 dan user2 ke grup yang sesuai
Ubah izin folder situs Anda sehingga pemilik pengguna adalah www-data dan pemilik grup adalah grup yang sesuai
Sekarang
www-data
memiliki izin pengguna dan grup di kedua situs dan setiap pengguna memiliki izin grup untuk situs masing-masing.sumber
Bagi mereka yang memiliki folder root wordpress di bawah folder home mereka:
Ubuntu / apache
Tambahkan pengguna Anda ke grup www-data:
KREDIT Pemberian izin menulis ke grup data-www
Anda ingin memanggil
usermod
pengguna Anda. Jadi itu akan menjadi:Dengan asumsi
www-data
ada grupPeriksa pengguna Anda dalam
www-data
grup:Anda harus mendapatkan sesuatu seperti:
namaUserGroupName Anda biasanya mirip dengan nama pengguna Anda
Ubah kepemilikan grup folder secara rekursif untuk menjaga kepemilikan pengguna Anda
Ubah direktori ke Folder Web Anda
Secara berkala mengubah premis grup dari folder dan sub-folder untuk memungkinkan izin menulis:
mode
/home/yourUserName/yourWebSiteFolder/'
diubah dari0755 (rwxr-xr-x)
menjadi0775 (rwxrwxr-x)
Secara berkala mengubah premis grup dari file dan sub-file untuk memungkinkan izin menulis:
Hasilnya akan terlihat seperti:
Setara dengan:
Izinnya akan seperti 664 atau 775.
sumber
Anda harus membuat grup baru, untuk, yang disebut, "pengguna baru", dan kemudian menambahkan data-www dan "pengguna baru" ke grup itu:
Kemudian Anda dapat mengubah pemilik ke
new_user
dan grup kenew_group
:Maka Anda perlu memberikan akses tingkat grup ke situs1. www-data akan tetap dapat mengakses situs, karena itu milik new_group, sementara new_user tidak akan dapat mengakses situs2, karena ia tidak akan menjadi milik grup data-www, yang memiliki situs2.
sumber
chmod
)? Jawaban Anda tidak menyebutkan mode di mana pun yang dapat membuat perbedaan menjadi aman (atau merusak barang).chmod
) dengan mencabut semua izin untuk ORANG LAIN.Dengan asumsi semua file sudah menjadi milik
www-data
pengguna (Anda dapat memeriksanya denganls -slah
perintah) yang milikwww-data
grup (kolom berikutnya setelah nama pengguna dalam daftar file), Anda bisa menambahkan pengguna Anda kewww-data
grup yang sama untuk memungkinkan pengeditan file-file iniuntuk pengguna yang ada, atau
untuk yang baru dibuat
sumber