GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment rendre le compte d'utilisateur en lecture seule dans CentOS/RHEL 7

Question :Comment créer un compte utilisateur qui ne peut écrire dans aucun fichier du système ? En d'autres termes, comment créer un compte utilisateur en lecture seule dans CentOS/RHEL 7 ?

Linux ne fournit pas de classification des comptes au niveau des rôles. L'autorisation d'accès est contrôlée au niveau du nœud I, ce qui implique des autorisations pour chaque fichier ou répertoire individuel séparément.

Si nous pouvons reformuler légèrement le problème, il existe au moins deux techniques qui peuvent donner l'opération souhaitée. Au lieu de penser en termes de compte d'utilisateur, pensez en termes de fichiers et de répertoires. Cela nous permet quelques méthodes alternatives pour obtenir à peu près le même résultat. Chaque élément ci-dessous montre une implémentation alternative qui fournit une protection légèrement différente qui peut être utile dans certains cas d'utilisation.

Créer un compte anonyme et non privilégié

Chaque fichier ou répertoire sous Linux dispose de trois ensembles d'autorisations de lecture/écriture/exécution, une pour le propriétaire du fichier, les autres utilisateurs du même groupe que le propriétaire d'origine et tous les autres. Un nouveau compte peut être créé avec un ID utilisateur et un ID de groupe uniques et ce nouveau compte peut être utilisé comme compte en lecture seule. Étant donné que le compte ne possèderait aucun fichier en dehors de son répertoire personnel, la seule autorisation d'accès serait les «autres» autorisations, qui omettent généralement d'autoriser l'accès en écriture.

# useradd -c 'Mostly R/O Account' roaccount

Le rocompte se verra attribuer un ID utilisateur et un ID de groupe uniques, ce qui force tout fichier en dehors de son répertoire personnel à être contrôlé par les « autres » autorisations d'accès. L'O/S a déjà un compte de moindre privilège personne mais ce compte est traité spécialement par le système. Un compte séparé est recommandé pour l'utilisation R/O.

Le défaut de ce schéma est qu'il s'appuie sur chaque fichier et chaque répertoire sur le serveur et le stockage pour que ses "autres" autorisations soient correctement définies. Cela peut être fait manuellement ou en définissant le umask du processus de création sur au moins 0002 (ce qui bloque la définition des "autres" autorisations d'écriture).

Recevoir une notification lorsque certains fichiers sont écrits.

Si l'objectif est de déterminer tous les fichiers écrits par un utilisateur donné, l'outil auditctl peut être utile. Une surveillance peut être définie sur l'appel système d'écriture qui se déclenche lorsqu'il est effectué par un utilisateur particulier. Par exemple un paramètre :

# auditctl -a always,exit -S write -F auid=1000

déclencherait une entrée de piste d'audit chaque fois que l'ID utilisateur 1000 écrivait dans un fichier. Le sous-système de piste d'audit est assez expressif dans les conditions qui peuvent être exprimées.

Trouvez plus de documentation sur la page de manuel audit.rules.

# man audit.rules

Utilisez des listes de contrôle d'accès (ACL) pour remplacer les autorisations.

Certains gestionnaires de système de fichiers prennent en charge les listes de contrôle d'accès (ACL) qui sont des autorisations plus fines que celles autorisées par le propriétaire/groupe/autres divisions. Des fichiers ou des répertoires individuels peuvent utiliser une ACL pour sélectionner un certain ensemble d'utilisateurs, pas nécessairement dans le même groupe, et donner uniquement à ces utilisateurs les autorisations d'accès aux fichiers souhaitées.

Par exemple, nous voulons donner à userA, userB et userC un accès en lecture seule au répertoire /secret-files/ et au-dessous. Nous pouvons le faire comme ceci :

# setfacl -Rd -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files
# setfacl -R  -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files

La première ligne définit une ACL par défaut qui s'appliquera à tous les nouveaux fichiers ou répertoires créés sous /secret-files à l'avenir. Le deuxième fichier applique l'ACL à tout contenu existant dans l'arborescence /secret-files et en dessous.

Pour plus de détails sur cette fonctionnalité, consultez la page aclman.

# man acl


Cent OS
  1. Comment réduire le système de fichiers racine sur CentOS / RHEL 6

  2. Comment exécuter rsyslog en tant qu'utilisateur non root dans CentOS/RHEL 7

  3. Comment rendre CentOS/RHEL 7 conforme FIPS 140-2

  4. CentOS / RHEL :Comment ajouter un fichier d'échange

  5. Comment ajouter des paramètres régionaux sur CentOS/RHEL 8

Comment activer Kdump sur RHEL 7 et CentOS 7

Comment démarrer le serveur RHEL 7 / CentOS 7 en mode mono-utilisateur

Comment démarrer le serveur CentOS 8 / RHEL 8 en mode mono-utilisateur

Comment installer et utiliser Fail2ban sur RHEL 8 / CentOS 8

Comment créer un utilisateur Sudo dans RHEL, CentOS, Rocky et AlmaLinux

Comment installer Parallels Plesk Panel sur CentOS et RHEL 8