Contexto
Esta é uma pergunta muito novato, mas eu ainda não entendo totalmente os usuários do unix .
Se eu cat /etc/passwd
houver usuários diferentes:
me:x:1000:1000:me,,,:/home/me:/bin/bash
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
sddm:x:127:134:Simple Desktop Display Manager:/var/lib/sddm:/bin/false
mongodb:x:128:65534::/home/mongodb:/usr/sbin/nologin
sshd:x:129:65534::/run/sshd:/usr/sbin/nologin
tftp:x:130:138:tftp daemon,,,:/srv/tftp:/usr/sbin/nologin
_rpc:x:131:65534::/run/rpcbind:/usr/sbin/nologin
a maioria deles não são usuários de login (então diríamos que você não pode fazer login a menos que seja um usuário /bash), mas se eu tentar este comando:
su - mongodb
ele me pede uma senha. O problema é que eu não sei a senha neste caso.
Pergunta
- mas isso significa que eu poderia mudar para esse usuário no terminal e talvez executar o processo como o systemd-service faria?
- então diríamos que você não pode fazer login a menos que seja um usuário /bash?
resposta curta:
Se você for o superusuário (id=0) ou comumente conhecido como root, não poderá fazer login nele se o shell estiver definido como /usr/sbin/nologin ou /usr/bin/false
de acordo com a descrição da página de manual do nologin:
mas (sempre se você for root ou puder comandos sudo) você pode executar um bash de acordo com um usuário que não é usuário de login, para representá-lo para solução de problemas
sudo:
raiz:
Os comandos acima não executam um login, mas apenas executam um bash com a permissão do usuário, neste caso como usuário mongodb.
NOTA: normalmente esses usuários não têm senha, o que significa que mesmo o processo su pede uma senha que nunca corresponderá a nada também a uma senha vazia.