.png)
Então, eu não entendo o que está acontecendo aqui.
Eu configurei um servidor Debian 10.2 e configurei como fiz antes com outros servidores. Tudo funciona bem, e por ser uma máquina local e eu ser o único usuário, usei root para tudo. Agora eu queria desabilitar o login root do ssh.
Mas se eu usar um usuário não root para fazer login via SSH, ele não conseguirá encontrar comandos básicos como "service" ou "reboot". (Bash: Serviço: Comando não encontrado.)
Ainda mais estranho, não consigo nem acessar essas coisas quando uso "su root". Na verdade, sou o usuário root, mas ainda não consigo acessar/encontrar esses comandos.
Quando logado diretamente com o usuário root, tudo funciona como deveria.
Responder1
A variável de ambiente do seu usuário PATH
não contém o caminho onde esses arquivos estão localizados. Quando você usa su -
, as variáveis de ambiente do root são carregadas em sua sessão. Ver man su
:
-, -l, --login
Start the shell as a login shell with an environment similar
to a real login:
o clears all the environment variables except TERM and
variables specified by --whitelist-environment
o initializes the environment variables HOME, SHELL,
USER, LOGNAME, and PATH
o changes to the target user's home directory
o sets argv[0] of the shell to '-' in order to make
the shell a login shell
Para entender melhor isso, vamos ver onde está um desses binários e comparar o PATH do root com o seu:
- fazer
su -
- fazer
which service
. Isso lhe diráservice
de onde o binário seria carregado se você executasse o comandoservice
. - fazer
echo $PATH
. Isso mostrará o PATH do root. Você notará que o diretório ondeservice
pode ser encontrado está listado aqui. - faça
exit
para se tornar seu usuário não root novamente. - fazer
echo $PATH
. Você verá que o diretório identificado na etapa 2 não está aqui.
Esta é uma configuração padrão normal em certos ambientes/distros onde certos programas administrativos como service
, fdisk
, etc. são mantidos em um diretório como /usr/sbin
ou /sbin
, com tais diretórios mantidos fora dos PATHs normais dos usuários.