Concedo l'autorizzazione a tutti per fare qualsiasi cosa, ma perché il sistema si arresta in modo anomalo dando solo autorizzazioni? Sto solo modificando l'autorizzazione, non cambiando i file.
/var/log/syslog
, capiresti persino il motivo.
Concedo l'autorizzazione a tutti per fare qualsiasi cosa, ma perché il sistema si arresta in modo anomalo dando solo autorizzazioni? Sto solo modificando l'autorizzazione, non cambiando i file.
/var/log/syslog
, capiresti persino il motivo.
Risposte:
Ci sono un paio di ragioni.
Innanzitutto oltre alle consuete autorizzazioni di lettura / scrittura / esecuzione, ci sono altri bit che contengono le autorizzazioni per i file. In particolare setuid
e setgid
. Quando viene impostato un programma con uno di questi bit di autorizzazione, ottiene "UID effettivo" e / o "GID effettivo" del proprietario del programma anziché l'utente che lo ha eseguito. Ciò consente ai programmi di essere eseguiti con più autorizzazioni rispetto all'utente che li ha eseguiti. È utilizzato da molte utilità di sistema cruciali tra cui su
e sudo
. Il tuo chmod
comando cancella questi bit lasciando le utility inutilizzabili.
In secondo luogo, alcuni programmi (in particolare ssh
) eseguono un controllo di integrità sulle autorizzazioni dei file e rifiutano di utilizzare i file con autorizzazioni che considerano non sicure. Ciò riduce il rischio che gli amministratori negligenti lascino accidentalmente falle di sicurezza, ma rende ancora più doloroso gestire le autorizzazioni dei file cancellate.
Una breve risposta
Il sistema Linux richiede autorizzazioni specifiche per determinati programmi come sudo
, ecc.
Quando esegui chmod 777 -R /
, cancelli tutte le autorizzazioni e le sostituisci con 777
. Ciò rende il sistema inutilizzabile a meno che non si ripristinino manualmente tutte le autorizzazioni.
In pratica è molto più veloce e più facile da reinstallare.
Il problema è che molti programmi di sistema sono progettati in modo tale da non avviarsi se "non gradiscono" le autorizzazioni. Questo è fatto per motivi di sicurezza.
Penso che sia più importante spiegare come gestire la progettazione del sistema in paracadute piuttosto che spiegare perché ogni programma non funziona con permessi sbagliati.
Se desideri davvero che tutti gli utenti dispongano di autorizzazioni illimitate in Ubuntu, puoi aggiungere tutti gli utenti al sudo
gruppo invece di modificare le autorizzazioni di file e directory. Ciò avrà lo stesso effetto, ma non rovinerà il sistema.
Un altro modo (pessimo) è attivare l'account root e consentire a tutti di accedere come root.
chmod
ha sfumature sottili.
chmod 0777
si comporta diversamente dal fatto chmod u+rwx,g+rwx,o+rwx
che setuid e setgid sono azzerati dal primo e conservati da quest'ultimo.
Ecco perché il sistema è diventato inutilizzabile. Hai rimosso il setuid necessario da alcuni programmi.
Ecco un elenco di file setuid o setgid sul mio laptop 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]#
Ho rimosso dozzine di voci di rumore nelle cache e nei registri.
chmod
sta facendo e fornire prove di esempio, qualcosa che manca molto altrove.
chmod u+rwx,g+rwx,o+rwx -R /
non romperà il sistema?
In aggiunta alle altre risposte: hai rimosso anche il "bit appiccicoso" /tmp
(che di solito ha i permessi 1777), e questo potrebbe causare altri problemi imprevisti, poiché i programmi sarebbero in grado di scrivere o eliminare i file temporanei degli altri.
La parte adesiva è un'autorizzazione speciale che, pur consentendo a chiunque di creare file /tmp
, consente solo alla persona che lo ha creato di spostarlo o rimuoverlo.