MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


Linuxの基礎を知る(ファイルとパーミッション)
profile-img
投稿者: Tomoyaさん
投稿日:2023/07/21 17:08
更新日:
like-img
分類
技術
テクノロジー
全般
キャリア
運用・保守
投稿内容
今回はLinuxを扱う業務の中では頻出のパーミッションについて説明します。
ファイルの種類やパーミッションの設定方法について理解すると、安全なファイル管理をすることができます。
Linuxファイルには大きく分けて通常ファイルとスペシャルファイルの2種類が存在します。

通常ファイル
一般的に扱うことの多いファイルで、読み込み・書き込み・実行が可能なファイルを指します。ファイルの種類を表す先頭の記号は「-」です。

<使用例>
#ファイルの詳細を確認
ls -l example.txt
-rw-r--r--  1 tomoya miracle 0 July 21 16:07 example.txt

通常ファイル・スペシャルファイルの分類においてはディレクトリは通常ファイルに含まれます。ディレクトリの種類を表す先頭の記号は「d」です。

<使用例>
#'test_dir'というディレクトリを作成
mkdir test_dir
#ディレクトリの詳細を確認
ls -l
drwxr-xr-x 2 tomoya miracle 4096 July 21 16:07 test_dir

このほかにも、先頭の記号が「l」になることもあります。これは、シンボリックリンクを表しています。シンボリックリンクとは元のファイルのある場所を指しています。

スペシャルファイル
スペシャルファイルにはいくつかの種類があります。

デバイスファイル
コンピュータでは様々なデバイスを利用する必要があります(ハードディスク・SDD・DVDドライブ・USB等)。それらのデバイスを利用するために、Linuxではデバイスに対応したデバイスファイルというファイルが存在します。このデバイスファイルがあるおかげで、ほかのファイルと同じようにデバイスにアクセスできます。

デバイスファイルにはブロックデバイスとキャラクタデバイスの2つがあります。
・ブロックデバイス:ブロックという単位でデータ転送を行うデバイス。ハードディスク・CD-ROM・フラッシュメモリ等がブロックデバイスに分類されます。先頭の記号は「b」です。
・キャラクタデバイス:キャラクタ単位でデータ転送を行うデバイス。キーボード・マウス・ターミナル等がキャラクタデバイスに分類されます。先頭の記号は「c」です。

デバイスファイルは/dev配下に格納されています。

所有者と所有グループ
全てのファイルにはそのファイルの所有者と所有グループが決まっています。ファイルを作成すると、作成したユーザーとプライマリグループがそれぞれファイルの所有者と所有グループに割り当てられます。

下の例ではexample.txtの所有者は「tomoya」、所有グループが「miracle」となっています。


<使用例>

ls -l example.txt
-rw-r--r--  1 tomoya miracle 0 July 21 16:07 example.txt

chownコマンド
chown(change owner)はファイルの所有者(owner)や所有グループを変更するためのコマンドです。
chownコマンドを使用する際はroot権限が必要になります。

<使用例>
sudo chown [新たなユーザー名] [変更するファイル名] example.txt
sudo chown [新たなユーザー名]:[新たなグループ名] example.txt

ディレクトリ配下のファイルやディレクトリの所有者を変更する場合は、「-R(--recursive)」オプションを指定します。

chgrpコマンド
chgrp(change group)はファイルの所有グループを変更するコマンドです。chgrpコマンドは一般ユーザーでも実行できます。ただし、その場合に設定可能なグループはそのユーザーが属しているグループに限定されます。それ以外のグループを指定する場合はroot権限が必須です。

<使用例>
chgrp [新たなグループ名] [変更するファイル名]

なお、ディレクトリの所有グループを変更する場合は、「-R」オプションを指定します。

パーミッション
ファイルやディレクトリには様々なパーミッション(権限)があります。パーミッションを適切に付与することで安全なファイル管理が可能になります。パーミッションには基本的なパーミッションと特殊なパーミッションが存在します。

基本的なパーミッション(r/w/x)
ファイルやディレクトリにはr(read:読み込み権限)、w(write:書き込み権限)、x(execute:実行権限)という3つの基本的なパーミッションを設定できます。また、r、w、xにはそれぞれ4、2、1の数字は割り当てられています。

<使用例>
ls -l example.txt
-rw-r--r--  1 tomoya miracle 0 July 21 16:07 example.txt

上記の例を見てみると、左端から2番目の3文字ずつ「rw-」が所有者、「r--」がグループ、「r--」がその他のユーザーのパーミッションを表しています。このパーミッションを数字で表すと「644」になります。(r+w(4+2)、r(4)、r(4))

chmodコマンド
chmod(change mode)はファイルへのアクセス権限を変更するためのコマンドです。コマンドを実行するにはroot権限が必要です。chmodコマンドでは以下のような記号やアルファベットを使用します。

「対象」では、何に対して権限を与えるかを示します。
u(users):所有者
g(groups):グループ
o(others):その他のユーザー
a(all):すべてのユーザー

「操作記号」では、対象の権限をどうするかを示します。
+:追加する
-:削除する
=:指定する

「権限」では、どの権限かを示します。
r・w・x:読み・書き・実行
s:SUID・SGID
t:スティッキービット

最後に
ファイルのパーミッションを適切に設定することは、安全なファイル管理をするうえで非常に重要な点になります。
実際に業務等でファイルを作った際にはパーミッションを意識してみてください。
コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3