避免’sudo echo x >’ 時’Permission denied’


避免’sudo echo x >’ 時’Permission denied’

甲: 示例
sudo echo a > 1.txt
-bash: 1.txt: Permission denied
乙: 分析:
bash 拒絕這么做,說是權限不夠.
這是因為重定向符號 “>” 也是 bash 的命令。sudo 只是讓 echo 命令具有了 root 權限,
但是沒有讓 “>” 命令也具有root 權限,所以 bash 會認為這個命令沒有寫入信息的權限。
丙: 解決辦法。三種:
1. 利用 “sh -c” 命令,它可以讓 bash 將一個字串作為完整的命令來執行,這樣就可以將 sudo 的影響范圍擴展到整條命令。
具體用法如下:

sudo sh -c "echo a > 1.txt"

利用bash -c 也是一樣的,現在bash shell 流行。


2.  利用管道和 tee 命令,該命令可以從標准輸入中讀入信息並將其寫入標准輸出或文件中,
具體用法如下:
echo a |sudo tee 1.txt

echo a |sudo tee -a 1.txt   // -a 是追加的意思,等同於 >>

tee 命令很好用,它從管道接受信息,一邊向屏幕輸出,一邊向文件寫入。

Linux 總是有一些小工具為我們考慮的很貼切!


3. 提升shell 權限。
sudo -s        //提到root 權限。提示符為#
當你覺得該退回到普通權限時,
sudo su username //退回到username 權限,提示符為$

exit 退出當前用戶,回到上一層目錄.

 

centos 提升權限: su  -

ubuntu 提升權限: sudu -s, sudo su


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM