Ignorer les liens de navigation | |
Quitter l'aperu | |
Gestion des compte et environnements utilisateur dans Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (Français) |
1. Gestion des comptes et des environnements utilisateur (présentation)
Nouveautés et modifications concernant la gestion des comptes et des environnements utilisateur
Modifications en matière de sécurité ayant une incidence sur la gestion des comptes utilisateur
Présentation de l'interface graphique du Gestionnaire d'utilisateurs
Editeur d'administration (pfedit)
Sous-répertoire /var/user/$USER
Modifications apportées à la commande groupadd
Notification relative au nombre d'échecs de connexion
Définition des comptes utilisateur et des groupes
Composants d'un compte utilisateur
Noms d'utilisateur (de connexion)
Numéros d'identification de l'utilisateur
Utilisation d'ID utilisateur et ID de groupe de grande valeur
Environnement de travail de l'utilisateur
Recommandations relatives à l'affectation des noms d'utilisateur, ID utilisateur et ID de groupe
Emplacement de stockage des informations de compte utilisateur et de groupe
Commandes permettant d'obtenir des informations sur les comptes utilisateur
Commandes permettant de gérer les utilisateurs, les rôles et les groupes
Personnalisation de l'environnement de travail d'un utilisateur
Utilisation des fichiers d'initialisation du site
Avertissement concernant les références au système local
Historique des shells bash et ksh93
Variables d'environnement des shells bash et ksh93
Personnalisation du shell bash
Variable d'environnement MANPATH
Recommandations relatives à la définition des chemins d'accès
Variables d'environnement linguistique
2. Gestion des comptes utilisateur avec l'interface de ligne de commande (tâches)
Les informations suivantes sont décrites dans cette section :
Le paramétrage du répertoire personnel d'un utilisateur consiste notamment à fournir des fichiers d'initialisation utilisateur au shell de connexion de l'utilisateur. Un fichier d'initialisation utilisateur est un script shell qui définit un environnement de travail d'utilisateur après la connexion de l'utilisateur à un système. En fait, vous pouvez exécuter les mêmes tâches dans un fichier d'initialisation utilisateur que dans un script shell. Toutefois, l'objectif principal d'un fichier d'initialisation utilisateur est de définir les caractéristiques de l'environnement de travail d'un utilisateur, tels que ses chemins de recherche, les variables d'environnement et l'environnement de multifenêtrage. Chaque shell de connexion dispose de son ou ses propres fichiers d'initialisation utilisateur, répertoriés dans le tableau ci-dessous. Notez que le fichier d'initialisation utilisateur par défaut pour les shells bash et ksh93 est /etc/skel/local.profile.
Tableau 1-7 Fichiers d'initialisation utilisateur bash et ksh93
|
Vous pouvez utiliser ces fichiers comme un point de départ, puis les modifiez pour créer un ensemble standard de fichiers qui fournissent l'environnement de travail commun à tous les utilisateurs. Vous pouvez également modifier ces fichiers afin de fournir l'environnement de travail aux différents types d'utilisateurs.
Pour consulter des instructions détaillées sur la façon de créer des ensembles de fichiers d'initialisation pour différents types d'utilisateurs, reportez-vous à la section Personnalisation des fichiers d'initialisation utilisateur.
Les fichiers d'initialisation peuvent être personnalisés par l'administrateur et l'utilisateur. Cette tâche importante peut être réalisée avec des fichiers d'initialisation utilisateur centralisés et distribués de manière globale. Ces fichiers sont qualifiés de fichiers d'initialisation du site. Les fichiers d'initialisation du site vous permettent d'introduire en continu de nouvelles fonctionnalités dans l'environnement de travail utilisateur, tout en permettant à l'utilisateur de personnaliser son fichier d'initialisation.
Lorsque vous référencez un fichier d'initialisation du site dans un fichier d'initialisation utilisateur, toutes les mises à jour du fichier d'initialisation du site sont automatiquement répercutées lorsque l'utilisateur se connecte au système ou lorsqu'un utilisateur démarre un nouveau shell. Les fichiers d'initialisation du site sont conçus pour vous permettre de distribuer à l'échelle du site les modifications apportées aux environnements de travail des utilisateurs que vous n'aviez pas prévu lorsque vous avez ajouté les utilisateurs.
Vous pouvez personnaliser un fichier d'initialisation du site de la même façon que vous personnalisez un fichier d'initialisation utilisateur. Ces fichiers résident généralement sur un serveur, ou un ensemble de serveurs, et s'affichent comme la première instruction dans un fichier d'initialisation utilisateur. En outre, chaque fichier d'initialisation du site doit être du même type de script shell que le fichier d'initialisation utilisateur qui le référence.
Pour référencer un fichier d'initialisation du site dans un fichier d'initialisation utilisateur bash ou ksh93, placez au début du fichier d'initialisation utilisateur une ligne similaire à la ligne suivante :
. /net/machine-name/export/site-files/site-init-file
N'ajoutez pas de références propres au système local dans le fichier d'initialisation utilisateur. En effet, les instructions figurant dans ce fichier doivent être valides, quel que soit le système auquel l'utilisateur se connecte.
Par exemple :
Pour que le répertoire personnel d'un utilisateur soit disponible n'importe où sur le réseau, faites toujours référence à ce répertoire à l'aide de la variable $HOME. Par exemple, utilisez $HOME/bin au lieu de /export/home/ username/bin. La variable $HOME fonctionne lorsque l'utilisateur se connecte à un autre système, et les répertoires personnels sont montés automatiquement.
Pour accéder aux fichiers d'un disque local, utilisez les noms de chemin d'accès globaux, comme par exemple /net/system-name/directory-name. N'importe quel répertoire référencé par /net/system-name peut être automatiquement monté sur n'importe quel système auquel l'utilisateur se connecte, en supposant que le système exécute AutoFS.
Cette version d'Oracle Solaris prend en charge les fonctions et comportements de shell suivants :
Le shell GNU Bourne-Again (bash) est affecté par défaut au compte d'utilisateur qui est créé lorsque vous installez la version d'Oracle Solaris.
Le shell standard du système (bin/sh) est maintenant Korn Shell 93 (ksh93).
Le shell interactif par défaut (/usr/bin/bash) est le shell Bourne-Again (bash).
Les shells bash et ksh93 prennent en charge l'édition de ligne de commande, ce qui signifie que vous pouvez modifier les commandes avant de les exécuter.
Vous pouvez afficher le shell par défaut et son chemin d'accès de plusieurs manières.
Exécutez les commandes echo $SHELL et which :
$ grep root /etc/passwd root:x:0:0:Super-User:/root:/usr/bin/bash $ echo $SHELL /usr/bin/bash $ which ksh93 /usr/bin/ksh93
Exécutez la commande pargs :
~$ pargs -l $$ /usr/bin/i86/ksh93
Le shell ksh93 comprend également une variable intégrée nommée .sh.version, que vous pouvez afficher comme suit :
~$ echo ${.sh.version} Version jM 93u 2011-02-08
Pour passer à un autre shell, entrez le chemin d'accès du shell que vous souhaitez utiliser.
Pour quitter un shell, entrez exit.
Le tableau ci-dessous décrit les options de shell prises en charge dans Oracle Solaris.
Tableau 1-8 Fonctions de shell de base dans la version d'Oracle Solaris
|
Remarque - Le Z shell (zsh) et le C shell amélioré(tsch) ne sont pas installés sur votre système par défaut. Pour utiliser l'un de ces shells, vous devez d'abord installer les packages logiciels requis.
Les shells bash et ksh93 enregistrent un historique de toutes les commandes que vous exécutez. Cet historique est conservé pour chaque utilisateur, ce qui signifie qu'il est préservé d'une session à l'autre et qu'il est représentatif de l'ensemble de vos sessions de connexion.
Par exemple, si vous êtes dans un shell bash, vous pouvez afficher l'historique complet des commandes exécutées, comme suit :
$ history 1 ls 2 ls -a 3 pwd 4 whoami . . .
Pour afficher un nombre donné de commandes précédentes, incluez un nombre entier dans la commande :
$ history 2 12 date 13 history
Pour plus d'informations, reportez-vous à la page de manuel history(1)
Les shells bash et ksh93 stockent des informations sur des variables spéciales constituant pour les shells des variables d'environnement. Pour afficher la liste complète des variables d'environnement actuelles pour le shell bash, exécutez la commande declare :
$ declare BASH=/usr/bin/bash BASH_ARGC=() BASH_ARGV=() BASH_LINEND=() BASH_SOuRCE=() BASH_VERSINFO=([0]=''3'' [1]=''2'' [2]=''25'' [3]=''1'' [4]=''release'' [5]'' . . .
Pour le shell ksh93, utilisez la commande set, qui est l'équivalent de la commande declare du shell bash :
$ set COLUMNS=80 ENV='$HOME/.kshrc' FCEDIT=/bin/ed HISTCMD=3 HZ='' IFS=$' \t\n' KSH_VERSION=.sh.version LANG=C LINENO=1 . . .
Pour imprimer les variables d'environnement de l'un ou l'autre shell, utilisez la commande echo ou la commande printf. Par exemple :
$ echo $SHELL /usr/bin/bash $ printf ''$PATH\n'' /usr/bin:/usr/sbin
Remarque - Les variables d'environnement ne sont pas conservées entre les sessions. Pour définir des variables d'environnement qui restent cohérentes entre les connexions, vous devez effectuer les modifications correspondantes dans le fichier .bashrc.
Un shell peut avoir deux types de variables :
Variables exportées vers tous les processus générés par le shell. La commande exporter permet d'exporter une variable. Par exemple :
export VARIABLE=value
Ces paramètres peuvent être affichés à l'aide de la commande env. Un sous-ensemble de variables d'environnement, tel que PATH, affecte le comportement du shell lui-même.
Variables qui affectent uniquement le shell actuel.
Dans un fichier d'initialisation utilisateur, vous pouvez personnaliser l'environnement de shell d'un utilisateur en modifiant les valeurs des variables prédéfinies ou en spécifiant des variables supplémentaires.
Le tableau suivant fournit plus de détails sur le shell et les variables d'environnement disponibles dans la version d'Oracle Solaris.
Tableau 1-9 Description des variables d'environnement et shell
|
Pour personnaliser le shell bash, ajoutez les informations au fichier .bashrc qui se trouve dans votre répertoire personnel. L'utilisateur initial créé lors de l'installation d'Oracle Solaris dispose d'un fichier .bashrc qui définit les PATH, MANPATH et l'invite de commande. Pour plus d'informations, reportez-vous à la page de manuel bash(1).
La variable d'environnement MANPATH indique l'emplacement où la commande man recherche les pages de manuel de référence. La variable d'environnement MANPATH est définie automatiquement en fonction de la valeur PATH de l'utilisateur, mais elle inclut généralement /usr/share/man et usr/gnu/share/man.
Notez que la variable d'environnement MANPATH d'un utilisateur peut être modifiée indépendamment de la variable d'environnement PATH. Un équivalent individuel des emplacements des pages de manuel associées, avec des répertoires dans le $PATH de l'utilisateur, n'est pas nécessaire.
Lorsque l'utilisateur exécute une commande en utilisant le chemin d'accès complet, le shell utilise ce chemin pour trouver la commande. Toutefois, lorsque des utilisateurs n'indiquent qu'un nom de commande, le shell recherche cette commande dans les répertoires, selon l'ordre indiqué par la variable chemin. Si la commande est trouvée dans l'un des répertoires, le shell exécute la commande.
Un chemin d'accès par défaut est défini par le système. Cependant, la plupart des utilisateurs le modifient pour ajouter d'autres répertoires de commande. De nombreux problèmes d'utilisateur en matière de configuration de l'environnement et d'accès à la version correcte d'une commande ou d'un outil sont dus à la définition inappropriée des chemins d'accès.
Voici quelques recommandations pour la configuration de variables PATH efficaces :
Si vous devez inclure le répertoire actuel (.) dans le chemin d'accès, il doit être placé en dernier. Inclure le répertoire actuel dans le chemin d'accès constitue un risque de sécurité, car certaines personnes malveillantes peuvent cacher un script ou un fichier exécutable compromis dans le répertoire actuel. Vous pouvez envisager d'utiliser les noms de chemin absolus à la place.
Conservez le chemin de recherche aussi court que possible. Le shell effectue des recherches dans chaque répertoire du chemin d'accès. Si aucune commande n'est trouvée, de longues recherches peuvent ralentir les performances du système.
Le chemin de recherche est lu de gauche à droite, de sorte que vous devez placer les répertoires de commandes fréquemment utilisées au début du chemin.
Assurez-vous que les répertoires ne sont pas dupliqués dans le chemin d'accès.
Evitez, dans la mesure du possible, d'effectuer des recherches dans des répertoires volumineux. Placez les répertoires volumineux à la fin du chemin.
Placez les répertoires locaux avant les répertoires montés sur NFS afin de diminuer les risques de "blocage" lorsque le serveur NFS ne répond pas. Cette stratégie permet également de réduire le trafic réseau inutile.
Les variables d'environnement LANG et LC indiquent les conventions et conversions propres à l'environnement linguistique pour le shell. Ces conversions et conventions incluent les fuseaux horaires, l'ordre de classement et les formats de date, d'heure, de devise et de chiffres. En outre, vous pouvez utiliser la commande stty dans un fichier d'initialisation utilisateur afin d'indiquer si la session de terminal prendra en charge les caractères multioctets.
La variable LANG définit toutes les conversions et conventions possibles pour l'environnement linguistique. Vous pouvez définir différents aspects de la localisation séparément par le biais des variables LC suivantes : LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_NUMERIC, LC_MONETARY et LC_TIME.
Remarque - Par défaut, Oracle Solaris 11 installe uniquement les environnements linguistiques UTF-8.
Le tableau suivant décrit les valeurs des variables d'environnement pour les environnements linguistiques de base d'Oracle Solaris 11.
Tableau 1-10 Valeurs des variables LANG et LC.
|
Exemple 1-1 Définition de l'environnement linguistique à l'aide des variables LANG
Dans un fichier d'initialisation utilisateur Bourne shell ou Korn shell, vous devez ajouter les éléments suivants :
LANG=de_DE.ISO8859-1; export LANG
LANG-de_DE.UTF-8; export LANG
Lorsque vous créez un fichier ou un répertoire, les autorisations assignées par défaut au fichier ou répertoire sont contrôlées par le masque utilisateur. Le masque utilisateur est défini par la commande umask dans un fichier d'initialisation utilisateur. Vous pouvez afficher la valeur courante du masque utilisateur en tapant umask et en appuyant sur Entrée.
Le masque utilisateur contient les valeurs octales suivantes :
Le premier chiffre définit les autorisations pour l'utilisateur.
Le deuxième chiffre définit les autorisations pour le groupe.
Le troisième chiffre définit les autorisations pour les autres, aussi appelé world.
Notez que si le premier chiffre est zéro, il n'est pas affiché. Par exemple, si le masque utilisateur est défini sur 022, le nombre 22 s'affiche.
Pour déterminer la valeur umask à définir, soustrayez la valeur des autorisations souhaitées de 666 (pour un fichier) ou 777 (pour un répertoire). Le résultat de cette soustraction correspond à la valeur à utiliser avec la commande umask. Par exemple, supposons que vous souhaitez modifier le mode par défaut pour les fichiers et le passer à 644 (rw-r--r--). La différence entre 666 et 644 est 022, ce qui correspond à la valeur à utiliser en tant qu'argument de la commande umask.
Vous pouvez également déterminer la valeur umask que vous voulez définir à l'aide du tableau suivant. Ce tableau indique les autorisations de fichiers et de répertoires qui sont créées pour chacune des valeurs octales de umask.
Tableau 1-11 Autorisations pour les valeurs umask
|
La ligne suivante dans un fichier d'initialisation utilisateur définit les autorisations de fichier par défaut sur rw-rw-rw-.
umask 000
Vous trouverez ci-après un exemple de fichier d'initialisation utilisateur .profile. Vous pouvez utiliser ce fichier pour personnaliser vos propres fichiers d'initialisation. Cet exemple utilise des noms et des chemins d'accès système que vous devez modifier pour votre site particulier.
Exemple 1-2 Fichier .profile
(Line 1) PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/gnu/bin:. (Line 2) MAIL=/var/mail/$LOGNAME (Line 3) NNTPSERVER=server1 (Line 4) MANPATH=/usr/share/man:/usr/local/man (Line 5) PRINTER=printer1 (Line 6) umask 022 (Line 7) export PATH MAIL NNTPSERVER MANPATH PRINTER
Définit le chemin de recherche du shell de l'utilisateur.
Définit le chemin d'accès au fichier messagerie de l'utilisateur.
Définit le serveur de temps/d'horloge de l'utilisateur.
Définit le chemin de recherche de l'utilisateur pour les pages de manuel.
Définit l'imprimante par défaut de l'utilisateur.
Définit les autorisations de création de fichier par défaut de l'utilisateur.
Définit les variables d'environnement répertoriées.