私はUbuntu 12.04(32ビット)を使用しています。今日誤って次のコマンドを実行しました。
警告する
次のコマンドを実行しないでください。
sudo find / -type d -exec chmod -Rf a-wr {} \;
システムにログインできません。システムにユーザーが 1 人だけで、ルートが無効になっています。解決策ご存知ですか?
ベストアンサー1
システムのすべてのディレクトリから読み取りおよび書き込み権限を削除すると、明らかにすべてのディストリビューションの動作が停止します。これは無言の音です。
編集1
CD / DVD / USBスティックから別のLinuxを起動し、影響を受けるすべてのボリュームのアクセス権を正しく設定すると、システムを回復できます。元の状態に復元するのは複雑かもしれませんが、再び操作する方が簡単です。ユーザーが1人だけでネットワークをサービスするデーモンがない場合、問題やセキュリティのリスクはありません。
mount -t auto /dev/whatever /mnt/targetvolume
find /mnt/targetvolume -type d -exec chmod 755 {} \;
find /mnt/targetvolume -type f -exec chmod 644 {} \;
chmod -R a+x /mnt/targetvolume/bin /mnt/targetvolume/sbin \
/mnt/targetvolume/lib /mnt/targetvolume/lib64 /mnt/targetvolume/sbin \
/mnt/targetvolume/usr/ /mnt/targetvolume/usr/bin \
/mnt/targetvolume/usr/lib /mnt/targetvolume/usr/lib64 \
/mnt/targetvolume/usr/sbin
/ etcで正しい権限を復元することが重要です。私の提案は、同じディストリビューションを使用している人(インストールしたすべてのソフトウェアをインストールした人が望む)に、以下を提供するように依頼することです。
# on a working system
getfacl --recursive /etc > acl-etc.txt
# on your system
setfacl --restore=acl-etc.txt /etc
# or from the rescue system
setfacl --restore=acl-etc.txt /mnt/targetvolume/etc
これは次の方法でさらに改善することができます。
- / etcのすべてのファイルとディレクトリが参照システムにあることを確認します。
- パッケージマネージャにインストールされたパッケージへのアクセス権を確認します(例:rpm --verify package)。