Pertanyaan Mengapa chmod 777 -R / membiarkan sistem tidak dapat digunakan?


Saya hanya memberikan izin kepada semua untuk melakukan apa pun tetapi mengapa sistem crash dengan hanya memberikan izin? Saya hanya memodifikasi izin tidak mengubah file.


52
2017-07-17 20:48


asal


Terkait: serverfault.com/questions/364677/why-is-chmod-r-777-destructive - Glen
Saya pikir, itu tidak menabrak, melainkan hanya membatalkan proses booting di beberapa titik. Jika Anda melihatnya /var/log/syslog, Anda bahkan mencari tahu alasannya. - Hi-Angel
Penting untuk mengetahui bahwa bahkan jika ini tidak merusak sesuatu, itu akan terjadi tidak "berikan izin kepada semua untuk melakukan apa saja". Masih akan ada sejumlah besar tindakan yang hanya "root" (lebih tepatnya, proses dengan nol UID efektif) bisa dilakukan. - zwol
@Glen jika oleh "terkait", maksud Anda "duplikat persis yang menunjukkan mengapa kita harus dapat menandai sebagai dupe di seluruh situs", maka tentu! tautan yang bagus. ;) - underscore_d
Saya sangat ingin mendengar cerita tentang Anda datang untuk menanyakan pertanyaan ini. - Dewi Morgan


Jawaban:


Ada beberapa alasan.

Pertama selain izin baca / tulis / jalankan yang biasa ada beberapa bit lain yang berisi izin file. Terutama sekali setuid dan setgid. Ketika sebuah program dengan salah satu dari bit izin ini diatur dijalankan, ia mendapat "UID efektif" dan / atau "GID efektif" dari pemilik program daripada pengguna yang menjalankannya. Ini memungkinkan program berjalan dengan lebih banyak izin daripada pengguna yang menjalankannya. Ini digunakan oleh banyak utilitas sistem penting termasuk su dan sudo. Anda chmod perintah membersihkan bit-bit ini sehingga utilitas tidak dapat digunakan.

Kedua beberapa program (khususnya ssh) melakukan pemeriksaan kewarasan pada izin file dan menolak untuk menggunakan file dengan izin yang mereka lihat tidak aman. Hal ini mengurangi risiko admin yang ceroboh secara tidak sengaja meninggalkan lubang keamanan tetapi itu membuat berhadapan dengan izin file yang dihapus semua semakin menyakitkan.


103
2017-07-18 02:37





Jawaban singkat.

Sistem Linux membutuhkan izin khusus untuk program tertentu seperti sudo, dll.

Saat Anda berlari chmod 777 -R / Anda menghapus semua izin dan menggantinya dengan 777. Ini membuat sistem tidak dapat digunakan kecuali Anda mengembalikan semua izin secara manual.

Dalam praktiknya jauh lebih cepat dan lebih mudah untuk menginstal ulang.

Masalahnya adalah banyak program sistem dirancang dengan cara yang tidak dimulai jika mereka "tidak suka" izin. Ini dibuat untuk alasan keamanan.

Saya pikir itu lebih penting untuk menjelaskan bagaimana menangani desain sistem dalam paraktek daripada menjelaskan mengapa setiap program gagal bekerja dengan izin yang salah.

Jika Anda benar-benar ingin semua pengguna memiliki izin tidak terbatas di Ubuntu, Anda dapat menambahkan semua pengguna ke sudo grup alih-alih mengubah izin file dan direktori. Itu akan memiliki efek yang sama, tetapi tidak akan merusak sistem.

Cara lain (yang sangat buruk) adalah untuk mengaktifkan akun root dan memungkinkan semua orang masuk sebagai root.


39
2017-07-17 20:54



Mungkin seseorang akan mengambil waktu dan membuat jawaban rinci ;-) - Pilot6
Saya bisa menunjukkan cara yang lebih baik untuk memungkinkan semua orang melakukan semua hal di sistem ini - tetapi menulis artikel yang mendalam tentang mengapa setiap biner memerlukan perizinan, setelan, dan penandaannya agak terlalu banyak, imho. ;-) - Phillip -Zyan K Lee- Stockmann
Sistem Linux tidak dirancang untuk memungkinkan semua orang melakukan segalanya. Anda dapat mengaktifkan akun root dan semua orang dapat masuk sebagai root untuk itu. Itu bodoh, tapi begini caranya. - Pilot6
Begitu Pilot6 Anda bermaksud mengatakan bahwa program sistem telah dirancang sedemikian rupa sehingga jika izin salah maka mereka tidak diizinkan / dapat berfungsi dengan baik? Dan tolong Pilot6 jika memungkinkan berikan jawaban yang lebih dalam dengan contoh dan penjelasan mengapa aplikasi tertentu memerlukan izin terbatas. Terima kasih. - Brij Raj Kishore
@Goldname Kecelakaan aku s kesalahan - itu seluruh jumlah program yang mengatakan "Saya tidak dapat melakukan fungsi-fungsi penting dengan sistem dalam keadaan ini, jadi saya membatalkan" - Shadur


chmod memiliki nuansa halus.

chmod 0777 berperilaku berbeda chmod u+rwx,g+rwx,o+rwx karena itu setuid dan setgid dimaksimalkan oleh yang pertama dan diawetkan oleh yang terakhir.

Itu sebabnya sistem menjadi tidak dapat digunakan. Anda dihapus diperlukan setuid dari beberapa program.

Berikut ini adalah daftar file setuid atau setgid di laptop Linux Fedora 23 saya:

[root@fedora23lnvr61]# find / -perm /g+s,u+s
/var/log/journal
/var/log/journal/75e870eb13c74fbf97556a32ecf80ea2
/opt/google/chrome/chrome-sandbox
/usr/bin/rogue
/usr/bin/gnuchess
/usr/bin/locate
/usr/bin/umount
/usr/bin/lbrickbuster2
/usr/bin/gpasswd
/usr/bin/crontab
/usr/bin/fusermount
/usr/bin/su
/usr/bin/at
/usr/bin/newuidmap
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/mount
/usr/bin/chsh
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/chage
/usr/bin/chfn
/usr/bin/write
/usr/bin/newgidmap
/usr/sbin/mount.nfs
/usr/sbin/lockdev
/usr/sbin/netreport
/usr/sbin/userhelper
/usr/sbin/usernetctl
/usr/sbin/unix_chkpwd
/usr/sbin/pam_timestamp_check
/usr/libexec/kde4/kdesud
/usr/libexec/kde4/kpac_dhcp_helper
/usr/libexec/dbus-1/dbus-daemon-launch-helper
/usr/libexec/qemu-bridge-helper
/usr/libexec/openssh/ssh-keysign
/usr/libexec/spice-gtk-x86_64/spice-client-glib-usb-acl-helper
/usr/libexec/utempter/utempter
/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
/usr/libexec/Xorg.wrap
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/lib64/vte-2.90/gnome-pty-helper
/usr/lib64/virtualbox/VBoxSDL
/usr/lib64/virtualbox/VirtualBox
/usr/lib64/virtualbox/VBoxNetNAT
/usr/lib64/virtualbox/VBoxHeadless
/usr/lib64/virtualbox/VBoxNetDHCP
/usr/lib64/virtualbox/VBoxNetAdpCtl
/usr/lib64/virtualbox/VBoxVolInfo
/usr/lib64/vte/gnome-pty-helper
[root@fedora23lnvr61]# 

Saya menghapus puluhan entri noise di cache dan log.


32
2017-07-18 17:21



Beraninya aku bertanya-tanya mengapa gnuchess dan nakal ada di daftar itu? - WiseOldDuck
@WiseOldDuck: Saya berharap game memiliki sedikit sehingga mereka dapat memperbarui file "skor tinggi" tetapi tidak mengizinkan pengguna yang tidak berhak untuk melakukannya. - wallyk
@WiseOldDuck Seperti yang dikatakan wallyk, plus, ingat setuid tidak harus menggunakan root secara nessecarially (dan setgid afaik tidak terlalu berguna untuk root) - StarWeaver
Karena mau repot menjelaskan apa chmod melakukan dan memberikan contoh bukti, sesuatu yang sangat kurang di tempat lain. - underscore_d
Apakah ini berarti itu chmod u+rwx,g+rwx,o+rwx -R / tidak akan merusak sistem? - Dennis Jaheruddin


Tambahan untuk balasan lainnya: Anda juga menghapus "bit lengket" dari /tmp (yang biasanya memiliki izin 1777), dan ini dapat menyebabkan masalah tak terduga lainnya, karena program akan dapat menulis atau menghapus file sementara satu sama lain.

Bit yang lengket adalah izin khusus yang memungkinkan seseorang untuk membuat file /tmp, hanya memungkinkan orang yang membuatnya untuk memindahkan atau menghapusnya.


15
2017-07-19 13:01



"Dan ini akan mencegah siapa pun kecuali root dari menggunakan sistem / direktori tmp." - Sepertinya itu tidak benar. Itu akan tetap memungkinkan siapa pun untuk menggunakan direktori sistem / tmp. Tidak perlu sedikit lengket jika pengguna, grup, dan lainnya memiliki semua hak. Itu akan, bagaimanapun, memungkinkan siapa pun untuk menghapus file orang lain. - hvd
begitu Ben Jika saya menjalankan chmod 1777 -R / maka seharusnya tidak ada masalah karena saya tidak membersihkan bit yang lengket? - - Brij Raj Kishore
Terima kasih @hvd - Anda benar dan saya telah mengubah pos sedikit untuk mencerminkan itu. - Ben XO
@BrijRajKishore, pertanyaannya tetap mengapa Anda melakukan ini di tempat pertama. Ubuntu dan program-program yang menyusunnya tidak dirancang untuk dijalankan "tanpa izin", karena berbagai alasan. Akan lebih masuk akal untuk "su" untuk melakukan root sebagai gantinya. - Ben XO
Tidak diketahui apakah itu akan menyebabkan kecelakaan. Sangat mungkin bahwa itu akan terjadi, karena tiba-tiba aplikasi akan dapat melakukan hal-hal untuk masing-masing file sementara lainnya - mungkin secara tidak sengaja - dan ini dapat menyebabkan crash. Karena Ubuntu tidak pernah diuji seperti ini, Anda mungkin akan menjadi orang pertama yang mengetahuinya. :-) Di sisi lain, pengaturan bit yang melekat pada setiap folder pada sistem dapat menyebabkan banyak masalah lain, dengan aplikasi yang mengharapkan dapat memanipulasi program karena izin grup pada folder (yaitu folder dengan izin 2777). - Ben XO