任何想法為什麼該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