Masalah izin FTP dan Apache

10

Saya mengalami masalah pengguna mana yang harus memiliki direktori www - ftp atau apache? Ketika diatur ke pengguna ftp, pengguna dapat menambahkan, menghapus dan dengan mudah memodifikasi file tetapi tindakan sistem file php menghasilkan kesalahan yang ditolak izin (tentu saja karena mereka mengharuskan pengguna untuk menjadi apache). Namun, jika direktori www dicolok ke apache, ftpuser tidak akan dapat melakukan beberapa tindakan seperti modifikasi dan penghapusan file. Adakah yang pernah mengalami masalah serupa? Apa masalahnya? Terima kasih

sinar
sumber

Jawaban:

12

Inilah gunanya kelompok.

Anda dapat menambahkan ftppengguna ke apachegrup, dan sebaliknya. Atau, bahkan lebih baik, Anda bisa menambahkannya ke grup ketiga yang Anda buat khusus untuk tujuan ini.

misalnya

# groupadd mygroup
# useradd -G mygroup ftp
# useradd -G apache grup saya
# chown -R: mygroup / var / www
# chmod -R g + rw / var / www

Perintah-perintah itu melakukan hal berikut:

  1. Membuat grup baru 'grup saya'
  2. Menambahkan pengguna ftp ke mygroup
  3. Menambahkan pengguna apache ke mygroup
  4. Secara rekursif memberikan kepemilikan grup ke konten / var / www / ke mygroup
  5. Secara rekursif memberikan grup izin baca & tulis untuk konten / var / www /

Anda hanya perlu memastikan bahwa file yang ditambahkan di masa mendatang adalah milik grup 'mygroup' dan memiliki izin yang sesuai untuk apache dan ftp untuk membaca / menulisnya.

hobodave
sumber
3
Menggabungkan " find /var/www -type d -print0 | xargs -0 chmod g+s /var/www" dengan umask 002 akan memastikan bahwa file dan direktori baru di / var / www mewarisi grup yang sesuai dan izin bagi grup untuk memiliki akses r / w. Banyak distribusi Linux sekarang default untuk umask 002 (yang sama yang default untuk membuat grup baru untuk setiap pengguna baru)
freiheit
Jawaban ini bekerja dengan sempurna! Tapi saya punya satu masalah di mana pengguna masih dapat melihat semua direktori lain di luar var/wwwapakah ada metode untuk membatasi ini?
maxisme
3
Baris 2 dan 3 tidak akan berfungsi jika pengguna sudah ada (di CentOS 7). Dalam hal ini gunakan usermodmisalnyausermod -G mygroup ftp
nick
Sederhana, jelas, dapat dimengerti! Sempurna! Terima kasih, @hobodave!
GTodorov
4

Sebagian besar konten Anda harus dimiliki oleh pengguna selain dari apache. Dengan asumsi Anda menggunakan FTP untuk memperbarui konten Anda, Anda dapat mengatur semua file yang akan dimiliki oleh ftp: apache. Saya akan menyarankan menggunakan SCP untuk SFTP daripada ftp. File harus memiliki izin 644 atau 640 dan izin direktori 755 atau 750.

Untuk file dan direktori, aplikasi perlu menulis untuk menambahkan akses tulis grup.

BillThor
sumber
0

Saya memiliki masalah yang sama dengan halaman php yang dibangun yang akan menyalin folder di server dengan nama yang berbeda. Saya memperbaikinya dengan mematikan mode aman php.

karl
sumber
2
PHP safe mode ada karena suatu alasan. Mematikannya sama sekali bukan ide yang bagus.
user9517