visudoを編集できません

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

ルートアクセス権があります。

多くのリソースで、visudo次の行を実行して追加することをお勧めします。

myuser    ALL=(ALL) ALL

visudoただし、(でも)実行しようとすると、less /etc/sudousersメッセージが印刷されます。

E437: terminal capability "cm" required
Press ENTER or type command to continue

いくつかの記事ではこれncurses-termyum install ncurses-termうまく行いましたが、ここに記載されている端末の数は本当にたくさんありますls /usr/share/terminfo/d。しかし、それは私には役立ちません:実行するとエラーメッセージがvisudo印刷され続け、ファイルを編集できません。

だから私のユーザーをsudoグループに追加したいと思います。しかし、このグループは私のコンピュータには存在しません。 commandを使用してグループを作成し、groupadd sudocommandを使用してグループにユーザーを追加しました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)。

解決策は何ですか?

答え1

ncurses-termパッケージをインストールした後、新しいシェルを起動しましたか?

ルートアクセス権がある場合は、次のコマンドを使用してファイルをコピーし、手動で行を追加することを/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

関連情報