Ubuntu 16.04 を使用していますが、ターミナル (例apt-get install git
: ) を使用してアプリをインストールしようとするたびに、次のメッセージが表示されます。
dpkg: error: requested operation requires superuser privilege
W: Could not open file '/var/log/apt/term.log' - OpenLog (13: Permission denied)
E: Sub-process /usr/bin/dpkg returned an error code (2)
それで実行したらsudo apt-get install git
、次のようになりました:
sudo: error in /etc/sudo.conf, line 0 while loading plugin 'sudoers_policy'
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
これを修正するにはどうすればいいでしょうか?
答え1
問題は、おそらくファイルの所有権と権限に関するものです。sudo を使用せずに root になり、root 権限を使用して、root が /usr/lib/sudo/sudoers.so を所有し、読み取りと書き込みができることを確認する必要があります。
まず、rootが/usr/lib/sudo/sudoers.soを所有しているかどうかを確認します。
ls -l /usr/lib/sudo/sudoers.so
見たいもの:
-rw-r--r-- 1 root root [...] /usr/lib/sudo/sudoers.so
しかし、「root root」が表示されない場合は、それが問題です。リカバリ モードで再起動し、以下のコマンドを実行する必要があります。リカバリ モードを使用する理由は、デフォルトでは ubuntu では sudo の助けなしに root として直接ログインできないためです。
リカバリモードに入ったら、次を実行します。
chown root:root /usr/lib/sudo/sudoers.so
次のコマンドを実行して、正しい権限が設定されていることを確認することもできます。
chmod 644 /usr/lib/sudo/sudoers.so
再起動して sudo を再度使用できるようになります。
チェックアウトhttps://askubuntu.com/a/637437あなたの質問は、似たような回答を持つ重複した質問のようです。質問も確認してくださいsudo: /usr/lib/sudo/sudoers.so は uid 0 が所有する必要がありますリカバリモードを使用する別の代替手段。
私は、/usr/lib/sudo/sudoers.so の権限を root ではなく自分のユーザーに変更してこの問題を確認しました。その結果、あなたとほぼ同じエラーが発生しました。
sudo: error in /etc/sudo.conf, line 0 while loading plugin 'sudoers_policy'
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
また、/usr/lib/sudo/sudoers.so を root による書き込み不可にして確認してみました。エラー情報では書き込み権限が問題の原因として挙げられているにもかかわらず、なぜかその変更ではまったく同じエラーは発生しませんでした。ただし、sudo を使用不可にする前に root ターミナルを開いていたため、リカバリ モードで再起動するまでには至りませんでした。途中で、aldwinaldwin からの回答に助けられました。 https://askubuntu.com/a/637437。