Есть идеи, почему which
команда не может найти usermod
команду в rhel 7. Вот что я сделал (и соответствующий вывод)
[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
Итак, суть проблемы в том, что usermod
физически он находится в /usr/sbin/usermod
. Этот каталог /usr/sbin
есть в ec2-user
пути поиска. Но по какой-то причине which
команда не возвращает его, когда я запускаю его как ec2-user
.
Есть идеи, почему это происходит на RHEL 7? У меня также Ubuntu 14.04, и он работает как и ожидалось (и root, и обычный пользователь могут видеть usermod
в /usr/sbin
).
После первого поста вот что еще я узнал: ++++++++++++++++++++++++++++++++++++++++++++++++
Я нашел дополнительную информацию и думаю, что это может иметь отношение к этому:
В RHEL 7 биты разрешений дляusermod
-rwxr-x---. 1 root root 113800 Jun 28 2016 /usr/sbin/usermod
В Ubuntu 14.04 биты разрешений дляusermod
-rwxr-xr-x 1 root root 110296 May 16 19:37 /usr/sbin/usermod
Я предполагаю, что причиной этого может быть отсутствие разрешения на чтение у обычного пользователя usermod
?
решение1
usermod
это программа, которая запускается только от root. Чтобы узнать местоположение:
sudo which usermod
/usr/sbin/usermod