フォルダのアクセス権限エラーを修正

Windows、Cygwin、あるいはUnixとWindowsを組み合わせた様々な方法でLinuxサブシステムを使用している場合、「現在、このフォルダにアクセスする権限がありません」というエラーが発生する可能性があります。純粋なLinuxまたはUnix環境では、「ディレクトリを開く際にエラーが発生しました: 権限が拒否されました」といったエラーが表示される場合があります。POSIX互換ファイルシステムを持つネットワークドライブでも、データにアクセスしているオペレーティングシステムに関係なく、同様のエラーが発生する可能性があります。

現在、このフォルダにアクセスする権限がありません。

この問題の原因はどのケースでも同じです。アクセス制限が設定されているディレクトリに、適切な権限を持たないアカウントからアクセスしようとしたのです。この問題を解決するには、別のアカウントでログインするか、フォルダの権限を変更するだけで済みます。

方法1: ディレクトリにアクセスするためのアカウントを変更する

アクセスしようとしていたフォルダにアクセスしてみてください。コマンドプロンプトから「cd」コマンドを使って移動しようとすると、「bash: cd :Permission denied」のようなコマンドが表示されます。

コマンドプロンプトの権限エラーグラフィカル環境からディレクトリにアクセスしようとすると、同様のエラーが表示されます。

グラフィカルガイドの権限エラー

今回の場合、/lost+found ディレクトリにアクセスしようとしていましたが、ほとんどの Linux 環境では root ユーザーのみアクセスが許可されています。ターミナルに戻り、「sudo -i」と入力して Enter キーを押します。パスワードの入力を求められますが、その後は root のログインシェルが起動します。「cd」コマンドを使ってディレクトリに移動して中身を確認することは可能ですが、root シェルから操作しているため、非常に破壊的な操作になる可能性があることに注意してください。

いつものアカウントを使い続けたい場合は、「sudo ls /lost+found」コマンドを使って、「sudo -i」コマンドを実行せずにこのディレクトリの内容を確認してみてください。「/lost+found」は「/root」ディレクトリを含む任意のディレクトリ名に置き換えることができます。コマンドの前に「sudo」コマンドを使用すると、ほぼすべてのファイルを削除できることにご注意ください。

方法2: フォルダのデフォルトの権限を変更する

最初の方法は非常にシンプルで、システムメンテナンスなどの目的で確認したいフォルダであればどれでも使えます。ただし、サーバーやネットワーク上の一般ユーザーにもフォルダへのアクセスを許可したい場合は、他の方法を検討することをお勧めします。

`sudo chmod -R 755 /path/to/folder` を実行します。`path` はアクセスを許可したいディレクトリの実際のパスに置き換えてください。完了したら、通常のユーザーアカウントからアクセスしてみてください。この方法は上記の方法よりも少し複雑ですが、最初の試行以降はルートアカウントを必要としないため、より安全で永続的です。

ほとんどの場合、これらの権限でディレクトリを最初から作成できます。`mkdir -m 755` を使用して、あるユーザーには読み取り、書き込み、実行を許可し、他のユーザーには読み取りと実行を許可する権限を設定してみてください。どちらの場合でも、代わりに `777` を使用することもできます。これにより、ファイル構造にログインしたすべてのユーザーが、そのディレクトリに対して任意の操作を実行できるようになります。リムーバブルメディアを使用して2台のマシン間でファイルを手動で転送する場合など、この方法を使用する必要がある状況もありますが、ローカルファイルシステムで実行する場合は、これが賢明かどうかを検討してください。代わりに `-p` フラグを使用すると、新しいディレクトリにはデフォルトと見なされる権限が付与されます。これは通常、追加のフラグを指定せずに実行した場合に発生します。

ファイルをコピーする際に、適切なパーミッションが設定されていることを確認することもできます。ファイルの所有者に書き込み権限を与えたい場合は、「rsync --perms --chmod Fu+w」を使用してください。他のグループも指定できます。「rsync」コマンドで「--chown=」オプションを使用し、その後にユーザー名、コロン、グループを指定すると、コピーされたファイルにも適切なパーミッションが設定されます。

`rsync` は Windows と Linux 間で POSIX 準拠のファイル構造をコピーするのに非常に便利なので、`chmod` の設定をいろいろと試してみると良いでしょう。また、`install` も試してみると良いでしょう。`install -m 777` に続けてファイルのコピー元とコピー先を指定すると、すべてのユーザーに即座に読み書き権限が付与されます。安全のため、`755` などの任意の組み合わせを使用することもできます。

これは確かに `rsync` ほど高速ではありませんが、「現在、このフォルダにアクセスする権限がありません」などのエラーを修正するために権限を正確に指定したい場合には有効かもしれません。

コメントは締め切りました。