今天在aws ubutun上突然發現的一個問題,執行sudo cd
時出現linux
sudo: cd: command not found
shell是一個命令解析器shell
所謂shell是一個交互式的應用程序。編程
shell執行外部命令的 時候,是經過fork/exec叉一個子進程,而後執行這個程序。安全
sudo 是一種程序,用於提高用戶的權限,在linux中輸入sudo就是調用sudo這個程序提高權限
sudo的意思是,以別人的權限叉起一個進程,並運行程序。bash
cd是shell的內部命令。
也就是說,是直接由shell運行的,不叉子進程。
你在當前進程裏固然不能提高進程的權限(其實也能夠,不過得編程的時候寫到代碼裏,而後再編譯,而咱們的 shell沒有這個功能,不然豈不是太危險了?黑客.sh
ui
可是有一些目錄咱們普通用戶是沒有權限進入該目錄的,好比/root
spa
對目錄來講
x
可執行權限就是用戶擁有進入該目錄、複製其中文件的權限code
那麼咱們該怎麼辦呢,
一個有限的辦法就是爲該目錄增長當前用戶的可執行權限,可是對咱們來講這樣並非很安全
那麼還有沒有解決辦法呢,固然有,Linux下沒有什麼問題是解決不了的,那就是獲取root權限或者文件夾所屬用戶的權限
使用su
命令便可獲取用戶的權限,可是root權限怎麼獲取呢,sudo已經不行了進程
那就是sudo su
或者sudo -sH
默認缺省爲獲取root
用戶
事件