Chiroru's Diary

日々の学びをちょこちょこメモしていきます

Linuxについて パーミッションなど

※こちらは学習中のメモ書きです。プログラミング勉強中の者が書いています。

学習内容

  • Linuxゲリラ戦記(29~)
  • 新しいLinuxの教科書(149~166)

ファイルのパーミッション(アクセス権限)

ファイルに設定された「誰にどのような操作を許すか」を規定する情報のこと。

$ls -l (ファイル名)にて、そのファイル詳細表示して、オーナーを確認することができる。

$ ls -l
-rw-r--r--  1 username username    16 2010-01-09 18:12 access.txt

一番左の部分に、このファイルに対するアクセス権限が記載されている。
権限には
『ファイルを見る権利・r』
『ファイルに書き込む権利・w』
『ファイルを実行する権利・x』の3種類がある。

-rw-r--r--は4パーツに分けて見る。

  • 1番左の「-」:それがファイルであるか、ディレクトリであるか。またはシンボリックファイルであるかを示す。ファイルの場合は-ディレクトリの場合はdシンボリックファイルの場合は l

  • 「rw-」:ファイルを所有している人の権限を示す。(この場合『読む権利』と『書き込む権利』)

  • 真ん中の「r--」:ファイルを所有しているグループの権限を示す。(この場合『読む権利』のみ)

  • 一番右の「r--」:ファイルの所有者でもグループでも無い人(その他のユーザー)の権限を示す。(この場合『ファイルを読む権利』のみ)

username usernameについて。

  • 左側:ファイルの所有者名
  • 右側:グループ名

一般ユーザーとグループ

Linuxでは一般ユーザーを追加できる。グループとは、ユーザーをまとめた集まりのこと。
一人のユーザーは同時に複数のグループに所属することが出来る。

自分が属しているグループを確認する時は

$ groups

ディレクトリのパーミッション

パーミッションを確認する際は以下のコマンドとなる

$ ls -ld (ディレクトリ名)

なおこの際出てくる「r・w・x」の意味合いは、ファイルのパーミッションとは違うので注意。

「r」:ディレクトリに含まれるファイル一覧の取得
「w」:ディレクトリ下のファイル・ディレクトリの作成・削除
「x」:ディレクトリをカレントディレクトリにする

  • ディレクトリの設定にrがなければ、ファイルの一覧取得lsコマンドがエラーとなる。
  • ファイルの削除については、ディレクトリのパーミッションで決まるため、ファイル自身のパーミッションは関係ない。
    (例えばファイルが「r」のみの設定をされていても、削除は可能ということ)

権限の変更

ファイルやディレクトリのパーミッションの設定は、ファイルモードを変更するchmodコマンドを利用する。
このコマンドにはシンボルモード数値モードの2種類の指定方法がある。

なおこれを変更できるのは、オーナーまたはスーパーユーザー(管理者権限を持つrootユーザー)のみ。

シンボルモード

指定したパーミッション以外の変化はない相対的な指定方法。(オーナー権限のみなどの)パーミッションの一部だけ変更したい時に利用するのが良い。

chmod [ugoa] [+-=][rwx] <ファイル名>
  • ugoaはどのユーザーに対する変更かのこと
記号 対象
u オーナー
g グループ
o その他のユーザー
a 上記全て
  • 演算子「=」は指定した権限と等しくする。

例)オーナーにwの権限を追加

$ chmod u+w <ファイル名>

数値モード

元のパーミッションに関わらず、新しい指定へと変更する絶対的な指定方法。

chmod <8進数の数値> <ファイル名>
記号 対象
r 4
w 2
x 1

これらを足した値を、オーナー・グループ・その他のユーザーの順に並べる。

例) rwxr-xr-xの場合、「755」