Não é possível executar um processo como outro usuário criado por “useradd” sem senha

1

Eu criei um usuário para executar um determinado processo somente em nome desse usuário:

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

Agora, para executar esse processo em nome de "my_user123", estou fazendo isso:

su - my_user123

1) E me pergunta uma senha. Qual senha? não há senha para "my_user123". Como consertar isso?

2) Ou qual é a maneira correta de executar "/ var / lib / my_app123 / some_process" como "my_user123"?

O próprio sudo está funcionando bem.

    
por Jodimoro 06.06.2017 / 05:52

2 respostas

2

Você pode especificar o shell do sistema certo:

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

Ou execute os comandos com o sudo, ele vai funcionar mesmo se o seu usuário não tiver um shell válido, como no seu caso.

Ou você não pode fazer login com o su como especificou / bin / false como shell para seu usuário. É por isso que o sistema está pedindo uma senha.

    
por 06.06.2017 / 07:49
1

sudo e su são programas totalmente diferentes. É assim que su funciona: se você não for root, ele pede a senha do alvo ( su bstitute) usuário. A condição que você ainda não definiu senha não muda isso; use passwd para adicionar uma senha para o usuário. Se você precisar executar comandos como outro usuário sem saber ou fornecer a senha desse usuário, use sudo .

From a security perspective, it is arguably better to set up and use sudo instead of su. The sudo system will prompt you for your own password – or no password at all, if configured in such a way – rather than that of the target user (the user account you are attempting to use). This way you do not have to share passwords between users, and if you ever need to stop a user having root access (or access to any other account, for that matter), you do not have to change the root password, which is an inconvenience to everyone else; you only need to revoke that user's sudo access.

O sudo equivalente para su - user é sudo -u user -s . Se você deseja fazer isso sem usar sua própria senha, é necessário visudo adicionar essa linha para o seu arquivo sudoers :

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

Isso concede a permissão yourusername para executar /bin/bash como usuário anotheruser sem senha.

    
por 06.06.2017 / 07:51