Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Gestión de las cuentas de usuario y los entornos de usuario en Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (Español) |
1. Gestión de cuentas de usuario y entornos de usuario (descripción general)
Novedades y cambios en la gestión de cuentas de usuario y entornos de usuario
Cambios de seguridad que afectan la gestión de cuentas de usuario
Introducción a la interfaz gráfica de usuario de User Manager
Editor administrativo (pfedit)
Cambios en el comando groupadd
Notificación de recuento de inicios de sesión fallidos
¿Qué son las cuentas de usuario y los grupos?
Componentes de cuentas de usuario
Nombres de usuario (inicio de sesión)
Uso de ID de usuario e ID de grupo de gran tamaño
Entorno de trabajo del usuario
Directrices para asignar nombres de usuario, ID de usuario e ID de grupo
Dónde se almacena la información de cuentas de usuario y grupos
Comandos para obtener información de cuenta de usuario
Comandos que se utilizan para la gestión de usuarios, roles y grupos
Personalización de un entorno de trabajo del usuario
Uso de archivos de inicialización de sitio
Cómo evitar referencias de sistema local
Historial de shells bash y ksh93
Variables de entorno de shell bash y shell ksh93
Personalización del shell Bash
Configuración de directrices de ruta
Variables de configuración regional
2. Gestión de cuentas de usuario mediante la interfaz de línea de comandos (tareas)
La siguiente información se describe en esta sección:
Una parte de la configuración de un directorio principal del usuario es proporcionar archivos de inicialización de usuario para el shell de inicio de sesión del usuario. Un archivo de inicialización de usuario es una secuencia de comandos de shell que establece un entorno de trabajo para un usuario después de que el usuario inicia sesión en un sistema. Básicamente, puede realizar cualquier tarea en un archivo de inicialización de usuario que puede realizar en una secuencia de comandos de shell. Sin embargo, la tarea principal del archivo de inicialización de usuario es definir las características de un entorno de trabajo de usuario, como una ruta de búsqueda, variables de entorno y entorno de ventanas del usuario. Cada shell de inicio de sesión tiene su propio archivo o sus archivos de inicialización de usuario, que se enumeran en la siguiente tabla. Tenga en cuenta que el archivo de inicialización de usuario predeterminado para los shells ksh93 y bash es /etc/skel/local.profile.
Tabla 1-7 Archivos de inicialización de usuario ksh93 y bash
|
Puede utilizar estos archivos como punto de inicio y luego modificarlos para crear un conjunto de archivos estándar que proporciona un entorno de trabajo común para todos los usuarios. También puede modificar estos archivos para proporcionar el entorno de trabajo para distintos tipos de usuarios.
Para obtener instrucciones paso a paso acerca de cómo crear grupos de archivos de inicialización de usuario para diferentes tipos de usuarios, consulte Cómo personalizar los archivos de inicialización de usuario.
Los administradores y los usuarios pueden personalizar archivos de inicialización de usuario. Esta importante tarea se puede realizar con archivos de inicialización de usuario centralizados o distribuidos globalmente denominados archivos de inicialización de sitio. Los archivos de inicialización de sitio le permiten introducir continuamente nuevas funcionalidades al entorno de trabajo del usuario al tiempo que permiten personalizar el archivo de inicialización del usuario.
Cuando hace referencia a un archivo de inicialización de sitio en un archivo de inicialización de usuario, todas las actualizaciones para el archivo de inicialización de sitio se reflejan automáticamente cuando el usuario inicia sesión en el sistema o cuando un usuario inicia un nuevo shell. Los archivos de inicialización de sitio están diseñados para distribuir cambios en todo el sitio para entornos de trabajo de los usuarios que no previó al agregar usuarios.
Puede personalizar un archivo de inicialización de sitio de la misma manera que personaliza un archivo de inicialización de usuario. Estos archivos normalmente residen en un servidor o un conjunto de servidores, y aparecen como la primera instrucción en un archivo de inicialización de usuario. También, cada archivo de inicialización de sitio debe ser del mismo tipo de secuencia de comandos de shell que el archivo de inicialización de usuario al que hace referencia.
Para hacer referencia a un archivo de inicialización de sitio en un archivo de inicialización de usuario de shell ksh93 o bash, coloque una línea al principio del archivo de inicialización de usuario similar a la siguiente línea:
. /net/machine-name/export/site-files/site-init-file
No agregue referencias específicas al sistema local en el archivo de inicialización de usuario. Las instrucciones en un archivo de inicialización de usuario deben ser válidas, independientemente del sistema al que el usuario se conecta.
Por ejemplo:
Para que un directorio principal del usuario esté disponible en cualquier lugar de la red, siempre haga referencia al directorio principal con la variable $HOME. Por ejemplo, use $HOME/bin en lugar de /export/home/username/bin. La variable $HOME funciona cuando el usuario inicia sesión en otro sistema y los directorios principales se montan automáticamente.
Para acceder a los archivos en un disco local, use nombres de ruta globales, como /net/system-name/directory-name. Cualquier directorio al que se hace referencia por /net/system-name se puede montar automáticamente en cualquier sistema en que el usuario inicie sesión, suponiendo que el sistema ejecuta AutoFS.
Esta versión de Oracle Solaris es compatible con las siguientes funciones y comportamiento de shell:
A la cuenta de usuario que se crea al instalar la versión de Oracle Solaris se le asigna el Bourne-Again Shell (bash) de GNU de manera predeterminada.
El shell de sistema estándar (bin/sh) ahora es el shell Korn 93 (ksh93).
El shell interactivo predeterminado es el shell Bourne-again (bash) (/usr/bin/bash).
Tanto el shell bash como el shell ksh93 cuentan con la función de edición de línea de comandos, lo que significa que se pueden editar los comandos antes de ejecutarlos.
Hay varias maneras en las que puede mostrar la información de ruta y el shell predeterminado:
Utilice los comandos echo $SHELL y 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
Utilice el comando pargs:
~$ pargs -l $$ /usr/bin/i86/ksh93
El shell ksh93 también tiene una variable incorporada denominada .sh.version, que se puede mostrar de la siguiente manera:
~$ echo ${.sh.version} Version jM 93u 2011-02-08
Para cambiar a un shell diferente, escriba la ruta del shell que desea utilizar.
Para salir de un shell, escriba exit.
En la siguiente tabla, se describen las opciones de shell que se admiten en Oracle Solaris.
Tabla 1-8 Funciones de shell básicas en la versión de Oracle Solaris
|
Nota - El shell Z (zsh) y el shell C mejorado (tsch) no se instalan en el sistema de forma predeterminada. Para usar cualquiera de estos shells, primero debe instalar los paquetes de software necesarios.
Tanto el shell bash como el shell ksh93 registran un historial de todos los comandos que ejecuta. Este historial se mantiene por usuario, lo que significa que el historial es persistente entre las sesiones de inicio de sesión y es representativo de todas las sesiones de inicio de sesión.
Por ejemplo, si está en un shell bash, puede visualizar el historial completo de los comandos que ha ejecutado, por ejemplo:
$ history 1 ls 2 ls -a 3 pwd 4 whoami . . .
Para mostrar un número de comandos anteriores, incluya un número entero en el comando:
$ history 2 12 date 13 history
Para obtener más información, consulte la página del comando man history(1).
El shell bash y el shell ksh93 almacenan información especial de variables que el shell conoce como una variable de entorno. Para obtener una lista completa de las variables de entorno actuales del shell bash, utilice el comando 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]'' . . .
Para el shell ksh93, use el comando set, que es el comando declare equivalente del 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 . . .
Para imprimir variables de entorno para cualquier shell, utilice el comando echo o printf. Por ejemplo:
$ echo $SHELL /usr/bin/bash $ printf ''$PATH\n'' /usr/bin:/usr/sbin
Nota - Las variables de entorno no persisten entre sesiones. Para configurar las variables de entorno que permanecen coherentes entre inicios de sesión, debe realizar los cambios en el archivo .bashrc.
Un shell puede tener dos tipos de variables:
Especifica las variables que se exportan a todos los procesos que son reproducidos por el shell. El comando export se utiliza para exportar una variable. Por ejemplo:
export VARIABLE=value
Estos valores se pueden visualizar mediante el comando env. Un subconjunto de variables de entorno como PATH, afecta el comportamiento del shell en sí mismo.
Especifica las variables que afectan sólo el shell actual.
En un archivo de inicialización de usuario, puede personalizar el entorno de shell de un usuario cambiando los valores de las variables predefinidas o especificando variables adicionales.
En la siguiente tabla, se proporcionan más detalles sobre el shell y las variables de entorno que están disponibles en la versión de Oracle Solaris.
Tabla 1-9 Descripciones de variables de shell y de entorno
|
Para personalizar el shell Bash, agregue la información al archivo .bashrc que está situado en el directorio principal. El usuario inicial que se crea al instalar Oracle Solaris tiene un archivo .bashrc que define PATH, MANPATH y el indicador de comandos. Para obtener más información, consulte la página del comando man bash(1).
La variable de entorno MANPATH especifica dónde el comando man busca páginas del comando man de referencia. MANPATH se establece de manera automática según el valor PATH de un usuario, pero, por lo general, incluye /usr/share/man y usr/gnu/share/man.
Tenga en cuenta que la variable de entorno MANPATH de un usuario se puede modificar, independientemente de la variable de entorno PATH. No es necesario un equivalente uno a uno de las ubicaciones de la página del comando man asociadas, con directorios en la variable de entorno $PATH del usuario.
Cuando el usuario ejecuta un comando utilizando la ruta completa, el shell utiliza la ruta para encontrar el comando. Sin embargo, cuando los usuarios especifican sólo un nombre de comando, el shell busca los directorios para el comando en el orden especificado por la variable PATH. Si el comando se encuentra en uno de los directorios, el shell ejecuta el comando.
Una ruta predeterminada está establecida por el sistema. Sin embargo, la mayoría de los usuarios la modifica para agregar otros directorios de comando. Muchos problemas del usuario relacionados con la configuración del entorno y el acceso a la versión correcta de un comando o una herramienta pueden atribuirse a rutas definidas incorrectamente.
A continuación se ofrecen algunas instrucciones para configurar variables PATH efectivas:
Si debe incluir el directorio actual (.) en su ruta, lo debe colocar último. La inclusión del directorio actual en la ruta es un riesgo de seguridad, porque algunas personas maliciosas podrían esconder un archivo ejecutable o una secuencia de comandos comprometido en el directorio actual. Considere el uso de nombres de ruta absolutos en su lugar.
Mantenga la ruta de búsqueda lo más corta posible. El shell busca cada directorio en la ruta. Si un comando no se encuentra, las búsquedas largas pueden ralentizar el rendimiento del sistema.
La ruta de búsqueda se lee de izquierda a derecha, por lo que debe colocar directorios para los comandos utilizados habitualmente al principio de la ruta.
Asegúrese de que los directorios no estén duplicados en la ruta.
Evite la búsqueda de directorios extensos, si es posible. Coloque directorios extensos al final de la ruta.
Coloque directorios locales antes que los directorios montados NFS para disminuir la probabilidad de "cuelgues" cuando el servidor NFS no responde. Esta estrategia también reduce el tráfico de red innecesario.
Las variables de entorno LANG y LC especifican convenciones y conversiones específicas de una región para el shell. Estas conversiones y convenciones incluyen zonas horarias, pedidos de clasificación y formatos de fechas, hora, moneda y números. Además, puede utilizar el comando stty en un archivo de inicialización de usuario para indicar si la sesión de terminal admitirá caracteres de varios bytes.
La variable LANG establece todas las posibles conversiones y convenciones para la configuración regional dada. Puede establecer diversos aspectos de localización por separado mediante estas variables LC: LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_NUMERIC, LC_MONETARY y LC_TIME.
Nota - De manera predeterminada, Oracle Solaris 11 sólo instala configuraciones regionales basadas en UTF-8.
En la siguiente tabla, se describen los valores de variables de entorno para las configuraciones regionales principales de Oracle Solaris 11.
Tabla 1-10 Valores para variables LANG y LC
|
Ejemplo 1-1 Configuración regional mediante las variables LANG
En un archivo de inicialización de usuario de shell Bourne o Korn, debe agregar lo siguiente:
LANG=de_DE.ISO8859-1; export LANG
LANG-de_DE.UTF-8; export LANG
Cuando crea un archivo o directorio, los permisos de archivo predeterminados asignados a un archivo o directorio están controlados por la máscara de usuario. La máscara de usuario está definida por el comando umask en un archivo de inicialización de usuario. Puede mostrar el valor actual de la máscara de usuario si escribe umask y presiona la tecla Retorno.
La máscara de usuario contiene los siguientes valores octales:
El primer dígito define los permisos para el usuario
El segundo dígito define los permisos para el grupo
El tercer dígito define los permisos para otros, también denominados world
Tenga en cuenta que si el primer dígito es cero, no se muestra. Por ejemplo, si la máscara de usuario se establece en 022, se muestra 22.
Para determinar el valor umask que desea definir, reste el valor de los permisos que desee de 666 (para un archivo) o 777 (para un directorio). El resto es el valor que se debe utilizar con el comando umask. Por ejemplo, supongamos que desea cambiar el modo predeterminado para los archivos a 644 (rw-r--r--). La diferencia entre 666 y 644 es 022, que es el valor que utilizará como un argumento para el comando umask.
También puede determinar el valor umask que desea establecer utilizando la siguiente tabla. Esta tabla muestra los permisos de archivo y directorio que se crean para cada uno de los valores octales de umask.
Tabla 1-11 Permisos para valores de umask
|
La siguiente línea en un archivo de inicialización de usuario establece los permisos de archivo predeterminados en rw-rw-rw-.
umask 000
A continuación, se muestra un ejemplo del archivo de inicialización de usuario .profile. Puede utilizar este archivo para personalizar sus propios archivos de inicialización de usuario. En este ejemplo, se utilizan los nombres y las rutas del sistema que tendrá que modificar para su sitio en particular.
Ejemplo 1-2 El archivo .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
Define la ruta de búsqueda de shell del usuario.
Define la ruta al archivo de correo del usuario.
Define el servidor de reloj/hora del usuario.
Define la ruta de búsqueda del usuario para páginas del comando man.
Define la impresora predeterminada del usuario.
Establece los permisos de creación de archivo predeterminados del usuario.
Establece las variables de entorno enumeradas.