無法編輯 visudo
我必須授予我的使用者執行權限
sudo
。我正在使用 CentO# uname -a Linux lab-hv1-centos1 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
並具有root訪問權限。
很多資源建議執行
visudo
並添加行myuser ALL=(ALL) ALL
但嘗試執行
visudo
(甚至less /etc/sudousers
)列印消息E437: terminal capability "cm" required Press ENTER or type command to continue
有些文章建議
ncurses-term
使用yum install ncurses-term
. 我已經成功地做到了這一點,而且這裡列出的終端數量確實ls /usr/share/terminfo/d
很高。但是它對我沒有幫助:visudo
仍然列印執行時的錯誤消息,我無法編輯此文件。所以,我想將我的使用者添加到 sudo 組。但是這個組在我的機器上不存在。我使用創建這個組
groupadd sudo
,然後使用命令將我的使用者添加到這個組useradd -G sudo myuser
。這成功了,但是當我嘗試執行任何命令時仍然
sudo
收到錯誤消息:$ sudo ls [sudo] password for myuser: myuser is not in the sudoers file. This incident will be reported. $
錯誤資訊確實正確。
myuser
屬於名為的組sudo
,但那是我創建了這個組。它只是稱為sudo
,並不意味著屬於該組的使用者具有權限。我相信如果我可以添加行myuser ALL=(ALL) ALL
或者
sudo ALL=(ALL) ALL
/etc/sudousers
我已經完成了,但由於上述錯誤,我無法執行此操作(terminal capability "cm" required
)解決方案是什麼?
安裝 ncurses-term 軟體包後是否啟動了新的 shell?
如果您具有 root 訪問權限,則可以考慮將文件複製
/etc/sudoers
到/root/sudoers.backup
並手動添加該行:echo "myuser ALL=(ALL) ALL" >> /etc/sudoers
如果您想授予對組而不是使用者的訪問權限,則需要在組名前加上百分號:
echo "%sudo ALL=(ALL) ALL" >> /etc/sudoers
請記住,最後一個匹配規則將在 sudoers 文件中有效,因此仍然建議使用編輯器編輯 sudoers 文件是推薦的方式。
編輯:
再想一想,你的
$TERM
變數的值是多少?嘗試TERM=vt100
在發布之前設置它使用visudo
或使用以下之一:TERM=vt100 visudo TERM=xterm visudo TERM=dumb visudo