Gérer les utilisateurs et les groupes, les autorisations et les attributs de fichiers et d'activer l'accès sudo sur les comptes - partie 8

Gérer les utilisateurs et les groupes, les autorisations et les attributs de fichiers et d'activer l'accès sudo sur les comptes - partie 8

En août dernier, la Fondation Linux a commencé le LFC certification (Sysadmin certifié de la Fondation Linux), un tout nouveau programme dont l'objectif est de permettre aux individus partout et partout de passer un examen afin de se faire certifier en support opérationnel de base à intermédiaire pour les systèmes Linux, qui comprend la prise en charge des systèmes et services de course, ainsi que de la surveillance et de l'analyse globales, ainsi que des intelligents Prise de décision pour pouvoir décider quand il est nécessaire de dégénérer les problèmes aux équipes de soutien de niveau supérieur.

Sysadmin certifié Linux Foundation - Partie 8

Veuillez consulter rapidement la vidéo suivante qui décrit une introduction au programme de certification de la Fondation Linux.

Cet article est la partie 8 d'une longue série à 10 tutoriels, ici dans cette section, nous vous guiderons sur la façon de gérer les autorisations des utilisateurs et des groupes dans le système Linux, qui sont requis pour l'examen de certification LFCS.

Étant donné que Linux est un système d'exploitation multi-utilisateurs (en ce qu'il permet à plusieurs utilisateurs sur différents ordinateurs ou terminaux d'accéder à un seul système), vous devrez savoir comment effectuer une gestion efficace des utilisateurs: comment ajouter, modifier, suspendre ou supprimer Comptes d'utilisateurs, ainsi que leur accordant les autorisations nécessaires pour effectuer leurs tâches assignées.

Ajout de comptes d'utilisateurs

Pour ajouter un nouveau compte utilisateur, vous pouvez exécuter l'une des deux commandes suivantes en tant que racine.

# addUser [new_account] # userAdd [new_account] 

Lorsqu'un nouveau compte utilisateur est ajouté au système, les opérations suivantes sont effectuées.

1. Son répertoire d'origine est créé (/ home / nom d'utilisateur par défaut).

2. Les fichiers cachés suivants sont copiés dans le répertoire personnel de l'utilisateur et seront utilisés pour fournir des variables d'environnement pour sa session utilisateur.

.bash_logout .bash_profile .bashrc 

3. Une bobine de courrier est créée pour l'utilisateur à / var / spool / mail /nom d'utilisateur.

4. Un groupe est créé et donné le même nom que le nouveau compte utilisateur.

Compréhension / etc / passwd

Les informations complètes du compte sont stockées dans le / etc / passwd déposer. Ce fichier contient un enregistrement par compte d'utilisateur système et a le format suivant (les champs sont délimités par un côlon).

[nom d'utilisateur]: [x]: [uid]: [gid]: [comment]: [répertoire domestique]: [Shell par défaut] 
  1. Des champs [nom d'utilisateur] et [Commentaire] sont-ils explicatifs.
  2. Le X dans le deuxième champ indique que le compte est protégé par un mot de passe ombragé (en / etc / ombre), qui est nécessaire pour se connecter comme [nom d'utilisateur].
  3. Le [Uid] et [GID] Les champs sont des entiers qui représentent l'identification de l'utilisateur et l'identification du groupe primaire à laquelle [nom d'utilisateur] appartient respectivement.
  4. Le [Répertoire de la maison] indique le chemin absolu pour [nom d'utilisateur]répertoire de la maison, et
  5. Le [Shell par défaut] est le shell qui sera mis à la disposition de cet utilisateur lorsqu'il connectera le système.
Compréhension / etc / groupe

Les informations de groupe sont stockées dans le / etc / groupe déposer. Chaque enregistrement a le format suivant.

[Nom du groupe]: [Mot de passe du groupe]: [GID]: [membres du groupe] 
  1. [Nom de groupe] est le nom du groupe.
  2. Un X dans [Mot de passe de groupe] indique que les mots de passe de groupe ne sont pas utilisés.
  3. [GID]: Identique à / etc / passwd.
  4. [Les membres du groupe]: une liste séparée par des virgules d'utilisateurs qui sont membres de [Nom de groupe].
Ajouter des comptes d'utilisateurs

Après avoir ajouté un compte, vous pouvez modifier les informations suivantes (pour nommer quelques champs) en utilisant le usermod Commande, dont la syntaxe de base de l'Usermod est la suivante.

# UserMod [Options] [Nom d'utilisateur] 
Définition de la date d'expiration d'un compte

Utilisez le -date d'expiration drapeau suivi d'une date dans Yyyy-mm-dd format.

# Usermod - Expiredate 2014-10-30 Tecmint 
Ajout de l'utilisateur aux groupes supplémentaires

Utilisez le combiné -agir, ou -ajouter -groupes Options, suivies d'une liste de groupes séparés par des virgules.

# UserMod --APPEnd - Groups Root, utilisateurs Tecmint 
Modification de l'emplacement par défaut du répertoire personnel de l'utilisateur

Utilisez le -d, ou -maison Options, suivies du chemin absolu vers le nouveau répertoire de la maison.

# usermod --home / tmp tecmint 
Modification du shell que l'utilisateur utilisera par défaut

Utiliser -coquille, suivi du chemin vers la nouvelle coquille.

# Usermod --shell / bin / sh tecmint 
Affichage des groupes auquel un utilisateur est membre de
# Groupes tecmint # id tecmint 

Maintenant, exécutons toutes les commandes ci-dessus en une seule fois.

# UserMod - Expiredate 2014-10-30 --APPEND - Groups Root, utilisateurs - Home / TMP --shell / bin / sh tecmint 
Exemples de commande Usermod

Dans l'exemple ci-dessus, nous définirons la date d'expiration du Tecmint compte d'utilisateur de 30 octobre 2014. Nous ajouterons également le compte au racine et le groupe des utilisateurs. Enfin, nous allons définir shot comme son coquille par défaut et modifie l'emplacement du répertoire domestique en / tmp:

Lire aussi:

  1. 15 Exemples de commande UserAdd dans Linux
  2. 15 Exemples de commande Usermod dans Linux

Pour les comptes existants, nous pouvons également faire ce qui suit.

Compte de désactivation en verrouillant le mot de passe

Utilisez le -L (majuscules l) ou le -serrure Option pour verrouiller le mot de passe d'un utilisateur.

# Usermod - Locker Tecmint 
Déverrouiller le mot de passe de l'utilisateur

Utilisez le -u ou la -ouvrir Option pour déverrouiller le mot de passe d'un utilisateur qui était auparavant bloqué.

# Usermod --Unlock Tecmint 
Verrouiller les comptes d'utilisateurs
Création d'un nouveau groupe pour lire et écrire un accès aux fichiers qui doivent être accessibles par plusieurs utilisateurs

Exécutez la série de commandes suivantes pour atteindre l'objectif.

# groupadd Common_Group # Ajouter un nouveau groupe # chown: Common_Group commun.TXT # Changez le propriétaire du groupe de Common.txt à common_group # userMod -Ag Common_Group user1 # Ajouter user1 à common_group # userMod -Ag Common_Group user2 # Ajouter user2 à Common_Group # UserMod -Ag Common_Group User3 # Ajouter user3 à Common_Group 
Supprimer un groupe

Vous pouvez supprimer un groupe avec la commande suivante.

# GroupDel [Group_name] 

S'il y a des fichiers détenus par nom de groupe, Ils ne seront pas supprimés, mais le propriétaire du groupe sera réglé sur le Gid du groupe qui a été supprimé.

Autorisations de fichiers Linux

Outre les autorisations de lecture, d'écriture et d'exécution de base dont nous avons discuté dans les outils d'archivage et de définition des attributs de fichiers - la partie 3 de cette série, il existe d'autres paramètres d'autorisation moins utilisés (mais pas moins importants), parfois appelés «autorisation spéciale".

Comme les autorisations de base discutées précédemment, elles sont définies à l'aide d'un fichier octal ou via une lettre (notation symbolique) qui indique le type d'autorisation.

Suppression des comptes d'utilisateurs

Vous pouvez supprimer un compte (avec son répertoire domestique, s'il appartient à l'utilisateur, et tous les fichiers qui y résident, ainsi que la bobine de courrier) en utilisant le userdel commande avec le -retirer option.

# userDel --Remove [nom d'utilisateur] 

Gestion des groupes

Chaque fois qu'un nouveau compte utilisateur est ajouté au système, un groupe avec le même nom est créé avec le nom d'utilisateur comme le seul membre. D'autres utilisateurs peuvent être ajoutés au groupe plus tard. L'un des objectifs des groupes est de mettre en œuvre un contrôle d'accès simple aux fichiers et autres ressources système en définissant les bonnes autorisations sur ces ressources.

Par exemple, supposons que vous ayez les utilisateurs suivants.

  1. User1 (groupe principal: user1)
  2. User2 (groupe principal: user2)
  3. User3 (groupe principal: user3)

Tous ont besoin lire et écrire accès à un fichier appelé commun.SMS situé quelque part sur votre système local, ou peut-être sur un réseau partagez-le User1 a créé. Vous pouvez être tenté de faire quelque chose comme,

# chmod 660 commun.txt ou # chmod u = rw, g = rw, o = commun.txt [Notez l'espace entre le dernier signe égal et le nom de fichier] 

Cependant, cela ne fournira que lire et écrire accès au propriétaire du fichier et aux utilisateurs qui sont membres du propriétaire du groupe du fichier (User1 dans ce cas). Encore une fois, vous pouvez être tenté d'ajouter user2 et User3 grouper User1, Mais cela leur donnera également accès au reste des fichiers appartenant à l'utilisateur User1 et grouper User1.

C'est là que les groupes sont utiles, et voici ce que vous devez faire dans un cas comme celui-ci.

Comprendre Settuid

Quand le setuid L'autorisation est appliquée à un fichier exécutable, un utilisateur exécutant le programme hérite des privilèges effectifs du propriétaire du programme. Étant donné que cette approche peut raisonnablement soulever des problèmes de sécurité, le nombre de fichiers avec autorisation SETUID doit être réduit au minimum. Vous trouverez probablement des programmes avec cet ensemble d'autorisation lorsqu'un utilisateur système doit accéder à un fichier appartenant à Root.

Résumé, il n'est pas seulement que l'utilisateur peut exécuter le fichier binaire, mais aussi qu'il peut le faire avec les privilèges de Root. Par exemple, vérifions les autorisations de / bin / passwd. Ce binaire est utilisé pour modifier le mot de passe d'un compte et modifie le / etc / ombre déposer. Le superutilisateur peut modifier le mot de passe de n'importe qui, mais tous les autres utilisateurs ne devraient être en mesure de changer le leur.

Exemples de commande Passwd

Ainsi, tout utilisateur devrait avoir la permission de fonctionner / bin / passwd, mais seule la racine sera en mesure de spécifier un compte. D'autres utilisateurs ne peuvent changer que leurs mots de passe correspondants.

Modifier le mot de passe utilisateur
Comprendre Setgid

Quand le setgid le bit est défini, l'efficacité Gid du véritable utilisateur devient celui du propriétaire du groupe. Ainsi, tout utilisateur peut accéder à un fichier sous les privilèges accordés au propriétaire du groupe de ce fichier. De plus, lorsque le bit setgid est défini sur un répertoire, les fichiers nouvellement créés héritent du même groupe que le répertoire et les sous-répertoires nouvellement créés hériteront également du bit SetGid du répertoire parent. Vous utiliserez très probablement cette approche chaque fois que les membres d'un certain groupe ont besoin d'accéder à tous les fichiers d'un répertoire, quel que soit le groupe principal du propriétaire du fichier.

# chmod g + s [nom de fichier] 

Pour définir le setgid sous une forme octale, appliquez le numéro 2 aux autorisations de base actuelles (ou souhaitées).

# CHMOD 2755 [répertoire] 
Définition du setgid dans un répertoire
Ajouter SetGid à Directory
Comprendre un bit collant

Quand le "bit collant"Est défini sur des fichiers, Linux l'ignore, tandis que pour les répertoires, il a pour effet d'empêcher les utilisateurs de supprimer ou même de renommer les fichiers qu'il contient à moins que l'utilisateur ne soit propriétaire du répertoire, du fichier ou est root.

# chmod o + t [répertoire] 

Pour définir le bit collant sous une forme octale, appliquez le numéro 1 aux autorisations de base actuelles (ou souhaitées).

# Chmod 1755 [répertoire] 

Sans le bit collant, quiconque peut écrire dans le répertoire peut supprimer ou renommer des fichiers. Pour cette raison, le bit collant se trouve couramment sur les répertoires, tels que / tmp, qui sont dans le monde.

Ajouter Stickbit au répertoire

Attributs de fichiers linux spéciaux

Il existe d'autres attributs qui permettent d'autres limites aux opérations autorisées sur les fichiers. Par exemple, empêcher le fichier d'être renommé, déplacé, supprimé ou même modifié. Ils sont définis avec la commande chattr et peuvent être affichés en utilisant le lsattr outil, comme suit.

# chattr + i file1 # chattr + un fichier2 

Après avoir exécuté ces deux commandes, fichier1 sera immuable (ce qui signifie qu'il ne peut pas être déplacé, renommé, modifié ou supprimé) alors que fichier2 Entrez en mode APPENDE (ne peut être ouvert qu'en mode annexe pour l'écriture).

Commande chattr pour protéger les fichiers

Accéder au compte racine et utiliser sudo

L'une des façons dont les utilisateurs peuvent accéder au compte racine est de taper.

$ su 

puis saisir le mot de passe de Root.

Si l'authentification réussit, vous serez connecté comme racine avec le répertoire de travail actuel de la même chose que vous étiez avant. Si vous voulez être placé dans le répertoire d'origine de Root, courez à la place.

$ su - 

puis entrez le mot de passe de la racine.

Activer l'accès sudo sur les utilisateurs

La procédure ci-dessus nécessite qu'un utilisateur normal connaît le mot de passe de Root, qui pose un risque de sécurité sérieux. Pour cette raison, le Sysadmin peut configurer le Sudo commande pour permettre à un utilisateur ordinaire d'exécuter des commandes en tant qu'utilisateur différent (généralement le superutilisateur) d'une manière très contrôlée et limitée. Ainsi, les restrictions peuvent être définies sur un utilisateur afin de lui permettre d'exécuter une ou plusieurs commandes privilégiées spécifiques et aucun autre.

Lire aussi: Différence entre l'utilisateur Su et Sudo

Pour authentifier l'utilisation Sudo, L'utilisateur utilise son propre mot de passe. Après être entré dans la commande, nous serons invités à notre mot de passe (pas à celui du superutilisateur) et si l'authentification réussit (et si l'utilisateur a obtenu des privilèges pour exécuter la commande), la commande spécifiée est effectuée.

Pour accorder l'accès à Sudo, l'administrateur système doit modifier le / etc / sudoers déposer. Il est recommandé que ce fichier soit modifié à l'aide du visudo commande au lieu de l'ouvrir directement avec un éditeur de texte.

# Visudo 

Cela ouvre le / etc / sudoers fichier utilisant vigueur (Vous pouvez suivre les instructions données dans Installer et utiliser VIM comme éditeur - Partie 2 de cette série pour modifier le fichier).

Ce sont les lignes les plus pertinentes.

DefaultS Secure_path = "/ usr / sbin: / usr / bin: / sbin" root all = (all) tout tecmint all = / bin / yum update gacanepa all = nopasswd: / bin / updatedb% admin tout = (tout) 

Regardons-les de plus près.

Defaults Secure_Path = "/ usr / sbin: / usr / bin: / sbin: / usr / local / bin" 

Cette ligne vous permet de spécifier les répertoires qui seront utilisés pour Sudo, et est utilisé pour empêcher l'utilisation des répertoires spécifiques à l'utilisateur, ce qui peut nuire au système.

Les lignes suivantes sont utilisées pour spécifier les autorisations.

root tout = (tout) tout 
  1. La première TOUS Le mot-clé indique que cette règle s'applique à tous les hôtes.
  2. La deuxième TOUS indique que l'utilisateur dans la première colonne peut exécuter des commandes avec les privilèges de tout utilisateur.
  3. Le troisième TOUS signifie que toute commande peut être exécutée.
Tecmint all = / bin / yum Mise à jour 

Si aucun utilisateur n'est spécifié après le = Signe, sudo suppose l'utilisateur root. Dans ce cas, l'utilisateur Tecmint pourra courir Mise à jour comme racine.

gacanepa all = nopasswd: / bin / updatedb 

Le Nopasswd La directive permet à l'utilisateur Gacanepa de fonctionner / bin / updatedb sans avoir besoin de saisir son mot de passe.

% admin tout = (tous) tout 

Le % Le signe indique que cette ligne s'applique à un groupe appelé «administrer". Le sens du reste de la ligne est identique à celui d'un utilisateur régulier. Cela signifie que les membres du groupe «administrer”Peut exécuter toutes les commandes comme n'importe quel utilisateur sur tous les hôtes.

Pour voir quels privilèges vous sont accordés par Sudo, utilisez le «-l”Option pour les énumérer.

Règles d'accès sudo

PAM (modules d'authentification enfichables)

Modules d'authentification enfichables (PAM) Offrez la flexibilité de la définition d'un schéma d'authentification spécifique sur une base par application et / ou par service à l'aide de modules. Cet outil présent sur toutes les distributions Linux modernes a surmonté le problème souvent confronté par les développeurs au début de Linux, lorsque chaque programme qui nécessitait l'authentification devait être compilé spécialement pour savoir comment obtenir les informations nécessaires.

Par exemple, avec PAM, peu importe que votre mot de passe soit stocké dans / etc / ombre ou sur un serveur séparé à l'intérieur de votre réseau.

Par exemple, lorsque le programme de connexion doit authentifier un utilisateur, PAM fournit dynamiquement la bibliothèque qui contient les fonctions du bon schéma d'authentification. Ainsi, la modification du schéma d'authentification pour l'application de connexion (ou tout autre programme à l'aide de PAM) est facile car elle implique uniquement de modifier un fichier de configuration (très probablement, un fichier nommé d'après l'application, situé à l'intérieur / etc / pam.d, et moins probable dans / etc / pam.confli).

Fichiers à l'intérieur / etc / pam.d indiquer quelles applications utilisent PAM nativement. De plus, nous pouvons savoir si une certaine application utilise PAM en vérifiant si elle la bibliothèque PAM (libpam) y a été lié:

# LDD $ (quelle connexion) | Grep libpam # Login utilise PAM # LDD $ (qui en haut) | grep libpam # top n'utilise pas de pam 
Vérifiez la bibliothèque Linux Pam

Dans l'image ci-dessus, nous pouvons voir que le libpam a été lié à l'application de connexion. Cela a du sens puisque cette application est impliquée dans le fonctionnement de l'authentification des utilisateurs système, alors que le top ne fait pas.

Examinons le fichier de configuration PAM pour passage - Oui, l'utilitaire bien connu pour modifier les mots de passe de l'utilisateur. Il est situé à / etc / pam.d / passwd:

# chat / etc / passwd 
Fichier de configuration PAM pour le mot de passe Linux

La première colonne indique le taper d'authentification à utiliser avec le chemin de module (troisième colonne). Lorsqu'un trait d'union apparaît avant le type, PAM n'enregistre pas au journal système si le module ne peut pas être chargé car il n'a pas pu être trouvé dans le système.

Les types d'authentification suivants sont disponibles:

  1. compte: Ce type de module vérifie si l'utilisateur ou le service a fourni des informations d'identification valides pour s'authentifier.
  2. authentification: Ce type de module vérifie que l'utilisateur est ce qu'il prétend être et accorde tous les privilèges nécessaires.
  3. mot de passe: Ce type de module permet à l'utilisateur ou au service de mettre à jour son mot de passe.
  4. session: Ce type de module indique ce qui doit être fait avant et / ou après la réussite de l'authentification.

La deuxième colonne (appelée contrôle) indique ce qui devrait arriver si l'authentification avec ce module échoue:

  1. requis: Si l'authentification via ce module échoue, l'authentification globale sera refusée immédiatement.
  2. requis est similaire à celle requise, bien que tous les autres modules énumérés pour ce service soient appelés avant de nier l'authentification.
  3. suffisant: Si l'authentification via ce module échoue, PAM accordera toujours l'authentification même si un précédent marqué comme requis a échoué.
  4. facultatif: Si l'authentification via ce module échoue ou réussit, rien ne se passe à moins que ce soit le seul module de son type défini pour ce service.
  5. inclure signifie que les lignes du type donné doivent être lues à partir d'un autre fichier.
  6. se soutenir est similaire aux incluses mais les échecs ou les succès d'authentification ne provoquent pas la sortie du module complet, mais seulement de la substitution.

La quatrième colonne, si elle existe, montre les arguments à transmettre au module.

Les trois premières lignes dans / etc / pam.d / passwd (montré ci-dessus), chargez le AUTH SYSTEM Module pour vérifier que l'utilisateur a fourni des informations d'identification valides (compte). Si c'est le cas, cela lui permet de modifier le jeton d'authentification (mot de passe) en donnant la permission d'utiliser PASSWD (authentification).

Par exemple, si vous ajoutez

Rappelez-vous = 2 

à la ligne suivante

mot de passe suffisant PAM_UNIX.SO Sha512 Shadow Nullok try_first_pass use_authtok 

dans / etc / pam.D / System-Auth:

mot de passe suffisant PAM_UNIX.SO Sha512 Shadow Nullok try_first_pass use_authtok se souvenir = 2 

Les deux derniers mots de passe hachés de chaque utilisateur sont enregistrés dans / etc / Security / Opasswd afin qu'ils ne puissent pas être réutilisés:

Champs de mot de passe Linux

Résumé

Les compétences efficaces de gestion des utilisateurs et de fichiers sont des outils essentiels pour tout administrateur système. Dans cet article, nous avons couvert les bases et espérons que vous pourrez l'utiliser comme un bon début à pointer pour s'appuyer sur. N'hésitez pas à laisser vos commentaires ou vos questions ci-dessous, et nous répondrons rapidement.

Devenir un administrateur système certifié Linux