Alguma ideia de por que o which
comando não consegue encontrar o usermod
comando no rhel 7. Aqui está o que eu fiz (e a saída correspondente)
[ec2-user@ip-10-0-4-109 ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
[ec2-user@ip-10-0-4-109 ~]$ which usermod
/usr/bin/which: no usermod in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin)
[ec2-user@ip-10-0-4-109 ~]$ sudo su
[root@ip-10-0-4-109 ec2-user]# which usermod
/sbin/usermod
[root@ip-10-0-4-109 ec2-user]# readlink -f /sbin/
/usr/sbin
Portanto, a essência do problema é que usermod
está fisicamente localizado em /usr/sbin/usermod
. Este diretório /usr/sbin
está no ec2-user
caminho de pesquisa. Mas, por algum motivo, which
o comando não está retornando quando eu o executo como ec2-user
.
Alguma idéia de por que isso está acontecendo no RHEL 7? Eu também tenho o Ubuntu 14.04 e funciona como esperado (tanto o root quanto o usuário normal podem ver usermod
em /usr/sbin
).
Após a postagem inicial, aqui está o que mais descobri: ++++++++++++++++++++++++++++++++++++++ ++
Encontrei algumas informações adicionais e acho que isso pode ter algo a ver com isso:
No RHEL 7 os bits de permissão parausermod
-rwxr-x---. 1 root root 113800 Jun 28 2016 /usr/sbin/usermod
No Ubuntu 14.04, os bits de permissão parausermod
-rwxr-xr-x 1 root root 110296 May 16 19:37 /usr/sbin/usermod
Então, suponho que não ter permissão de leitura para usuários comuns usermod
pode estar causando isso?
Responder1
usermod
é um programa que roda apenas a partir do root. Para saber os locais:
sudo which usermod
/usr/sbin/usermod