
我想:
echo hello world > /usr/bin/firefox
將在瀏覽器中顯示該訊息。什麼都沒發生。然後我嘗試:
echo hello world > /usr/bin/kwrite
看看 kwrite 是否開啟並在前面輸入「hello world」。再次,什麼事也沒發生。然後嘗試執行這兩個命令後:
computer:~$ kwrite
/usr/bin/kwrite: line 1: hello: command not found
computer:~$ firefox
/usr/bin/firefox: line 1: hello: command not found
正在做ls -l /usr/bin/
:
-rwxr-xr-x 1 root root 182576 2012-08-21 06:42 apt-ftparchive
-rwxr-xr-x 1 root root 116996 2012-08-21 06:41 apt-get
-rwxr-xr-x 1 root root 2151596 2011-10-20 21:45 aptitude
-rwxr-xr-x 1 root root 1939 2011-10-20 21:45 aptitude-create-state-bundle
-rwxr-xr-x 1 root root 3007 2011-10-20 21:45 aptitude-run-state-bundle
-rwxr-xr-x 1 root root 7336 2012-08-21 06:41 apt-key
lrwxrwxrwx 1 root root 20 2012-12-29 10:41 /usr/bin/firefox -> /opt/firefox/firefox
-rwxr-xr-x 1 root root 5476 2010-11-17 04:58 /usr/bin/kwrite
-rwxr-xr-x 1 root root 181104 2010-02-16 01:40 zip
-rwxr-xr-x 1 root root 1184 2011-01-21 23:49 zxpdf
我的系統上(以及其他 bin 資料夾)中的二進位檔案/usr/bin
至少具有 (?) 的使用者寫入權限。所以我有效地做的是寫可執行檔“hello world”,雖然/usr/bin/kwrite
是二進位執行文件,但是/opt/firefox/firefox
shell 腳本
很明顯,可執行檔很容易出現這種類型的事故。所以我想問是否需要寫入權限。我想將其關閉,但我想確保我沒有在這裡遺漏任何東西。
答案1
首先,您必須echo hello world > /usr/bin/kwrite
以 root 身分嘗試,因為所有w
或寫入位元都是
-rwxr-xr-x
對使用者和群組關閉。對於你的第二個問題,只有 root 有正確的權限寫入
大多數二進位文件,除非它是由普通用戶編譯和安裝的。
您也應該溫習一下檔案權限符號。這是一個很棒的關聯
答案2
二進位檔案具有使用者寫權限,因為使用者是 root。只有 root 可以寫入/usr/bin
。
你真的應該認真複習一下,不要以 root 身分做簡單的事情(例如使用瀏覽器和文字處理器)。請參閱此處限制損害: http://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-your-linux-system-as-root/
.sh
另外,您可能會注意到/usr/bin
.如果需要的話,可以想像這些可以由 root 編輯。