sudo – Este usuario no está disponible actualmente, pero este usuario le permite ejecutar un script

Pregunta:

Creé un usuario especial en / etc / passwd con:

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

No quiero permitir el inicio de sesión de este usuario (a través de la consola, ssh, ftp, de cualquier forma).

Él es solo para ejecutar un script a través de:

sudo su secure -c '/home/someuser/secure.script'

Pero me da This user is currently not available. . ¿Cómo configurarlo para poder ejecutar un script de esta manera pero evitar cualquier inicio de sesión (consola, ssh, ftp, …) de este usuario en el sistema?


He notado que cuando /usr/sbin/nologin en la línea de comandos, la computadora responde con This account is currently not available. .

Respuesta:

Este es un caso de uso típico de sudo .

Está mezclando sudo que permite ejecutar comandos como otro usuario y es altamente configurable (puede especificar selectivamente qué usuario puede ejecutar qué comando como qué usuario) y su que cambia a otro usuario si conoce la contraseña (o es root). su siempre ejecuta el shell escrito en /etc/passwd , incluso si se usa su -c . Debido a esto, su no es compatible con /usr/sbin/nologin .

Deberías usar

sudo -u secure /home/someuser/secure.script

Como sudo es configurable, puede controlar quién puede usar este comando y si necesita ingresar una contraseña para ejecutarlo. Necesita editar /etc/sudoers usando visudo para hacer esto. (Tenga cuidado al editar / etc / sudoers y siempre use visudo para hacerlo. La sintaxis no es trivial y un error puede bloquear su cuenta raíz).

Esta línea en sudoers permite a cualquier persona del grupo somegroup ejecutar el comando de forma secure :

%somegroup    ALL=(secure) /home/someuser/secure.script

Esto permite que cualquier persona del grupo somegroup ejecute el comando de forma secure sin ingresar una contraseña:

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

Esto permite que user1 ejecute el comando de forma secure sin ingresar una contraseña:

user1    ALL=(secure) /home/someuser/secure.script

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım