'sudo chmod 666 /usr' の後に 'sudo' の権限が拒否されました

'sudo chmod 666 /usr' の後に 'sudo' の権限が拒否されました

大きなミスを犯してしまい、ワークステーションで何もできなくなりました。VirtualBox を起動しようとすると、/usr に実行アクセス権があるというエラーが表示されました。その後、誤って sudo chmod 666 /usr を実行したため、'sudo' を実行できなくなりました。

技術部門に問い合わせたところ、Ubuntu には root のパスワードがないので、私のエラーに対する解決策は見つからず、Ubuntu を再インストールするしかないと言われました。つまり、これまでの作業がすべて失われることになります。

この問題の解決策を誰か思いつくといいのですが。/usr に再度アクセスしたり、root ユーザーになったりするにはどうすればいいと思いますか?

答え1

それをやっただけならsudo chmod 666 /usr、状況はそれほど悪くありません。親ディレクトリの権限のみが変更され/usr、その中のサブディレクトリのファイルは変更されないからです。

ただし、再帰フラグを追加した場合は-R、システムを再インストールした方が確実に良いでしょう。それでも、データを失う理由はないはずだ: ライブ USB または DVD から起動し、まずそこから重要なファイルをバックアップすることができます。

もしsudo chmod 666ディレクトリの再帰的な操作のみを実行し/usr、マシンに物理的にアクセスできる場合、最も簡単な修正方法は次のようになります。

  1. GRUBの詳細メニューからリカバリモードで起動し、「ルートシェルにドロップ」を選択します。
  2. ファイルシステムを読み書きモードで再マウントする

    mount -o remount,rw /
    
  3. コマンドを実行する

    chmod 755 /usr
    

    しないでくださいその他のコマンドラインオプションを追加し、しない任意のシェルワイルドカードを使用します。

  4. exit通常通り起動を続行するには入力してください


注意してください。ではなく がchmodに住んでいる場合、 の権限の影響を受けません。たとえば、ディレクトリの権限ビット、またはディレクトリ自体の権限ビットを変更すると、リカバリ モードから実行できなくなるため、この方法は適切ではありません。その場合の最善の選択肢は、利用可能な Linux ディストリビューション (Ubuntu である必要はありません) のライブ CD/DVD/USB を起動し、壊れたシステムのルート デバイス (たとえば、ライブ システムの )を識別してマウントし、ライブ システムから実行することです。/bin/usr/bin/usr/bin/chomd/mntchmod 755 /mnt/usr

答え2

コマンドによって /usr/bin/sudo から SUID ビットが削除された可能性があります。正しい権限は次のようになります:

-rwsr-xr-x 1 root root 136808 Aug 17 15:20 /usr/bin/sudo

上記のコメントで述べたように、リカバリ CD を入手し、「ルート パーティションの検索」セクションの手順に従ってください。マウントに成功したら、次のコマンドで SUID ビットを設定します: chmod 4755 /usr/bin/sudo

関連情報