Linuxにおけるファイル権限とディレクトリ設定

基本的なコマンドの使い方を確認するには man lsinfo ls を使用します。

Linuxファイル属性の構造

ls -al コマンドを実行すると、以下のような出力が得られます:

# ls -al
total 156
drwxr-x--- 4 root root 4096 Sep 8 14:06 .bash_history
  • ls:ファイル一覧を表示するコマンドで、主にファイル名とその属性情報を表示します。
  • -al:すべてのファイル(隠しファイルを含む)の詳細な属性と権限を表示します。

各カラムの意味

  1. 第1カラム:ファイルタイプとアクセス権限
    • 先頭文字:
      • d:ディレクトリ
      • -:通常ファイル
      • l:シンボリックリンク
      • b:ブロックデバイスファイル
      • c:キャラクタデバイスファイル
    • 続く9文字(3グループ×3文字):
      • 1〜3文字目:所有者(user)の権限
      • 4〜6文字目:所属グループ(group)の権限
      • 7〜9文字目:その他(others)の権限
      • r:読み取り可
      • w:書き込み可
      • x:実行可
      • -:該当権限なし
  2. 第2カラム:ハードリンク数
    ファイルシステム内の i-node に接続されているハードリンクの数を示します。
  3. 第3カラム:所有者ユーザー名
  4. 第4カラム:所属グループ名
  5. 第5カラム:ファイルサイズ(バイト単位)
  6. 第6カラム:最終更新日時
    通常は「月 日 時刻」形式で表示されますが、古すぎる場合は年が表示されます。
    完全なタイムスタンプを確認するには:
    ls -l --full-time
    日本語環境では文字化けすることがあるため、必要に応じて言語を変更:
    LANG=en_US.UTF-8 ls -l --full-time
  7. 第7カラム:ファイル名
    先頭がピリオド(.)のファイルは隠しファイルです。

ファイル属性と権限の変更方法

所属グループの変更:chgrp

変更先のグループは /etc/group に存在している必要があります。

chgrp [-R] グループ名 ファイルまたはディレクトリ
  • -R:再帰的にサブディレクトリ以下のすべてのファイル・ディレクトリにも適用

所有者の変更:chown

変更先のユーザーは /etc/passwd に存在している必要があります。

chown [-R] ユーザー名 ファイルまたはディレクトリ
chown [-R] ユーザー名:グループ名 ファイルまたはディレクトリ

アクセス権限の変更:chmod

数値モード

chmod [-R] XYZ ファイルまたはディレクトリ

各桁の値は以下のように計算されます:

  • r = 4
  • w = 2
  • x = 1

例:所有者=rwx (7)、グループ=rx (5)、その他=rx (5) → chmod 755 file

記号モード

対象を指定する識別子:

  • u:所有者(user)
  • g:グループ(group)
  • o:その他(others)
  • a:すべて(all)

操作例:

# 所有者に rwx、グループとその他に rx を設定
chmod u=rwx,go=rx .bashrc

# 全ユーザーに書き込み権限を追加
chmod a+w .bashrc

# 全ユーザーから実行権限を削除
chmod a-x .bashrc

タグ: linux chmod chown chgrp file-permissions

8月13日 19:48 投稿