Comment créer un utilisateur avec un accès en lecture seule à tous les fichiers? (c'est-à-dire root sans autorisations d'écriture)


9

Pour sauvegarder mon serveur, je voudrais y accéder à distance via SSH. Pour minimiser tous les risques, il souhaite utiliser un utilisateur qui n'a qu'un accès en lecture, mais à tous les fichiers, tout comme root. Cependant, il ne devrait avoir aucun droit d'écriture.

Des idées sur la façon d'y parvenir?


Réponses:


7

Puis-je suggérer une autre méthode pour résoudre votre problème qui nécessite moins de maintenance.

Vous pouvez créer des clés ssh qui ont un accès limité à des programmes spécifiques. Je n'aime pas accorder à root un accès illimité, mais vous devez parfois activer certaines commandes pour qu'elles soient exécutées à distance. Avec les clés ssh, vous pouvez exécuter votre programme de sauvegarde via la commande ssh.

Consultez la section 'AUTHORIZED_KEYS FILE FORMAT' dans votre page de manuel sshd (je suppose que vous utilisez OpenSSH).

http://man.openbsd.org/OpenBSD-current/man8/sshd.8


1
J'aime l'idée. Pour tirer simplement les fichiers via rsynctoutes les no-*options comme indiqué dans l' homme, cela devrait être sûr. Particulièrement no-pty en combinaison avec from est un bon début pour augmenter la sécurité. Exemple:from="the_pulling_hostname_or_IP",no-pty,...
user569825

1

Vous pouvez y parvenir avec des ACL. Vous auriez toujours besoin d'un script exécuté en tant que root qui modifie les autorisations de chaque fichier. Consultez les pages de manuel pour ACL, setfacl et getfacl si vous êtes intéressé.


1

Il existe une autre façon de créer cela sans utiliser les ACL. Mais vous devez faire preuve de prudence ici. Tout d'abord, créez un groupe, par exemple, appelé roroot (racine en lecture seule). Appliquez ensuite cet identifiant de groupe à tous les répertoires. Définissez les autorisations pour que les bits de groupe soient r-- ou 400 octaux, puis vous pouvez créer un compte d'utilisateur comme un utilisateur ordinaire, par exemple, rorootusr, avec l'ID suivant défini sur ce qu'il est sur votre système, faites-en un membre d'un groupe roroot uniquement , ne faites pas qu'il fasse partie de la roue, du bac, etc., selon ce que sont vos groupes sur votre installation. Le morceau suivant va être délicat. Ouvrez le fichier / etc / passwd en utilisant vim / nano / emacs / joe / quel que soit l'éditeur qui bouge votre bateau, et recherchez l'identifiant que vous venez de créer, c'est-à-dire. rorootusr, le fichier passwd ressemblera à ceci

root: x: 0: 0 :: / root: / bin / sh

En lisant de gauche à droite séparés par deux points, vous avez le nom d'utilisateur, le mot de passe (chiffré + masqué), l'ID utilisateur, l'ID de groupe, le commentaire, le répertoire personnel et le shell. De l'exemple ci-dessus donné

rorootusr: x: 512: 450: Utilisateur racine RO: / home / rorootusr: / bin / bash

C'est le 3ème champ (512) que vous changez en 0. 450 serait l'ID de groupe pour le redémarrage. Enregistrez la session d'édition et vous avez terminé. Maintenant, rorootusr aura un accès root mais est uniquement membre du groupe roroot et a un accès en lecture seule au système.

J'espère que cela vous aide, Cordialement, Tom.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.