Udzielam wszystkim pozwolenia na robienie czegokolwiek, ale dlaczego system zawiesza się, dając tylko uprawnienia? Zmieniam tylko uprawnienia, nie zmieniając plików.
/var/log/syslog
, odkryjesz nawet powód.
Udzielam wszystkim pozwolenia na robienie czegokolwiek, ale dlaczego system zawiesza się, dając tylko uprawnienia? Zmieniam tylko uprawnienia, nie zmieniając plików.
/var/log/syslog
, odkryjesz nawet powód.
Odpowiedzi:
Jest kilka powodów.
Po pierwsze, oprócz zwykłych uprawnień do odczytu / zapisu / wykonania, są jeszcze inne bity, które zawierają uprawnienia do plików. W szczególności setuid
i setgid
. Po uruchomieniu programu z jednym z tych bitów uprawnień otrzymuje on „efektywny identyfikator UID” i / lub „skuteczny identyfikator GID” właściciela programu, a nie użytkownika, który go uruchomił. Umożliwia to uruchamianie programów z większą liczbą uprawnień niż użytkownik, który je uruchomił. Jest używany przez wiele kluczowych narzędzi systemowych, w tym su
i sudo
. Twoje chmod
polecenie usuwa te bity, pozostawiając narzędzia bezużyteczne.
Po drugie, niektóre programy (zwłaszcza ssh
) sprawdzają poczytalność uprawnień do plików i odmawiają używania plików z uprawnieniami, które uważają za niepewne. Zmniejsza to ryzyko nieostrożnego administrowania przypadkowego pozostawienia dziur bezpieczeństwa, ale sprawia, że radzenie sobie z usuniętymi uprawnieniami do plików jest tym bardziej bolesne.
Krótka odpowiedź.
System Linux wymaga określonych uprawnień dla niektórych programów, takich jak sudo
itp.
Po uruchomieniu chmod 777 -R /
wyczyścisz wszystkie uprawnienia i zastąp je 777
. To sprawia, że system nie nadaje się do użytku, chyba że ręcznie przywrócisz wszystkie uprawnienia.
W praktyce instalacja jest znacznie szybsza i łatwiejsza.
Problem polega na tym, że wiele programów systemowych zaprojektowano w taki sposób, że nie uruchamiają się, jeśli „nie lubią” uprawnień. Jest to zrobione ze względów bezpieczeństwa.
Myślę, że ważniejsze jest wyjaśnienie, w jaki sposób obsługiwać projekt systemu w praktyce, niż wyjaśnienie, dlaczego każdy program nie działa z niewłaściwymi uprawnieniami.
Jeśli naprawdę chcesz, aby wszyscy użytkownicy mieli nieograniczone uprawnienia w Ubuntu, możesz dodać wszystkich użytkowników do sudo
grupy zamiast zmieniać uprawnienia do plików i katalogów. Będzie to miało taki sam efekt, ale nie zniszczy systemu.
Innym sposobem (bardzo złym) jest aktywacja konta root i zezwalanie wszystkim na logowanie się jako root.
chmod
ma subtelne niuanse.
chmod 0777
zachowuje się inaczej niż chmod u+rwx,g+rwx,o+rwx
to, że setuid i setgid są zerowane przez pierwszy i zachowywane przez ten drugi.
Właśnie dlatego system stał się bezużyteczny. Usunąłeś niezbędny setuid z kilku programów.
Oto lista plików setuid lub setgid na moim laptopie z Linuxem 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]#
Usunąłem dziesiątki wpisów hałasu w pamięciach podręcznych i dziennikach.
chmod
się dzieje i dostarczaniem przykładowych dowodów, czegoś, czego bardzo brakuje gdzie indziej.
chmod u+rwx,g+rwx,o+rwx -R /
nie zepsuje systemu?
Oprócz innych odpowiedzi: usunąłeś również „lepki bit” /tmp
(który zwykle ma uprawnienia 1777), co może powodować inne nieoczekiwane problemy, ponieważ programy będą mogły zapisywać lub usuwać pliki tymczasowe innych użytkowników.
Lepki bit jest specjalnym zezwoleniem, które pozwala każdemu na tworzenie plików /tmp
, ale pozwala tylko osobie, która je utworzyła, przenieść lub usunąć.