私は開発にUbuntuを使用しています。
私がデータベースを操作するときに、要求に応じてデータディレクトリまたは他のディレクトリにアクセスするためにファイル権限が必要なことがたくさんありました。
このエラーが発生するたびに:
[ERROR] path/to/directory/ permission denied
これを防ぐには、ターミナルから root としてログインし、次のコマンドを使用してディレクトリへのアクセスを許可する必要がありました。
chmod -R 644 /path/to/directory
問題を完全に回避するために、次のコマンドを使用してフルアクセスを許可しました。
chmod -R 777 /
今私のシステムにいくつかの問題がありました。
オペレーティングシステムアカウントまたは端末からrootとしてログインできません。システムを再起動すると、スムーズに起動するかどうかはわかりません。
完全なアクセス権を与えてはならない一部のファイルにフルアクセス権を与えたようですが、そのファイルが何であるかわかりません。
誰でも私を助けることができますか?
ベストアンサー1
chmod -R 777 /
どのディレクトリにもパターンを繰り返し適用しようとしている場合は、777
停止してしばらく時間をかけて、これが自分が望むものであることを絶対に確信してください。777
次の形式の略語です。
- ファイル所有者が読み取り、書き込み、実行を許可します。
- ファイルグループメンバーが読み取り、書き込み、実行できるようにする
- システムの全員が読んで、書いて、実行できるようにします。
(単純化のため、およびべたついた部分の問題は無視setuid
いたしますsetgid
)
これはほとんど常に望むものではありません。
この権限をファイルシステムのルート(/
)に繰り返し適用すると、コンピュータ上のすべてのファイルとディレクトリに対してこれらの権限が設定されます。これは確かにあなたが望むものではありません。。
回復の側面から見ると…純粋に仮説的なものです。
- Ubuntuシステムはまだ実行中なので、rootとして
sshd
ログインできますssh
他のマシンがあります。
- 以下を使用して開発マシンに接続できます。
ssh
- 開発システムと非常によく似たファイルシステムを保持します(たとえば、Ubuntuと同じバージョンの新しいDBMSを選択してインストールします)。
次のコマンドは、そのコンピュータのファイル権限を開発ボックスにコピーします。
sudo find / -print0 | \
xargs -0 stat -c "chmod %a '%n'; chown -h %U:%G '%n';" | \
ssh user@your-development-machine
実行に時間がかかります。
777
これにより、Ubuntuシステムで多くの権限が変更される可能性が高くなります。ただし、最良のシナリオでも、手動修正が必要な権限関連のエラーがさらに発生することが予想されます。
私が推奨するもう一つのオプションは、完全に再起動することです。データをバックアップし、Ubuntu、DBMS、および開発ボックスに必要なその他のソフトウェアを再インストールします。