Solo estoy otorgando permiso a todos para hacer algo, pero ¿por qué el sistema falla al dar solo permisos? Solo estoy modificando el permiso para no cambiar los archivos.
/var/log/syslog
, incluso descubrirías la razón.
Solo estoy otorgando permiso a todos para hacer algo, pero ¿por qué el sistema falla al dar solo permisos? Solo estoy modificando el permiso para no cambiar los archivos.
/var/log/syslog
, incluso descubrirías la razón.
Respuestas:
Hay un par de razones.
Primero, además de los permisos habituales de lectura / escritura / ejecución, hay otros bits que contienen los permisos de archivo. Lo más notable setuid
y setgid
. Cuando se ejecuta un programa con uno de estos bits de permiso, se obtiene el "UID efectivo" y / o el "GID efectivo" del propietario del programa en lugar del usuario que lo ejecutó. Esto permite que los programas se ejecuten con más permisos que el usuario que los ejecutó. Es utilizado por muchas utilidades cruciales del sistema, incluidos su
y sudo
. Su chmod
comando borra estos bits dejando las utilidades inutilizables.
En segundo lugar, algunos programas (en particular ssh
) realizan una comprobación de validez de los permisos de los archivos y se niegan a usar archivos con permisos que consideran inseguros. Esto reduce el riesgo de que administradores descuidados abandonen accidentalmente agujeros de seguridad, pero hace que lidiar con los permisos de archivos eliminados sea aún más doloroso.
Una respuesta corta
El sistema Linux requiere permisos específicos para ciertos programas como sudo
, etc.
Cuando ejecutas chmod 777 -R /
, borras todos los permisos y los reemplazas por 777
. Esto hace que el sistema sea inutilizable a menos que restaure manualmente todos los permisos.
En la práctica, es mucho más rápido y fácil de reinstalar.
El problema es que muchos programas del sistema están diseñados de manera que no se inician si "no les gustan" los permisos. Esto se hace por razones de seguridad.
Creo que es más importante explicar cómo manejar el diseño del sistema en paractice que explicar por qué cada programa no funciona con permisos incorrectos.
Si realmente desea que todos los usuarios tengan permisos ilimitados en Ubuntu, puede agregar todos los usuarios al sudo
grupo en lugar de cambiar los permisos de archivos y directorios. Eso tendrá el mismo efecto, pero no arruinará el sistema.
Otra forma (muy mala) es activar la cuenta de root y permitir que todos inicien sesión como root.
chmod
Tiene sutiles matices.
chmod 0777
se comporta de manera diferente chmod u+rwx,g+rwx,o+rwx
en que setuid y setgid son puestos a cero por el primero y preservados por el segundo.
Es por eso que el sistema se volvió inutilizable. Eliminaste el setuid necesario de algunos programas.
Aquí hay una lista de archivos setuid o setgid en mi 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]#
Eliminé docenas de entradas de ruido en cachés y registros.
chmod
está haciendo y proporcionar evidencia de ejemplo, algo que falta mucho en otros lugares.
chmod u+rwx,g+rwx,o+rwx -R /
no romperá el sistema?
Adicional a las otras respuestas: también eliminó el "bit adhesivo" /tmp
(que generalmente tiene permisos 1777), y esto podría causar otros problemas inesperados, ya que los programas podrían escribir o eliminar los archivos temporales de los demás.
El bit adhesivo es un permiso especial que, si bien permite que cualquiera pueda crear archivos /tmp
, solo permite que la persona que lo creó lo mueva o lo elimine.