LINUX|ファイルやフォルダのパーミッションを確認してpemission deniedを解決する方法
記事No.69
更新日時2023年03月08日
■記事ページを表示中
記事No.69
更新日時2023年03月08日
permission deniedを直訳すると、permission(権限)denied(与えない)、つまり権限がない。という事です。
ファイルやフォルダには、パーミッション(権限)を設定する事ができます。
permission deniedとなった理由は、対象のファイルやフォルダを変更する権限が無い為です。
多くの場合、以下のコマンドを、実行したいコマンドの前に加える事で問題が解決します。
$sudo
例えば、ファイルの名前を変更したいと思って、以下のコマンドを入れた結果、permission deniedとなった場合、
$mv 変更前のファイル名 変更後のファイル名
以下のようにコマンドを入れると、問題なくファイルの名前が変更されます。
$sudo mv 変更前のファイル名 変更後のファイル名
ここで使用したsudoコマンドは、root(スーパーユーザー)権限でファイルを実行できるコマンドです。
rootとは、スーパーユーザーを指します。スーパーユーザーはOS内の全てのファイルやフォルダにアクセスする事が出来ます。sudo(superuser do)コマンドを使用する事で、現在ログインしているユーザーが、スーパーユーザーの権限を使用してファイルにアクセス可能となります。
今回、permission deniedと表示されたのは、ファイル所有者がroot(スーパーユーザー)だったにも関わらず、スーパーユーザーの権限を使用せずにファイルを実行しようとした為です。
ファイルの所有者を確認するコマンドは以下です。所有者を確認したいファイルが存在するフォルダで以下のコマンドを実行します。
ls -l #drwxr-xr-x 2 root root 4096 Nov 27 18:40 html
実行結果の意味は以下です。
d…ファイルタイプ
rwxr-xr-x…ファイルモード
2…リンク数
root…ファイルの所有者
root…ファイルが所属する所有グループ
4096…サイズ
Nov 27 18:40…タイムスタンプ
html…ファイル名、もしくは、ディレクトリ名
「root」がファイルの所有者になっているのが分かります。
sudoコマンドを使用して、root権限でファイルを実行する場合、以下で解説するファイルモードに関係なくファイルを実行する事が可能です。
今回の例の場合、ファイルモードは以下でした。
「rwxr-xr-x」
この9文字の文字列は、3文字づつ、3セットに分けて考えます。
rwx・・・1セット目
r-x・・・2セット目
r-x・・・3セット目
の3セットです。各セットの意味は以下です。
1セット目・・・所有ユーザーの権限
2セット目・・・所有グループの権限
3セット目・・・その他のユーザーの権限
それぞれのセットを「パーミッション(アクセス権)」と言います。つまり、1セット目は所有ユーザーのパーミッション、2セット目は所有グループのパーミッション、3セット目はその他のユーザーのパーミッション、となります。
また、各セットのrwx-の意味は以下です。
r…読み込み許可
w…書き込み許可
x…実行許可
–…許可なし
以上の事をまとめると、ファイルモード「rwxr-xr-x」の意味は以下です。
ファイル所有ユーザーの権限は、読み込み許可、書き込み許可、実行許可。所有グループの権限は、読み込み許可、実行許可。その他のユーザーの権限は、読み込み許可、実行許可。です。
ファイルモードは、数字で表される事もあります。例えばファイルモード「rwxr-xr-x」であれば「755」となります。ファイル所有者のパーミッション「rwx」は「7」、所有グループのパーミッション「r-x」は「5」、その他のユーザーのパーミッション「r-x」は「5」と表されています。これは、r…4、w…2、x…1、-…0、として各パーミッションの合計を計算した結果です。
このようにファイルモードでは、読み込み許可、書き込み許可、実行許可、を誰に与えるかを決める事ができますが、sudoコマンドを使う事で、ファイルモードに縛られず、ファイルを操作する事ができます。
名前:スカーレット
2010年からWEBサイトやWEBアプリを作成しています。最初は趣味でブログを書いていましたがSEOを勉強するのが楽しくなり、そのままブロガーとして独立しました。その後、記事を書くだけでは物足りなくなり自分でWEBアプリの作成をスタート。現在はブロガー兼プログラマーとして活動しています。このWEBアプリ(ブロトーク)もDjangoで自作しました。ブロトークはブログとSNSを合体させたようなWEBアプリです。ブログを読んで気づいた事や感想などあれば、気軽にメッセージを送って頂ければと思います。WEB技術を一緒に勉強していけたらと思います。
コメントフォーム