Usando "su -" para cambiar el usuario dado "No hay entrada passwd para el usuario"

16

Específicamente, estoy intentando probar algo en mi servidor de compilación cambiando al usuario "jenkins":

sudo su - jenkins
No passwd entry for user 'jenkins'
kevlarjacket
fuente
1
adduser jenkins
Ipor Sircer
@IporSircer Gracias, sí, parece que no hay usuario de jenkins.
kevlarjacket

Respuestas:

10

El mensaje de error se explica por sí solo. Dice que el usuario jenkinsno tiene entrada en el /etc/passwdarchivo, es decir, el usuario no existe en el sistema.

Cuando realiza operaciones relacionadas con el usuario que requieren nombre de usuario, contraseña, directorio de inicio, información de shell, /etc/passwdprimero se consulta el archivo. Ninguna entrada en ese archivo conduce al mismo error que está recibiendo. Por lo tanto, primero debe crear el usuario ( useradd/ adduser). Como nota al margen, a menos que sea necesario, debe crear cualquier usuario específico del servicio (no humano), por ejemplo, jenkinscomo usuario del sistema.

heemayl
fuente
11
Yo diría que no se explica por sí mismo. El error es sobre una contraseña y el problema es la inexistencia de un usuario. Si el error fue que el usuario no existe, eso se explica por sí mismo.
YannickSSE
1
@YannickSSE el mensaje de error no se trata de la contraseña, se trata de passwd, que es la base de datos tradicional de cuentas de usuario en un sistema (que reside en /etc/passwd). En la mayoría de los sistemas modernos, las contraseñas como tales se almacenan en otro lugar, a menudo en /etc/shadow.
Peter
4

Después de una búsqueda rápida de "Listar todos los usuarios en Linux", encontré esta respuesta y ejecuté el siguiente comando:

cut -d: -f1 /etc/passwd

y, como sugirió @Ipor Sircer, este usuario en realidad no existe, y tengo que agregarlo con:

adduser jenkins
kevlarjacket
fuente
¿Resolvió tu problema? ¿Crear un jenkinsusuario por ti mismo es igual al usuario creado por el propio jenkins?
reiley