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


52

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



2
Saya pikir, ini tidak menabrak, melainkan hanya membatalkan proses boot di beberapa titik. Jika Anda melihat /var/log/syslog, Anda bahkan akan mencari tahu alasannya.
Hi-Angel

7
Penting untuk mengetahui bahwa meskipun hal ini tidak merusak, itu tidak akan "memberikan izin kepada semua untuk melakukan apa pun". Masih akan ada sejumlah besar tindakan yang hanya dapat dilakukan "root" (lebih tepatnya, proses dengan UID nol yang efektif) dapat dilakukan.
zwol

6
@Glen jika dengan "terkait", maksud Anda "duplikat persis yang menunjukkan mengapa kami harus dapat menandai sebagai penipuan di seluruh situs", maka tentu saja! tautan bagus ;)
underscore_d

4
Saya benar-benar SENANG mendengar cerita tentang Anda yang datang untuk menanyakan pertanyaan ini.
Dewi Morgan

Jawaban:


104

Ada beberapa alasan.

Pertama selain izin baca / tulis / eksekusi biasa ada beberapa bit lain yang berisi izin file. Terutama setuiddan setgid. Ketika sebuah program dengan salah satu dari bit izin ini diatur dijalankan, ia akan mendapatkan "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 sudan sudo. chmodPerintah Anda menghapus bit-bit ini meninggalkan utilitas tidak dapat digunakan.

Kedua beberapa program (terutama ssh) melakukan pemeriksaan kewarasan pada izin file dan menolak untuk menggunakan file dengan izin yang mereka anggap tidak aman. Ini mengurangi risiko admin lalai secara tidak sengaja meninggalkan lubang keamanan tetapi itu membuat berurusan dengan izin file yang dihapus semua semakin menyakitkan.


41

Jawaban singkat.

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

Ketika Anda menjalankan 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 bahwa banyak program sistem dirancang dengan cara yang tidak dimulai jika mereka "tidak suka" izin. Ini dibuat untuk alasan keamanan.

Saya pikir lebih penting untuk menjelaskan bagaimana menangani desain sistem dalam paractice daripada menjelaskan mengapa masing-masing program gagal untuk bekerja dengan permissons yang salah.

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

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


11
Mungkin seseorang akan meluangkan waktu dan membuat jawaban terinci ;-)
Pilot6

1
Saya bisa menunjukkan cara yang lebih baik untuk memungkinkan semua orang melakukan segala sesuatu pada sistem ini - tetapi menulis artikel mendalam tentang mengapa masing-masing biner memerlukan izin, pengaturan, dan bendera spesifiknya agak terlalu banyak, imho. ;-)
Phillip -Zyan K Lee- Stockmann

4
Sistem Linux tidak dirancang untuk memungkinkan semua orang melakukan semuanya. Anda dapat mengaktifkan akun root dan semua orang dapat login sebagai root untuk itu. Itu bodoh, tapi ini jalannya.
Pilot6

9
Jadi Pilot6 maksud Anda mengatakan bahwa program sistem dirancang sedemikian rupa sehingga jika izinnya salah maka tidak diizinkan / dapat berfungsi dengan baik? Dan Harap Pilot6 jika memungkinkan tolong berikan jawaban yang lebih dalam dengan contoh dan penjelasan mengapa aplikasi tertentu memerlukan izin terbatas. Terima kasih.
Brij Raj Kishore

13
@Goldname Kecelakaan adalah kesalahan - ini adalah sejumlah program yang mengatakan "Saya tidak bisa melakukan fungsi kritis dengan sistem di negara ini, jadi saya batal"
Shadur

32

chmod memiliki nuansa halus.

chmod 0777berperilaku berbeda dari chmod u+rwx,g+rwx,o+rwxdalam bahwa setuid dan setgid di - nolkan oleh yang pertama dan diawetkan oleh yang terakhir.

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

Berikut 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 lusinan entri noise di cache dan log.


3
Beraninya aku bertanya-tanya mengapa gnuchess dan nakal ada di daftar itu?
WiseOldDuck

2
@WiseOldDuck: Saya berharap game memiliki bit sehingga mereka dapat memperbarui file "skor tinggi" mereka tetapi tidak mengizinkan pengguna yang tidak memiliki hak untuk melakukannya.
wallyk

3
@WiseOldDuck Seperti kata wallyk, plus, ingat setuid tidak perlu harus menggunakan root (dan afaik setgid tidak terlalu berguna untuk root)
StarWeaver

5
Sudah mau repot menjelaskan apa yang chmodsedang dilakukan dan memberikan contoh bukti, sesuatu yang sangat kurang di tempat lain.
underscore_d

1
Apakah ini berarti chmod u+rwx,g+rwx,o+rwx -R /tidak akan merusak sistem?
Dennis Jaheruddin

15

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

Bit sticky adalah izin khusus yang, sementara memungkinkan siapa pun untuk membuat file /tmp, hanya memungkinkan orang yang membuatnya untuk memindahkan atau menghapusnya.


4
"dan ini akan mencegah siapa pun selain root dari menggunakan direktori sistem / tmp." - Itu sepertinya tidak benar. Masih memungkinkan siapa pun untuk menggunakan direktori sistem / tmp. Tidak diperlukan sedikit pun lengket jika pengguna, grup, dan lainnya semuanya memiliki semua hak. Namun, itu akan memungkinkan siapa saja untuk menghapus file orang lain.
hvd

1
jadi 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 sedikit mengubah pos untuk mencerminkannya.
Ben XO

@ Brijajishishore, pertanyaannya tetap tentang mengapa Anda melakukan ini di tempat pertama. Ubuntu dan program yang menyusunnya tidak dirancang untuk dijalankan "tanpa izin", karena berbagai alasan. Akan lebih masuk akal untuk "su" untuk melakukan root.
Ben XO

1
Tidak diketahui apakah akan menyebabkan crash. Sangat mungkin bahwa itu akan terjadi, karena tiba-tiba aplikasi akan dapat melakukan hal-hal untuk file sementara satu sama lain - 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 lengket pada setiap folder pada sistem dapat menyebabkan banyak masalah lainnya, dengan aplikasi yang diharapkan dapat memanipulasi program karena izin grup pada folder (yaitu folder dengan izin 2777).
Ben XO
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.