GNU/Linux >> Tutoriales Linux >  >> Linux

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, 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 corporativos que proteger, sistemas que mantener y usuarios que satisfacer. A menudo hay un conflicto entre esos 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 corporativo. Lograr 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 mostrarle dónde hacer los cambios necesarios para que pueda hacerlo.

Este artículo cubre la personalización de los entornos de su usuario usando archivos que se encuentran en /etc/skel y /etc/profile.d directorios. Con una instalación nueva 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 sepas, los llamados punto (aquellos nombrados con un punto anterior (.) están ocultos de las listas de archivos estándar. Para verlos, debe usar el -a cambia 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 modificados por el usuario root.

.bash_perfil

El .bash_profile El archivo es el más importante de los tres archivos enumerados. Es 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 define 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 definir un indicador de shell personalizado, definir el editor de su elección o cualquier otra cosa que desee colocar en el archivo para el usuario.

[ También te puede interesar: Consejos y trucos sobre las variables de entorno de Linux]

.bashrc

El contenido del archivo .bashrc, por defecto, solo llama al /etc/bashrc expediente. El /etc/bashrc El archivo 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/profile

La lista de /etc/bashrc es demasiado largo para este lugar, pero puedes mirarlo y ver lo que hace. El /etc/bashrc archivo se refiere al /etc/profile archivo para más variables de entorno y configuraciones. Ambos archivos vienen con 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.

Entonces, verá, personalizar un entorno de usuario no es tan simple como pensaba.

/etc/perfil.d

Si enumera 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 de los archivos son para usar 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 anular cualquier entrada envvar (variables de entorno) actualmente configurada con un estándar corporativo, realice entradas en este archivo para hacerlo.

Advertencias

A medida que los usuarios aprenden más sobre sus entornos y las cosas de Google, personalizarán los suyos, a menudo en detrimento de ellos. Tienes que lograr un equilibrio entre ser un administrador de sistemas de laissez-faire y un administrador de sistemas dictador de mano dura. Quiere que los usuarios sean productivos pero que tengan un control limitado sobre sus propios entornos. Mi sugerencia para hacer felices a ambas partes es establecer todos los parámetros del entorno de usuario estándar corporativo en /etc/bashrc y en /etc/profile.d/sh.local que no desea que se edite ni cambie.

Tenga en cuenta que /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 esos archivos con un 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 /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 un .user archivo que el usuario puede editar e incluirlo en el .bash_profile archivo.

[ ¿Quiere obtener más información sobre seguridad? Consulte la lista de verificación de cumplimiento y seguridad de TI. ] 

Resumir

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 Habilitar Sysadmin. En mi propia experiencia, todos los usuarios sienten que son la excepción al estándar corporativo y, muy pronto, hay un montón de excepciones y ningún estándar corporativo en absoluto.


Linux
  1. Cómo cambiar un nombre de usuario en Linux

  2. Cómo enumerar u ordenar todos los archivos por tamaño en Linux

  3. Cómo configurar los privilegios de Sudo para el usuario en Linux

  4. Cómo agregar un usuario a un grupo en Linux

  5. Cómo deshabilitar el inicio de sesión remoto para el usuario raíz en una máquina Linux

¿Olvidó la contraseña de Linux en WSL? Aquí está cómo restablecerlo fácilmente

Cómo cambiar de usuario en Linux

Cómo limitar el usuario root en CentOS

¿Cómo deshabilitar el inicio de sesión SSH para el usuario raíz en Linux?

Cómo agregar un usuario a un grupo en Linux

Cómo agregar un usuario a un grupo de Linux