任何想法为什么该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