Ich erteile nur allen die Erlaubnis, etwas zu tun, aber warum stürzt das System ab, wenn ich nur die Erlaubnis erteile? Ich ändere nur die Berechtigung und ändere nicht die Dateien.
/var/log/syslog
, würden Sie sogar den Grund herausfinden.
Ich erteile nur allen die Erlaubnis, etwas zu tun, aber warum stürzt das System ab, wenn ich nur die Erlaubnis erteile? Ich ändere nur die Berechtigung und ändere nicht die Dateien.
/var/log/syslog
, würden Sie sogar den Grund herausfinden.
Antworten:
Dafür gibt es mehrere Gründe.
Zusätzlich zu den üblichen Lese- / Schreib- / Ausführungsberechtigungen gibt es noch einige andere Bits, die Dateiberechtigungen enthalten. Vor allem setuid
und setgid
. Wenn ein Programm mit einem dieser Berechtigungsbits ausgeführt wird, erhält es die "effektive UID" und / oder "effektive GID" des Programmbesitzers und nicht des Benutzers, der es ausgeführt hat. Dadurch können Programme mit mehr Berechtigungen ausgeführt werden als der Benutzer, der sie ausgeführt hat. Es wird von vielen wichtigen Systemdienstprogrammen verwendet, einschließlich su
und sudo
. Ihr chmod
Befehl löscht diese Bits und macht die Dienstprogramme unbrauchbar.
Zweitens führen einige Programme (insbesondere ssh
) eine Überprüfung der Dateiberechtigungen durch und lehnen die Verwendung von Dateien mit Berechtigungen ab, die sie als unsicher ansehen. Dies verringert das Risiko, dass unachtsame Administratoren versehentlich Sicherheitslücken schließen, macht jedoch den Umgang mit ausgelöschten Dateiberechtigungen umso schmerzhafter.
Eine kurze Antwort.
Linux-System erfordert bestimmte Berechtigungen für bestimmte Programme wie sudo
usw.
Wenn Sie ausführen chmod 777 -R /
, löschen Sie alle Berechtigungen und ersetzen sie durch 777
. Dies macht das System unbrauchbar, sofern Sie nicht alle Berechtigungen manuell wiederherstellen.
In der Praxis ist die Neuinstallation viel schneller und einfacher.
Das Problem ist, dass viele Systemprogramme so konzipiert sind, dass sie nicht gestartet werden, wenn sie die Berechtigungen nicht "mögen". Dies erfolgt aus Sicherheitsgründen.
Ich denke, es ist wichtiger zu erklären, wie man das Systemdesign paraktisch handhabt, als zu erklären, warum jedes Programm nicht mit falschen Berechtigungen funktioniert.
Wenn Sie wirklich möchten, dass alle Benutzer über unbegrenzte Berechtigungen in Ubuntu verfügen, können Sie alle Benutzer zur sudo
Gruppe hinzufügen, anstatt die Datei- und Verzeichnisberechtigungen zu ändern. Das wird den gleichen Effekt haben, aber das System nicht ruinieren.
Eine andere (sehr schlechte) Möglichkeit besteht darin, das Root-Konto zu aktivieren und jedem zu erlauben, sich als Root anzumelden.
chmod
hat subtile Nuancen.
chmod 0777
verhält sich anders als chmod u+rwx,g+rwx,o+rwx
die in dem Abschnitt setuid- und Setgid werden durch den ersten und konserviert von dieser auf Null gesetzt.
Deshalb wurde das System unbrauchbar. Sie haben die erforderliche Setuid aus einigen Programmen entfernt.
Hier ist eine Liste der setuid- oder setgid-Dateien auf meinem Linux Fedora 23-Laptop:
[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]#
Ich habe Dutzende von Lärmeinträgen in Caches und Protokollen entfernt.
chmod
tun ist, und beispielhafte Beweise zu liefern, etwas, das an anderer Stelle sehr fehlt.
chmod u+rwx,g+rwx,o+rwx -R /
das System nicht kaputt geht?
Zusätzlich zu den anderen Antworten: Sie haben auch das "Sticky Bit" von entfernt /tmp
(das normalerweise Berechtigungen 1777 hat), und dies könnte andere unerwartete Probleme verursachen, da Programme in der Lage wären, in die temporären Dateien der jeweils anderen zu schreiben oder diese zu löschen.
Das Sticky-Bit ist eine spezielle Berechtigung, die es zwar jedem erlaubt, Dateien zu erstellen /tmp
, aber nur der Person erlaubt, die es erstellt hat, es zu verschieben oder zu entfernen.