Cómo personalizar los entornos de usuario de Linux

La seguridad del sistema es una preocupación importante. Como administrador de sistemas, como dije antes, esta es su principal preocupación. Agregar usuarios a un sistema disminuye la seguridad. Su trabajo es crear un entorno utilizable pero seguro para sus usuarios. Tiene activos empresariales que proteger, sistemas que mantener y usuarios que satisfacer. A menudo hay un conflicto entre estos tres aspectos de la administración del sistema, como bien sabes. Una forma de satisfacer los tres es personalizar los entornos de sus usuarios implementando y haciendo cumplir un estándar empresarial. Encontrar un equilibrio entre la productividad del usuario y la seguridad del sistema no es fácil. No puedo escribir especificaciones para su situación particular, pero puedo decirle dónde hacer los cambios necesarios para que pueda hacerlo.

Este artículo cubre la personalización de los entornos de sus usuarios utilizando archivos que se encuentran en el /etc/skel y /etc/profile.d directorios. Con una nueva instalación del sistema, encontrará tres archivos en /etc/skel: .bash_logout, .bash_profile, y .bashrc. Cuando crea una nueva cuenta de usuario en un sistema, estos tres archivos se copian en el directorio de inicio del usuario y son propiedad del usuario. En caso de que no lo supiera, los llamados archivos (aquellos nombrados con un punto anterior (.) están ocultos de las listas de archivos estándar. Para verlos, debe usar el -a cambiar con el comando ls.

-rw-r--r--.  1 root root   18 Mar 31 21:17 .bash_logout
-rw-r--r--.  1 root root  193 Mar 31 21:17 .bash_profile
-rw-r--r--.  1 root root  231 Mar 31 21:17 .bashrc

Como puede ver, estos archivos son propiedad de root y solo pueden ser editados o cambiados por el usuario root.

Índice

    .bash_perfil

    el .bash_profile es el más importante de los tres archivos enumerados. Este es el más importante porque es el único archivo "obligatorio" de la lista. Se ejecuta cada vez que el usuario inicia sesión en un sistema, inicia el .bashrc y establece y exporta la variable PATH. Su configuración predeterminada es simple.

    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
    	. ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    PATH=$PATH:$HOME/.local/bin:$HOME/bin
    
    export PATH
    

    el .bash_profile también se puede usar para configurar un indicador de shell personalizado, configurar el editor de su elección o cualquier otra cosa que desee colocar en el archivo para el usuario.

    .bashrc

    El contenido del archivo .bashrc, por defecto, solo llama al /etc/bashrc archivar. el /etc/bashrc consta de ajustes que se pueden configurar para todos los usuarios.

    # .bashrc
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
    	. /etc/bashrc
    fi
    
    # Uncomment the following line if you don't like systemctl's auto-paging feature:
    # export SYSTEMD_PAGER=
    
    # User specific aliases and functions

    También puede llamar a otros archivos configurados para ciertos grupos de usuarios. Por ejemplo, si un usuario es miembro del grupo financiero, puede llamar a un archivo para configurar un conjunto particular de variables para todos los usuarios del grupo financiero.

    / etc / bashrc y / etc / perfil

    la lista para /etc/bashrc es demasiado largo para este lugar, pero puedes verlo y ver lo que hace. el /etc/bashrc el archivo se refiere /etc/profile archivo para más variables de entorno y configuraciones. Ambos archivos van acompañados de la siguiente advertencia.

    # It's NOT a good idea to change this file unless you know what you
    # are doing. It's much better to create a custom.sh shell script in
    # /etc/profile.d/ to make custom changes to your environment, as this
    # will prevent the need for merging in future updates.

    Como puede ver, personalizar un entorno de usuario no es tan fácil como podría pensar.

    /etc/perfil.d

    Si lista los archivos en /etc/profile.d, verá lo siguiente:

    -rw-r--r--.  1 root root  771 Mar 31 21:50 256term.csh
    -rw-r--r--.  1 root root  841 Mar 31 21:50 256term.sh
    -rw-r--r--.  1 root root  196 Mar 24  2017 colorgrep.csh
    -rw-r--r--.  1 root root  201 Mar 24  2017 colorgrep.sh
    -rw-r--r--.  1 root root 1741 Aug  6  2019 colorls.csh
    -rw-r--r--.  1 root root 1606 Aug  6  2019 colorls.sh
    -rw-r--r--.  1 root root   80 Mar 31 23:29 csh.local
    -rw-r--r--.  1 root root 1706 Mar 31 21:50 lang.csh
    -rw-r--r--.  1 root root 2703 Mar 31 21:50 lang.sh
    -rw-r--r--.  1 root root  123 Jul 30  2015 less.csh
    -rw-r--r--.  1 root root  121 Jul 30  2015 less.sh
    -rw-r--r--.  1 root root   81 Mar 31 23:29 sh.local
    -rw-r--r--.  1 root root  164 Jan 27  2014 which2.csh
    -rw-r--r--.  1 root root  169 Jan 27  2014 which2.sh

    Puede ver que muchos archivos están destinados para su uso en el shell C. El archivo más importante para el enfoque de este artículo es sh.local. El contenido de sh.local se enumera a continuación.

    #Add any required envvar overrides to this file, it is sourced from /etc/profile

    Como puede ver en el mensaje, si desea reemplazar las entradas envvar (variables de entorno) actualmente configuradas con un estándar empresarial, cree entradas en este archivo para hacerlo.

    Advertencias

    A medida que los usuarios aprenden más sobre sus entornos y elementos de Google, personalizarán los suyos, a menudo en detrimento de ellos. Tienes que lograr un equilibrio entre ser un administrador de sistema de laissez-faire y un administrador de sistema de dictador autoritario. Desea que los usuarios sean productivos pero que tengan un control limitado sobre sus propios entornos. Mi sugerencia para satisfacer a ambas partes es establecer todas las configuraciones de entorno de usuario estándar de la empresa en /etc/bashrc y en /etc/profile.d/sh.local que no desea que se edite o modifique.

    Darse cuenta de que el /home/user/.bash_profile, .bashrc, y .bash_logout son archivos editables por el usuario. La única forma de evitar esto es cambiar el permiso en estos archivos con el script de usuario raíz después de crear las cuentas. En otras palabras, ejecute un script después de crear una cuenta de usuario para cambiar los permisos en el /home/user/.bash* archivos a root: rw-r--r--. El usuario no podrá modificar los archivos.

    Si desea bloquear el entorno cambiando el .bash* archivos a la propiedad raíz, puede crear un nuevo archivo en /etc/skel como una .user archivo que el usuario puede editar e incluir en el .bash_profile archivar.

    Conclusión

    La personalización del entorno de un usuario puede mejorar la seguridad del sistema y estandarizar lo que ven los usuarios y cómo interactúan con un sistema. Otorgar acceso de shell a un sistema de producción tiene sus propias implicaciones, pero debe proporcionar recursos para que sus usuarios maximicen su productividad y la seguridad del sistema. Si encuentra el equilibrio perfecto, escríbalo en un artículo para Activar Sysadmin. Desde mi propia experiencia, cada usuario se considera a sí mismo como la excepción al estándar corporativo y muy pronto tendrá un montón de excepciones y ningún estándar corporativo en absoluto.

    Artículos de interés

    Subir