Mi jefe me ofreció ser el administrador del sistema para nuestro servidor redhat de producción. Me pidió que reforzara la seguridad para evitar contratiempos como rm -f *
ese que ocurrieron hace poco.
En este momento, tenemos 53 usuarios entrando en la máquina y es una pesadilla de auditoría. Me pregunto si es posible permitir el acceso del usuario solo en días específicos de la semana.
Por ejemplo, ¿puedo permitir que el usuario 'Joe' inicie sesión SOLO los martes y jueves y 'Jane' solo los domingos? ¿Se etc/sudoers
puede personalizar para permitir esto?
¿Hay una mejor manera en lugar de usar sudoers?
permissions
security
sudo
Chris
fuente
fuente
rm -rf /
.Respuestas:
sudo
hace su autenticación a través de PAM, como casi todo lo demás en una caja de Linux.Entonces deberías poder usar
pam_time.so
para hacer esto.Por defecto en Debian al menos, ese módulo no está habilitado. Debe agregar una línea que se vea así:
ya sea
/etc/pam.d/sudo
para habilitar solo sudo o para/etc/pam.d/common-account
(después del bloque pam-auth-update) para habilitar todos los programas en el sistema.Luego edite
/etc/security/time.conf
para establecer sus restricciones. El nombre del servicio debe sersudo
. Por ejemplo, para permitir que Fred usesudo
solo entre las 3 p.m. y las 5 p.m. del viernes:(NOTA: no he probado esto).
editar: Para ser claros, estoy de acuerdo con la otra respuesta y los diversos comentaristas, parece que hay demasiadas personas ejecutando demasiados comandos como root, y realmente necesita corregir eso. Y, por supuesto, si pueden convertirse en root, pueden editar la configuración de pam ...
fuente
Me preguntaría por qué 53 usuarios necesitan sudo para hacer su trabajo diario: para la mayoría de los usuarios (incluso los desarrolladores), sudo debería ser una rara excepción, no una cosa tan rutinaria que alguien ejecute un
sudo rm -rf *
comando casualmente .¿Puede usar permisos de grupo (o incluso ACL más avanzadas) para dar a las personas acceso a los archivos que necesitan para realizar su trabajo, tal vez con algunos scripts o binarios setuid o sudo'ed para que puedan hacer cosas como reiniciar servicios? (tenga en cuenta que es difícil escribir un script setuid / sudo seguro, por lo que es más honesto mantener a las personas honestas).
Incluso si puede restringir a las personas a un día a la semana de acceso a sudo, todavía son 53 personas con acceso a sudo en una semana, por lo que realmente no ayuda con su problema central.
Para el caso, me preguntaría si tantos usuarios necesitan acceso a un servidor de producción: ¿pueden enviar registros o cualquier dato / archivo que necesiten a una máquina que no es de producción?
fuente
vi/cp/mv/rm
. Solocd
ymore
. Nada más.La forma más sencilla sería usar suders.d (a través de inludedir) para su configuración. Luego, podría tener trabajos cron que podrían colocar las reglas para cada usuario en ese directorio para las veces que lo desee.
La directiva #includedir se puede usar en / etc / sudoers para crear un directorio sudo.d en el que pueda colocar las reglas de sudoers como parte de sus reglas. Por ejemplo, dado:
#includedir /etc/sudoers.d
sudo leerá cada archivo en /etc/sudoers.d, omitiendo los nombres de archivo que terminan en '~' o contienen un '.' carácter para evitar causar problemas con el administrador de paquetes o el editor de archivos temporales / de respaldo. Los archivos se analizan en orden léxico ordenado. Es decir, /etc/sudoers.d/01_first se analizará antes de /etc/sudoers.d/10_second. Tenga en cuenta que debido a que la clasificación es léxica, no numérica, /etc/sudoers.d/1_whoops se cargará después de /etc/sudoers.d/10_second. Se puede usar un número constante de ceros a la izquierda en los nombres de archivo para evitar tales problemas.
Tenga en cuenta que, a diferencia de los archivos incluidos a través de #include, visudo no editará los archivos en un directorio #includedir a menos que uno de ellos contenga un error de sintaxis. Todavía es posible ejecutar visudo con el indicador -f para editar los archivos directamente.
/etc/sudoers.d/joe estaría presente cuando desee que joe tenga acceso y simplemente puede eliminar el archivo para quitarle el acceso.
fuente
Puede agregar un crontab para colocar a los usuarios en un grupo sudo, y luego un segundo crontab para eliminar a ese usuario.
fuente