原因
shell
shell是一個命令解析器
所謂shell是一個交互式的應用程序。
shell執行外部命令的時候,是通過fork/exec生成一個子進程,然后執行這個程序。
sudo
sudo 是一種程序
sudo的意思是,以別人的權限生成一個進程,並運行程序。
cd
type用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的。
type cd
cd is a shell builtin
cd是shell的內部命令。 也就是說,是直接由shell運行的,不生成子進程。
解決辦法
那么我們該怎么辦呢?
一個有限的辦法就是為該目錄增加當前用戶的可執行權限,但是對我們來說這樣並不是很安全
那么還有沒有解決辦法呢?
使用su
命令即可獲取用戶的權限,但是root權限怎么獲取呢,沒有root賬戶的密碼
那就是sudo su
默認缺省為獲取root
用戶