Linux基礎実行ファイルとファイル権限について

こんにちは。AWSの勉強するに当たりLinuxも必然的にさわるので学んでいるねこだくさんです。

Linuxを触っているとファイルやディレクトリを実行する際にpermission deniedと怒られることがあります。
権限足りてねーよって意味ですが、その際の解決方法と実行ファイルってなんぞ?ということを勉強してみました。

前回学んだこと

前回はパスの通し方について学びました。

Linux基礎初心者が詰まりがちなPATHを通すについて
いろいろなところで詰まりがちなねこだくさんです。このPATHを通すという作業、環境構築する際に言われるがままに意味もわからずやっていました。なるほど(わからん)からチョットワカルになる程度まで勉強してみたいと思います。

実行ファイルとは

Exacutable File(実行可能ファイル)は内容がプログラムであるファイルのことです。
実行ファイルを開くことでプログラムが実行されます。

Windowsの場合拡張子が.exeとなっているファイルなどを指します。

ファイル権限とは

Linuxではファイルやディレクトリを実行できるかどうかといったことをユーザー単位・権限で管理しています。
これをファイル・ディレクトリの権限と呼んでいます。Permission(ファイル属性)として表現します。

Permissionとな?

所有権として自分・グループ・他人の3つのがあり、権限として読める(Readable)・書ける(Writable)・実行できる(eXecutable)の3つがあります。

所有権

所有者意味
Owner所有者・本人
Group同じサーバーに所属するユーザー
Otherそれ以外

権限

権限数字文字
読み取り4r
書き込み2w
実行1x

めんどくさいので数字の組み合わせで表現してます。

Permission確認

ls -lコマンドを使用します。設定されている場合llでも確認可能です。
仮想環境Envaderで実施してみます。

$ ls -l
total 1900
-rwxr-xr-x 1 envader envader 1941911  9月 28  2021 run1

-rwxr-xr-x
一番左がファイルの種類を表し、以降3桁ごとにユーザー、グループ、その他の権限を表しています。
数字で表すと755となります。

つまりこのrun1というファイルの実行権限は

  • ユーザーは読み取り・書き込み・実行が
  • グループは読み取り・実行
  • その他のユーザーは読み取り・実行
    となります。

Permission変更

個のファイルに対し実行権限は不要だよという場合chmodコマンドを使用し実行権限を変更することができます。

chmod 644 run1

a(全員)から実行権限を取り除く以下の指定方法でも同じ結果となります。

chmod a-x run1
$ ll
total 1900
-rw-r--r-- 1 envader envader 1941911  9月 28  2021 run1

コード参考:実行ファイルについて

学んだこと

  • 実行ファイルってのは選択することで実行できるプログラムのファイル
  • 実行ファイル等を実行するに当たり権限の変更が必要な場合chmodコマンドを使用する

猫たちはそのへんで転がっています。

自分で熊チョップ食らうポジションに行って解せぬ表情の猫

参考資料

コース一覧 | エンベーダー
コース一覧に関するページです。Linuxを学べるLinux基礎・応用コースを始めとして、エンジニア必須の知識であるデータベースやセキュリティのコースもあります。
Linuxの権限確認と変更(chmod)(超初心者向け) - Qiita
ファイル・ディレクトリの権限(パーミッション)の確認方法と変更方法以下のようなコマンドの謎の数字や$ chmod 777 hoge.txt以下のような一覧のrやwなど謎の英文字について-rw…

コメント