sudo: cd: command not found

事件原由


今天在aws ubutun上突然發現的一個問題,執行sudo cd 時出現linux

sudo: cd: command not found

這裏寫圖片描述

緣由


shell

shell是一個命令解析器shell

所謂shell是一個交互式的應用程序。編程

shell執行外部命令的 時候,是經過fork/exec叉一個子進程,而後執行這個程序。安全

sudo


sudo 是一種程序,用於提高用戶的權限,在linux中輸入sudo就是調用sudo這個程序提高權限 
sudo的意思是,以別人的權限叉起一個進程,並運行程序。bash

cd


cd是shell的內部命令。 
也就是說,是直接由shell運行的,不叉子進程。 
你在當前進程裏固然不能提高進程的權限(其實也能夠,不過得編程的時候寫到代碼裏,而後再編譯,而咱們的 shell沒有這個功能,不然豈不是太危險了?黑客.shui

解決辦法


可是有一些目錄咱們普通用戶是沒有權限進入該目錄的,好比/root 
這裏寫圖片描述spa

對目錄來講x 可執行權限就是用戶擁有進入該目錄、複製其中文件的權限code

這裏寫圖片描述

那麼咱們該怎麼辦呢, 
一個有限的辦法就是爲該目錄增長當前用戶的可執行權限,可是對咱們來講這樣並非很安全 
那麼還有沒有解決辦法呢,固然有,Linux下沒有什麼問題是解決不了的,那就是獲取root權限或者文件夾所屬用戶的權限 
使用su 命令便可獲取用戶的權限,可是root權限怎麼獲取呢,sudo已經不行了進程

這裏寫圖片描述

那就是sudo su 或者sudo -sH 默認缺省爲獲取root 用戶 
這裏寫圖片描述事件

相關文章
相關標籤/搜索