Вопрос Почему chmod 777 -R / оставляет систему непригодной для использования?


Я только разрешаю всем делать что-либо, но почему система сбой, предоставляя только разрешения? Я только изменяю разрешение, не изменяя файлы.


52
2017-07-17 20:48


происхождения


Связанный: serverfault.com/questions/364677/why-is-chmod-r-777-destructive - Glen
Я думаю, что это не сбой, а скорее просто прекратите процесс загрузки в какой-то момент. Если вы посмотрите на /var/log/syslog, вы бы даже поняли причину. - Hi-Angel
Важно знать, что даже если это не сломает вещи, это не «дайте разрешение всем делать что угодно». Было бы по-прежнему большое количество действий, которые могли бы выполнять только «root» (точнее, процесс с эффективным UID-нулем). - zwol
@Glen, если «связанным», вы имеете в виду «точный дубликат, который показывает, почему мы должны иметь возможность отмечать как обман между сайтами», то обязательно! отличная ссылка. ;) - underscore_d
Я бы действительно ЛЮБЛЮ, чтобы услышать рассказ о тебе, который задал этот вопрос. - Dewi Morgan


ответы:


Есть несколько причин.

Во-первых, помимо обычных разрешений на чтение / запись / выполнение, существуют некоторые другие биты, которые содержат разрешения файлов. В первую очередь setuid а также setgid, Когда задана программа с одним из этих битов разрешения, она получает «эффективный UID» и / или «эффективный GID» владельца программы, а не пользователь, который ее запускал. Это позволяет программам работать с большим количеством разрешений, чем пользователь, который их запускал. Он используется многими важными системными утилитами, включая su а также sudo, Ваш chmod команда очищает эти биты, оставляя утилиты непригодными.

Во-вторых, некоторые программы (в частности ssh) делают проверку работоспособности на правах доступа к файлам и отказываются использовать файлы с разрешениями, которые они считают небезопасными. Это снижает риск того, что небрежные администраторы случайно оставят дыры в безопасности, но это еще более болезненно относится к разрешенным разрешениям на файлы.


103
2017-07-18 02:37





Короткий ответ.

Система Linux требует определенных разрешений для определенных программ, таких как sudo, и т.д.

Когда вы запускаете chmod 777 -R / вы удалите все разрешения и замените их 777, Это делает систему непригодной для использования, если вы не вручную восстановите все разрешения.

На практике это намного быстрее и проще для переустановки.

Проблема в том, что многие системные программы разработаны так, что они не запускаются, если они «не нравятся» разрешениям. Это сделано по соображениям безопасности.

Я думаю, что более важно объяснить, как обрабатывать дизайн системы в парактике, чем объяснять, почему каждая программа не работает с неправильными разрешениями.

Если вы действительно хотите, чтобы все пользователи имели неограниченные разрешения в Ubuntu, вы можете добавить всех пользователей в sudo вместо изменения прав доступа к файлам и каталогам. Это будет иметь тот же эффект, но не разрушит систему.

Другой способ (очень плохой) - активировать учетную запись root и разрешить всем пользователям входить в систему как пользователь root.


39
2017-07-17 20:54



Может быть, кому-то потребуется время и дать подробный ответ ;-) - Pilot6
Я мог бы указать на лучший способ позволить всем сделать все в этой системе, но написать подробную статью о том, почему каждый бинар нуждается в его конкретных разрешениях, настройках и флагах, слишком много, imho. ;-) - Phillip -Zyan K Lee- Stockmann
Системы Linux не предназначены для того, чтобы все могли делать все. Вы можете включить учетную запись root, и каждый может зарегистрировать ее как root. Это глупо, но так оно и есть. - Pilot6
Так Pilot6 вы хотите сказать, что системные программы были разработаны таким образом, что если разрешение идет не так, они не могут / не могут нормально функционировать? И пожалуйста Pilot6 если возможно, предоставьте более подробный ответ примерами и объяснениями, почему некоторые приложения требуют ограниченных разрешений. Благодарю. - Brij Raj Kishore
@Goldname Сбой является ошибка - это целый ряд программ, говорящих: «Я не могу выполнять критические функции с системой в этом состоянии, поэтому я прерываю» - Shadur


chmod имеет тонкие нюансы.

chmod 0777 ведет себя иначе chmod u+rwx,g+rwx,o+rwx в том смысле, что УИП а также setgid обнуляются первым и сохраняются последним.

Вот почему система стала непригодной для использования. Вы удалили необходимые УИП из нескольких программ.

Ниже приведен список файлов setuid или setgid на моем ноутбуке Linux Fedora 23:

[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]# 

Я удалил десятки записей шума в кешках и журналах.


32
2017-07-18 17:21



Разве я удивляюсь, почему в этом списке жуки и жулик? - WiseOldDuck
@WiseOldDuck: Я ожидаю, что у игр будет бит, чтобы они могли обновить свой файл с высокой оценкой, но не позволяли любому непривилегированному пользователю делать это. - wallyk
@WiseOldDuck Как говорит wallyk, плюс, помните, что setuid не требует использования root (а afaik setgid не очень полезен для root) - StarWeaver
Попытался объяснить, что chmod делает и предоставляет примерные доказательства, чего не хватает в других местах. - underscore_d
Означает ли это, что chmod u+rwx,g+rwx,o+rwx -R / не нарушит систему? - Dennis Jaheruddin


Дополнительно к другим ответам: вы также удалили «липкий бит» из /tmp (который обычно имеет разрешения 1777), и это может вызвать другие непредвиденные проблемы, так как программы смогут записывать или удалять временные файлы других пользователей.

Липкий бит - это специальное разрешение, позволяющее любому создавать файлы в /tmp, позволяет только человеку, который создал его для перемещения или удаления.


15
2017-07-19 13:01



«и это помешало бы любому, кроме root, использовать каталог system / tmp». - Это не кажется правильным. Это все равно позволит любому пользователю использовать каталог system / tmp. Никакой липкой бит не требуется, если у пользователя, группы и других есть все права. Тем не менее, он разрешил бы всем удалять файлы других. - hvd
так Бен Если я запустил chmod 1777 -R /, тогда не должно быть проблем, поскольку я не очищаю липкий бит? - - Brij Raj Kishore
Спасибо @hvd - вы правы, и я немного изменил сообщение, чтобы это отразить. - Ben XO
@BrijRajKishore, остается вопрос, почему вы это делаете в первую очередь. Ubuntu и входящие в него программы не предназначены для запуска «без разрешения» по многим причинам. Было бы разумнее «su» вместо этого root. - Ben XO
Неизвестно, приведет ли он к сбою. Вполне возможно, что это произойдет, потому что внезапно приложения смогут делать что-то друг другу в временных файлах - возможно, случайно - и это может привести к сбою. Поскольку Ubuntu никогда не тестируется так, вы, вероятно, будете первым, кто узнает об этом. :-) С другой стороны, установка липкого бита в каждой отдельной папке в системе может вызвать множество других проблем с приложениями, которые ожидали, что смогут манипулировать программами из-за групповых разрешений в папке (т. Е. Папках с разрешениями 2777). - Ben XO