No se puede ejecutar un process como otro usuario creado por "useradd" sin contraseña

He creado un usuario para ejecutar un determinado process sólo en nombre de ese usuario:

sudo useradd -r -s /bin/false -d /var/lib/my_app123 my_user123 

Ahora, para ejecutar ese process de nombre de "my_user123", estoy haciendo esto:

 su - my_user123 

1) Y me pide una contraseña. ¿Qué contraseña? no hay contraseña para "my_user123". ¿Cómo arreglar esto?

2) ¿O cuál es la forma correcta de ejecutar "/ var / lib / my_app123 / some_process" como "my_user123"?

sudo en sí está funcionando bien.

O puede especificar el shell del sistema correcto:

 su - youruser -s /bin/bash -c "yourcommand" 

O ejecutar los commands con sudo, va a funcionar incluso si youruser no tiene un shell válido, como en su caso.

O no puede iniciar session con su como especificó / bin / false como shell para su usuario. Es por eso que el sistema está pidiendo una contraseña.

sudo y su son progtwigs totalmente diferentes. Así es como funciona su : si no es root, pide la contraseña del usuario objective ( su bstitute). La condición de que aún no ha definido la contraseña no cambia esto; use passwd para agregar una contraseña para el usuario. Si necesita ejecutar commands como otro usuario sin saber o dar la contraseña de ese usuario, debería usar sudo .

Desde una perspectiva de security, es posiblemente mejor configurar y utilizar sudo en lugar de su . El sistema de sudo le pedirá su propia contraseña, o ninguna contraseña, si está configurada de tal manera, que la del usuario de destino (la count de usuario que está intentando utilizar). De esta manera no tienes que compartir passwords entre usuarios, y si alguna vez necesitas detener a un usuario que tiene acceso root (o acceso a cualquier otra count, para eso), no tienes que cambiar la contraseña de root, que es un inconveniente para todos los demás; sólo tiene que revocar el acceso de sudo de ese usuario.

El sudo equivalente para su - user es sudo -u user -s . Si desea hacer esto sin usar su propia contraseña, necesita visudo y agregar esta línea a su file de sudoers :

 yourusername ALL=(anotheruser) NOPASSWD: /bin/bash 

Esto le da a yourusername permiso para ejecutar /bin/bash como usuario anotheruser sin contraseña.