Pourquoi Debian définit-il le shell de connexion de la synchronisation utilisateur sur / bin / sync?

14

syncest l'un des comptes utilisateur créés par Debian elle-même. Je me demande pourquoi Debian définit son shell de connexion sur au /bin/synclieu de /bin/false. Comment Debian utilise-t-elle ce compte utilisateur?

Cyker
la source

Réponses:

24

Ceci est documenté dans /usr/share/doc/base-passwd/users-and-groups.txt.gz:

synchroniser

Le shell de l'utilisateur syncest /bin/sync. Ainsi, si son mot de passe est défini sur quelque chose de facile à deviner (comme ""), n'importe qui peut synchroniser le système sur la console même s'il n'a pas de compte sur le système.

C'est vraiment un artefact historique, je ne m'attendrais pas à ce qu'un syncutilisateur soit configuré de cette façon de nos jours. Dans le passé, il serait utile d'avoir un tel utilisateur afin que les personnes ayant un accès physique à une console ( par exemple dans une salle de serveurs ou un laboratoire plein de postes de travail, comme vous le trouverez dans les universités) puissent réduire le risque de perte de données lorsque l'arrêt d'un système (pour récupérer d'un processus non autorisé ou simplement pour utiliser le poste de travail, s'il avait été laissé verrouillé par son utilisateur précédent). Les systèmes Unix avant Debian avaient généralement un syncutilisateur et un shutdownutilisateur avec lesquels vous pouviez réellement arrêter un système correctement sans connaître le rootmot de passe. (Sur nos stations Sun SPARC, nous venions de STOPA boot...)

Il convient de noter, comme Peter Cordes l'a mentionné, que d'autres mécanismes sont disponibles sur de nombreux systèmes pour assurer des arrêts ou des redémarrages en toute sécurité à partir d'une console sans pouvoir s'authentifier en tant que root: événements ACPI déclenchés en appuyant sur l'interrupteur d'alimentation (ce qui conduit à un arrêt propre), ou CtrlAltDel(ce qui conduit à un redémarrage propre). AltSysRqpeut être utilisé en dernier recours pour synchroniser, tuer, démonter et redémarrer, mais ce n'est pas un redémarrage propre. Comme mentionné par JdeBP , avoir un syncutilisateur est une idée très ancienne, remontant au moins au début des années 1980.

Stephen Kitt
la source
4
Les utilisateurs ne doivent rien faire. Les administrateurs peuvent configurer le système de cette manière, s'ils le souhaitent. Le contexte historique est pertinent ici: à l'époque où l' syncutilisateur a été ajouté, les combinaisons Alt + SysRq n'existaient pas, et un système Linux était plus susceptible d'être un serveur quelque part ou un système partagé dans un laboratoire, qu'un ordinateur portable mono-utilisateur ou bureau. Il était utile de fournir aux utilisateurs un accès à la console pour préparer en toute sécurité un système à un arrêt impropre, afin qu'ils puissent redémarrer les systèmes sans avoir un accès root tout en réduisant le risque de perte de données.
Stephen Kitt
2
Il shutdownconvient de noter qu'au lieu d'avoir un compte, des installations par défaut de certaines (beaucoup?) Distributions Linux sont configurées de telle sorte que ctrl + alt + f1 (pour accéder à une console texte au cas où le VT actuel exécute un écran de connexion graphique) suivi par ctrl + alt + del déclenche un shutdown -r nowou équivalent. Donc, accès physique = possibilité de déclencher un redémarrage propre, même sans SysRQ.
Peter Cordes
1
@PeterCordes note "Les systèmes Unix avant Debian" - c'est avant 1993 ;-). Mais oui, sur les systèmes actuels, il existe souvent d'autres façons de faire les choses sans utiliser syncni shutdownutilisateurs. (Pour être extra-pointilleux, de nombreuses distributions Linux ont le DM sur VT1 de nos jours. Certains n'ont même plus de VT texte!)
Stephen Kitt
1
à l'époque où l' syncutilisateur a été ajouté ... Linux en tant qu'idée n'existait pas. Cette convention remonte au moins au début des années 80.
JdeBP
1
Vous devez vous rappeler que certains de ces systèmes datent d'une époque antérieure aux ordinateurs "personnels". En tant que telle, une synchronisation pourrait être effectuée sur bande ou sur un autre support à fonctionnement extrêmement lent, comme un anneau à jeton, des disquettes. En même temps, ces systèmes étaient suffisamment «fragiles» pour qu’un cycle d’alimentation puisse les endommager. Donc, si votre onduleur indique 5 minutes avant la panne, vous arrêtez et sautez la synchronisation, de peur de ruiner une machine de plusieurs millions de dollars. Ces problèmes n'existent pratiquement plus.
coteyr