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.