私のユーザーに実行権限を付与する必要があります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-term
をyum install ncurses-term
うまく行いましたが、ここに記載されている端末の数は本当にたくさんありますls /usr/share/terminfo/d
。しかし、それは私には役立ちません:実行するとエラーメッセージがvisudo
印刷され続け、ファイルを編集できません。
だから私のユーザーをsudoグループに追加したいと思います。しかし、このグループは私のコンピュータには存在しません。 commandを使用してグループを作成し、groupadd sudo
commandを使用してグループにユーザーを追加しました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