在使用指令的時候通常會很習慣的使用
$ echo foo > bar.txt -bash: bar.txt: Permission denied
來新增資料到檔案,所以權限不夠就會很習慣的使用 sudo
直接提權
$ sudo echo foo > bar.txt -bash: bar.txt: Permission denied
不過這樣是行不通的因為 >
並不會吃到權限,所以會新增失敗。
解決使用 >
出現 Permission denied 的問題
那要怎麼做才可以解決這個問題呢?其實有三種方法可以解決
解決方法 1
使用 sh
包一層就可以快速的解決這個問題
$ sudo sh -c "echo foo > bar.txt"
解決方法 2
也可以使用 tee
來幫助完成這件事情,它吃了 pipe 會把東西丟到 stdout 也會把它丟到檔案
$ echo foo | sudo tee bar.txt foo
解決方法 3
直接使用 sudo su
直接開一個新的 shell 直接做對應的動作也是一個好方法
$ sudo su # echo foo > bar.txt
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!