web-dev-qa-db-ja.com

/ etc / sudoersを統計できません:そのようなファイルまたはディレクトリはありません

私は最近Ubuntu 14.04を使用していました。そしてどういうわけか、/etc/sudoersファイルへのアクセス許可を変更しました。したがって、Sudoを使用してコマンドを実行するたびに、次のエラーが発生します。

Sudo: unable to stat /etc/sudoers: No such file or directory
Sudo: no valid sudoers sources found, quitting
Sudo: unable to initialize policy plugin

ユーザーとしてログインし、権限を元に戻すことができました。だから今ls -l /etc/sudoersコマンドを実行すると、次のようになります:

-r--r----- 1 root root 755 жов 14  2016 /etc/sudoers

しかし、ルートを所有者にすることはできませんでした。また、ユーザーSudoを使用しようとすると、同じエラーが表示されます。

私はこの問題について多くの恐ろしいことを読みました。この問題を解決するのを手伝ってもらえますか?アドバイスをいただければ幸いです。

5
Cassie

ショートカット:

dpkg-reconfigure:/etc/sudoersファイルのアクセス権に問題がある場合、ルートアクセスを実行してdpkg-reconfigure Sudoを実行します。 pkexec dpkg-reconfigure Sudoのようなものが作業を行うはずです。

visudo:dpkg-reconfigureが機能しない場合、pkexec visudoを実行するだけで、sudoersファイルがエディターで開かれ、ファイルを保存して閉じるだけで、visudoあなたの許可を修正します。

結局、sudoers.dディレクトリのアクセス許可も変更した場合は、次を実行します。

pkexec chmod 755 /etc/sudoers.d

ファイルが存在し、そのアクセス許可はあるはずですが、このエラーメッセージが表示される場合、思い浮かぶのは、他のアクセス許可が壊れており、Sudo/etc/sudoersにアクセスできないことです。最も可能性の高い推測は、/etc/の許可です。

だから実行:

pkexec chmod 755 /etc

しかし、壊れた、または削除されたsudoersファイルを復元するための詳細な指示が必要な場合は、別の方法で問題を修正します。


前書き

/etc/sudoersファイルをめちゃくちゃにして、同様のエラーを取得しました。私は本当に近づいているので、私は完全に私のものを削除し、あなたのものとまったく同じになりました。

問題を修正するために私がしたこと:

ルートアカウントがロックされていて、パスワードがなかったため、やりたいことをすることができませんでした。ただし、rootアカウントがアクティブでパスワードを持っている場合は、su -でrootユーザーに切り替えて、この部分をスキップしてください。そうでない場合は、指示に従ってください。

先に進む前に、システムにchrootを実行するために常にライブディスクを使用できることに言及する必要があります。ライブディスクを使用するchrootについては多くの指示があります。これらのすべての指示を再度行うことを気にせず、代わりに、ライブディスクがなく、この問題を解決するために既存のものを使用することを想定します。 cherootに満足しているなら、それでもうまくいきます。


ルートアクセスの取得

  • システムを再起動します
  • Grubが表示されたら e 編集する
  • Linuxで始まる行の最後に、init=/bin/bashを追加します
  • 押す CTRL+X

これで、ルートアクセスのあるbashシェルにドロップされます。最初に書き込みアクセスでファイルシステムを再マウントします。

mount -o remount,rw /

次に、rootユーザーのロックを解除し、パスワードを設定します。

passwd -u root
passwd root

/etc/sudoers/etcにまだ存在する場合は、別の場所に移動します。

mv /etc/sudoers /etc/sudoers.broken

パッケージマネージャーにこのファイルが見つからないことを伝え、正しいファイルに置き換えるため、存在しないはずだからです。

ほぼ完了です。システムを再起動してください。通常のユーザーとしてログインし、ターミナルを開いてからsu -を試して、rootユーザーに切り替えます。私はこれを行うことができなかったので、私がやったことは CTRL+ALT+F1tty1に入るために、設定したばかりの新しいパスワードでrootとしてログインしました。


Sudoersを取り戻す

単純にSudoパッケージを再インストールする必要がありますが、再インストールしてもこのファイルは戻されません。dpkgに、欠落している構成ファイルも修正するように指示する必要があります。

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall Sudo

yを挿入すると、/etc/sudoersファイルのインストールに関する質問が表示されることに注意してください。

うまくいかなかった場合は、rootで次のようにしてください:

mkdir /root/tmp
cd /root/tmp
apt-get download Sudo
dpkg-deb -x Sudo*.deb .
cp etc/sudoers /etc/sudoers
cd /root
rm -r tmp

これで、パーミッションにいくつかの違いがあるかもしれません。dpkg-reconfigure Sudoを実行して修正してください。うまくいかなかった場合は、visudoをrootユーザーとして実行し、sudoersファイルをエディターで開き、ファイルを保存して閉じます。visudoが許可を修正します。

すべてがうまくいけば、sudoersファイルが戻り、以前と同じようにSudoを使用できるようになります。

5
Ravexina