重複の可能性:
chmod/777を誤って設定。問題?
私は開発目的でUbuntuを使用しています。
データベース側で作業していると、要件に応じて、データディレクトリやその他にアクセスするためにファイル権限が必要なものがたくさんあります。
次のようなエラーが発生するたびに:
[ERROR] path/to/directory/ permission denied
これを回避するには、ターミナルからroot rootとしてログインし、そのディレクトリへのアクセスを許可する必要があります。
chmod -R 644 /path/to/directory
この問題を完全に回避するために、次のコマンドを使用してフルアクセス権限を与えました。
chmod -R 777 /
現在、私のシステムにはいくつかの問題があります。
OSアカウントからもターミナルからもrootとしてログインできません。システムを再起動しても、スムーズに起動するかどうかはわかりません。
フルアクセスを許可するべきではないファイルの一部にフルアクセスが許可されていると思います。これらのファイルが何であるかはわかりません。
誰か助けてもらえますか?
chmod -R 777 /
モード777
を任意のディレクトリに再帰的に適用することを考えている場合は、停止して、それが目的であることを確実に確認してください。 777
は以下の略記です。
(簡略化のため、setuid
、setgid
およびスティッキービットの問題は無視します)
これはほとんどの場合、望んでいることではありません。
これをファイルシステムのルート(/
)に再帰的に適用すると、マシン上のすべてのファイルとディレクトリにこれらの権限が設定されます。これは間違いなくあなたが欲しいものではないです。
これからの回復に関して...純粋に仮説的に、
sshd
を実行しているため、ssh
にrootとしてログインできます。そしてあなたは別のマシンを持っています
ssh
経由で開発マシンに接続できます次のコマンドは、そのマシンのファイル権限を開発ボックスにコピーします。
Sudo find / -print0 | \
xargs -0 stat -c "chmod %a '%n'; chown -h %U:%G '%n';" | \
ssh user@your-development-machine
実行には少し時間がかかります。
これは、Ubuntuボックスの多数の777
'd権限を修正する可能性があります。ただし、最良の場合でも、手動で修正する必要があるアクセス許可関連のエラーがさらに発生することを期待する必要があります。
他のオプション、そして私がお勧めするのは、最初からやり直すことです。データをバックアップし、Ubuntu、DBMS、および開発ボックスに必要なその他のソフトウェアを再インストールします。
全世界にファイルシステムへの読み取り、書き込み、実行アクセス権を与えることは、通常、非常に悪い考えです。一方では、あなたのコンピュータにアクセスできる誰もが基本的にシステムで何でもできます。さらに、ssh
のようないくつかのシステムデーモンがあり、ディレクトリとファイルの権限をチェックします。それらが正しくない場合、これらのデーモンはしばしば起動に失敗します。
現在の状況に最適なソリューションは、バックアップから復元することです。したがって、適切な権限を持つすべてのファイルを簡単に取得できます。
バックアップがない場合、次の実用的な解決策はシステムを再インストールすることです。したがって、最初にファイルのバックアップを作成し、インストールされたソフトウェアを保存します(dpkg --get-selection > installed-software.txt
)、次に新しいシステムをインストールし、使用したソフトウェアもインストールします(apt-get update && dpkg --set-selection < installed-software.txt && apt-get -u dselect-upgrade
)。これでシステムが新しくなり、設定ファイルを更新できます。
別の解決策は、スクリプトを書くことです。このスクリプトは、ファイルシステムを再帰的に調査し、各ファイルとディレクトリの権限を他のシステムと比較する必要があります。他のシステムに応じて権限を変更できます。いくつかの値を変更する必要があるかもしれませんが、このスクリプトで主な作業を行うことができます。このソリューションは、コンピューターに物理的にアクセスできる場合にも機能します。 Live-CDまたはUSBスティックから起動して、ファイルシステムをマウントするだけです。または、ハードドライブを取り外して別のコンピューターにマウントすることもできます。
ただし、私の観点からは、稼働中のシステムを元に戻す最も速い方法は、それをバックアップして再インストールすることです。
Rootアクセス権がなくなった場合は、運が悪ければ、再インストールするのが最善の策です。
コマンドsu
やSudo
のような4755
のような素晴らしいアクセス許可を持つファイルがあり、それがないと実行できません。