Saya memiliki kotak Linux yang dibagikan oleh berbagai pengembang. Mereka ingin menyebarkan file perang mereka di apache tomcat yang di lokasi bersama (/ opt / tomcat).
Karena mereka tidak memiliki akses sudo, saya harus mengubah izin folder untuk direktori kucing jantan.
struktur direktori di bawah /opt/tomcat
adalah -
bin/
conf/
lib/
logs/
temp/
webapps/
work/
Apa praktik terbaik dalam situasi di atas - Izin akses yang paling cocok untuk pengguna? Untuk saat ini, saya telah mengubah izin menjadi 777 ke webapps dan log.
Terima kasih
+s
menetapkan ID pengguna / grup? Halaman manual mengatakan+t
sedikit lengket.The
Non-Tomcat settings
bagian howto keamanan Tomcat menyediakan informasi yang berguna tentang topik ini. Lihat disini:sumber
Anda harus mengikuti prinsip hak istimewa yang paling rendah . Server (mungkin
www-data
, tetapi Anda harus memeriksa) harus dapat membaca sebagian besar file (katakanlah semua) dan menulis dalam log saja. Pengembang web diizinkan menulis di tempat yang mereka butuhkan. Atur bit sticky pada direktori sehingga hanya pemilik file yang dapat menghapusnya.Dalam praktiknya Anda perlu membuat grup (misalnya
webdev
) dan menambahkan semua pengembang dan server ke dalamnya (usermod -aG webdev <user>
atauusermod -A webdev <user>
tergantung pada rasa Linux Anda).chown
semua file dan direktori ke pengguna server web, chmod semua direktori menjadi 500 dan semua file menjadi 400 (kecuali dibin
mana executable perlu 500 juga).Berikan izin menulis
/opt/tomcat
ke grup (yang akan menjadi 570) dan atur bit sticky sehingga mereka hanya dapat menghapus file yang mereka miliki (chmod 1570). Berikan server menulis izin untuk log, dan membaca izin untuk pengembang (0740 untuk folder, 0640 untuk file, bit lengket mungkin tidak diperlukan, dan tidak pernah memberikannya ke file, hanya folder, karena memiliki arti berbeda (dijalankan dengan izin pemilik ketika file dapat dieksekusi))Maka Anda harus memberikan izin menulis (1570) ke
webdev
beberapa direktori. Anda akan memerlukan beberapa percobaan dan kesalahan di sini, dan itu bisa jadi tergantung pada aplikasi. Folder-folder itu harus 1570, sementara yang lain mungkin 0500).Pengembang perlu memberikan akses baca pada file mereka ke grup sehingga server dapat membacanya (itu 640), dan juga mengeksekusi pada direktori (itu 750).
sumber
Saya pikir jawaban yang diterima @ intropedro adalah jawaban yang bagus. Perlu ditunjukkan bahwa menggunakan penginstal paket dapat menghemat banyak sakit kepala - setidaknya untuk Tomcat 7 di Ubuntu
apt-get install tomcat7
menghasilkan lebih banyak "standar" set direktori instalasi adalah:/etc/tomcat7
untuk file konfigurasi,/var/lib/tomcat7
untuk pustaka inti, dan/usr/share/tomcat7
untuk sumber daya bersama.Semua izin diatur dengan benar dengan prinsip privilege paling rendah, sehingga menambahkan pengguna ke grup
tomcat7
sudah cukup untuk memungkinkan penyebaran. Lebih lanjut, tomcat server diatur sebagai layanan yang dapat dimulai dan dihentikan seperti yang lain (misalnyasudo service tomcat start
atau sebagai alternatif/etc/init.d/tomcat start
). Tomcat dimulai saat reboot secara otomatis, dan ada perintah "restart". Saya yakin ada paket yum yang setara untuk pengguna RHEL / CentOS. (Dan ya, ada penginstal homebrew untuk instalasi OSX lokal).Jika Anda mengalami masalah, ada utilitas bagus yang
/usr/share/bin
disebutconfigtest.sh
laporan jika ada izin atau kesalahan lainnya. Catatan, ada bug terbuka yang menyarankan menambahkan beberapa tautan simbolik .Kami masih menjalankan Ubuntu
trusty
(14.04); untuk mereka yang menjalankan versi yang lebih baru, saya percaya ada repo apt-get Tomcat 8.sumber