Je n'autorise que tous les utilisateurs à faire quoi que ce soit, mais pourquoi le système se bloque-t-il en n'accordant que des autorisations ? Je ne modifie que les autorisations, pas les fichiers.
Réponses
Trop de publicités?Il y a plusieurs raisons à cela.
Tout d'abord, outre les autorisations habituelles de lecture, d'écriture et d'exécution, les autorisations de fichiers contiennent d'autres éléments. Les plus importants sont les suivants setuid
y setgid
. Lorsqu'un programme doté d'un de ces bits de permission est exécuté, il reçoit l'"UID effectif" et/ou le "GID effectif" du propriétaire du programme plutôt que de l'utilisateur qui l'a exécuté. Cela permet aux programmes de s'exécuter avec plus de permissions que l'utilisateur qui les a lancés. Il est utilisé par de nombreux utilitaires système essentiels, notamment su
y sudo
. Votre chmod
efface ces bits, ce qui rend les utilitaires inutilisables.
D'autre part, certains programmes (notamment ssh
) vérifient les autorisations des fichiers et refusent d'utiliser des fichiers dont les autorisations ne leur semblent pas sûres. Cela réduit le risque que des administrateurs négligents laissent accidentellement des failles de sécurité, mais cela rend la gestion des autorisations de fichiers effacées d'autant plus pénible.
Une réponse courte.
Le système Linux requiert des autorisations spécifiques pour certains programmes tels que sudo
, etc.
Lorsque vous exécutez chmod 777 -R /
vous effacez toutes les autorisations et les remplacez par 777
. Cela rend le système inutilisable à moins que vous ne restauriez manuellement toutes les autorisations.
Dans la pratique, il est beaucoup plus rapide et plus facile de réinstaller.
Le problème est que de nombreux programmes système sont conçus de telle sorte qu'ils ne démarrent pas s'ils "n'aiment pas" les autorisations. Ceci est fait pour des raisons de sécurité.
Je pense qu'il est plus important d'expliquer comment gérer la conception du système en pratique que d'expliquer pourquoi chaque programme ne fonctionne pas avec de mauvaises permissions.
Si vous voulez vraiment que tous les utilisateurs aient des permissions illimitées dans Ubuntu, vous pouvez ajouter tous les utilisateurs à la section sudo
au lieu de modifier les droits d'accès aux fichiers et aux répertoires. Cela aura le même effet, mais ne ruinera pas le système.
Une autre solution (très mauvaise) consiste à activer le compte root et à permettre à tout le monde de se connecter en tant que root.
chmod
a des nuances subtiles.
chmod 0777
se comporte différemment de chmod u+rwx,g+rwx,o+rwx
en ce sens que le setuid y setgid sont mis à zéro par le premier et préservés par le second.
C'est pourquoi le système est devenu inutilisable. Vous avez supprimé les setuid de quelques programmes.
Voici une liste des fichiers setuid ou setgid sur mon ordinateur portable 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]#
J'ai supprimé des dizaines d'entrées parasites dans les caches et les journaux.
En complément des autres réponses : vous avez également supprimé le "sticky bit" de /tmp
(qui a généralement les permissions 1777), ce qui pourrait entraîner d'autres problèmes inattendus, car les programmes pourraient écrire ou supprimer les fichiers temporaires des autres.
Le point sensible est une autorisation spéciale qui, tout en permettant à n'importe qui de créer des fichiers en /tmp
L'article 2 de la loi sur la protection des données, ne permet qu'à la personne qui l'a créé de le déplacer ou de le supprimer.