以前一直使用Fedora系統,今天偶爾用了用Ubuntu Linux系統,感覺那個sudo有點很不適應啊。
我的經曆還是有一點點曲折。首先我使用使用者shiyanjun建立了/home/shirdrn目錄,本來以為之後可以chown給shirdrn
使用者的;然後我才建立了一個使用者shirdrn,預設指定shirdrn組,提示我/home/shirdrn目錄不屬於shirdrn,這是肯定的。當
我su到shirdrn使用者,並想使用sudo許可權將/home/shirdrn目錄chown過來的時候,結果提示我:
shirdrn is not in the sudoers file
所以我就想把shirdrn使用者加入到sudoers檔案中,具體位置是/etc/sudoers,可以看到,該檔案預設的許可權是-r-
r-----,只對於root組的root使用者,也就是0440許可權。預設root使用者也不能對該檔案執行w許可權,必須通過root使用者首先添加對該檔案
的w許可權才能修改該檔案。
結果,在網上搜到一篇文章,說是什麼Alt+F1等等,最後su到使用者shiyanjun,增加了/etc/sudoers檔案的w許可權:
sudo chmod u+w /etc/sudoers
修改成功了,結果出現了可以使用使用者shiyanjun修改/etc/sudoers檔案,但是因為是read-only的,無法儲存。再執行sudo命令,老是出現提示:
sudo: /etc/sudoers is mode 0640, should be 0440
徹底要崩潰了,我感覺,此時如果不使用超級使用者(以前在Fedora下root最管用了)是解決不了問題的,這時就想到如何啟動Ubuntu下的root使用者,網上搜尋了一通,不得而知,最後終於找到了一種解決方式,文章出自http://www.craigmayhew.com/blog/2009/09/ubuntu-error-sudo-etcsudoers-is-mode-0640-should-be-0440/
,非常感謝。下面簡單敘述一下具體解決過程:
1、重新啟動Ubuntu系統,啟動的時候按住Esc鍵,可以看到引導選項;
2、可以看到引導選項列表中,有一項的末尾括弧裡是這樣的(recovery mode),也就是復原模式,選擇這項,斷行符號繼續;
3、資料載入一會,進入到Recovery Menu頁面,可以看到有如下選項:
resume
clean
dpkg
fsck
grub
netroot
root
xifx
選擇root,也就是進入試用root使用者進行系統復原,在裡面可以執行超級使用者權限的操作。
斷行符號後,可以看到熟悉的
root@TUZKI:~#
命令提示字元了。
4、設定或者撤銷/etc/sudoers檔案的許可權
此時,你可以執行:
chmod u-w /etc/sudoers
撤銷對/etc/sudoers檔案的w許可權。我是直接增加了root的w許可權,直接將使用者shirdrn添加到了/etc/sudoers檔案中,在
root ALL=(ALL) ALL
這行下面增加了如下一行:
shirdrn ALL=(ALL) ALL
這就使得使用者shirdrn成了sudo組的使用者了,可以執行超級許可權了。
退出recovery mode,重新啟動系統,進入後,可以使用shirdrn使用者建立/home/shirdrn目錄了:
sudo mkdir /home/shirdrn
因為shirdrn已經是sudo組的使用者了,執行cd ~再執行pwd可以看到shirdrn使用者的/home/shirdrn目錄了。