Linux のすべてのファイルとディレクトリには、標準のアクセス許可セットがあります。これらのアクセス許可は、誰がどのファイルにアクセスできるかを制御し、システム内のファイルとディレクトリに基本レベルのセキュリティを提供します。
閲覧権限
ファイルとディレクトリの権限を表示するには、ls -l を使用します または ls –n コマンド。
# ls -l file -rw-r--r-- 1 root root 0 Nov 19 23:49 file
ls -l コマンドによって表示される情報の最初のフィールドは、ファイルの種類です。通常、ファイル タイプは、ファイルかディレクトリかを指定します。ファイルはハイフン (-) で表されます。ディレクトリは文字 d で表されます。
残りのフィールドは権限グループを表します:所有者、グループ、 とその他 .
権限グループ
3 つの権限グループがあります:
<オール>次の表に、権限グループとその範囲を示します:
パーミッション | 説明 |
---|---|
所有者 | ファイルまたはディレクトリの割り当てられた所有者が使用する権限 |
グループ | ファイルまたはディレクトリを所有するグループのメンバーが使用する権限 |
その他 | ファイルの所有者以外のすべてのユーザー、およびファイルまたはディレクトリを所有するグループのメンバーが使用する権限 |
権限セット
– 各権限グループには、権限セットと呼ばれる 3 つの権限があります。
– 各セットは、読み取り 、書く 、そして実行
– 各ファイルまたはディレクトリには、3 種類のパーミッション グループに対して 3 つのパーミッション セットがあります。
– 最初のパーミッション セットは所有者のパーミッションを表し、2 番目のセットはグループのパーミッションを表し、最後のセットは
– 読み取り、書き込み、および実行の権限は文字 r で表されます 、w 、および x
– r などのこれらの文字のいずれかの存在は、特定の権限が付与されていることを示します。 ) 記号がパーミッション セット内の文字の代わりにある場合、特定のパーミッションが拒否されていることを示します。
– Linux は、新しいファイルまたはディレクトリが作成されると、最初のパーミッションを自動的に割り当てます。
パーミッション | ファイルへのアクセス | ディレクトリへのアクセス |
---|---|---|
読む (r) | ファイルの内容を表示し、ファイルをコピーできます。 | ls コマンドを使用して、ディレクトリの内容を一覧表示できます。 |
書き込み (w) | ファイルの内容を変更できます。 | ファイルを削除するなどして、ディレクトリの内容を変更できます。これを行うには、実行権限も必要です。 |
実行 (x) | ファイルが実行可能ファイルである場合、ファイルを実行できます。読み取り権限と実行権限もあれば、シェル スクリプトを実行できます。 | cd コマンドを使用してディレクトリにアクセスできます。読み取りアクセス権も持っている場合は、ディレクトリに対して ls -l コマンドを実行して内容を一覧表示できます。読み取りアクセス権がない場合は、ファイル名がわかっていれば ls コマンドを実行できます。 |
ファイルの所有権
すべてのファイルは、特定のユーザー (または UID) と特定のグループ (または GID) によって所有されます。 チョウン コマンドを使用して、ユーザーのみを変更することも、ファイルのユーザーとグループを変更することもできます。これは、ファイル test の所有者をユーザーに、そのグループをユーザーに変更する例です。
# ls -l test -rw-r--r-- 1 root root 0 Nov 20 00:43 test
# chown user:user test
# ls -l test -rw-r--r-- 1 user user 0 Nov 20 00:43 test
chown コマンドの基本的な形式は次のとおりです。
# chown user:group filename
ピリオド (.) コロン (:) の代わりに使用できます 区切り文字。また、ユーザー名またはグループ名は省略できます。ユーザー名が省略されている場合 (区切り文字が存在する場合)、chown コマンドは chgrp のように動作します。 コマンドを実行し、グループの所有権のみが変更されます。グループ名が省略された場合 (区切り文字が存在する場合、グループは指定されたユーザーのログイン グループに設定されます。グループ名と区切り文字の両方が省略された場合、ユーザー名のみが変更されます。たとえば、 、所有者のみを変更するには、次を実行できます:
# chown user filename
ファイルのグループのみを変更する代替コマンドは、chgrp コマンドです。例:
# chgrp group filename
chgrp コマンドは通常、ファイルのグループ所有権を変更するために通常のユーザーによって使用されます。通常、chown コマンドは root ユーザーのみが使用します。
デフォルトのグループ所有権
各ユーザーは、多くのグループのメンバーになることができます (複数のグループの下の /etc/group ファイルにリストされています)。 1 つのグループのみがユーザーのプライマリ グループになります (/etc/password のユーザーのエントリに一覧表示されます)。ユーザーがファイルを作成すると、デフォルトでは、ファイルはユーザーのプライマリ グループによって所有されます。ファイルを他のグループのいずれかに所有させたい場合は、chgrp を使用する必要があります グループ メンバーシップを変更するコマンド。例:
$ id uid=1001(user) gid=1001(user) groups=1001(user),10(wheel)
$ touch file
$ ls -lrt file -rw-rw-r-- 1 user user 0 Nov 20 00:52 file
上記のように、新しく作成されたファイル (ファイル) は自動的にグループを「ユーザー」として取得します。
ファイルとディレクトリのアクセス許可
以下は ls -l からのサンプル出力です 指図;各行の最初の文字から、dir1 と dir2 がディレクトリであることがわかります (d で示されます)。 ) であり、file1 と file2 は通常のファイルです (– で示されます)。 ).
$ ls -l total 0 drwxrwxr-x 2 user user 6 Nov 20 00:55 dir1 drwxrwxr-x 2 user user 6 Nov 20 00:55 dir2 -rw-rw-r-- 1 user user 0 Nov 20 00:55 file1 -rw-rw-r-- 1 user user 0 Nov 20 00:55 file2
次の 9 文字は、以下に示すように、ユーザー、グループ、その他 (またはその他のすべてのユーザー) に対するファイルのアクセス許可を示しています。明確にするために括弧が追加されています。
-(rw-)(rw-)(r--) 1 user user 0 Nov 20 00:55 file1
これで、所有者には読み取りと書き込みのアクセス許可 (rw-)、グループには読み取りと書き込みのアクセス許可 (rw-)、その他のユーザーには読み取りのアクセス許可のみ (r–) が付与されます。これは記号表現と呼ばれます r、w、x などの文字は権限を示すために使用されるためです。
権限は数値で表すこともできます:
r = 4; w = 2; x = 1
各セクションを追加して、ファイル メタのアクセス許可 (上記の例から) が 664 になるようにします。この数に到達する方法を別の方法で見ると、次のようになります。
-(rw-)(rw-)(r--) -(42-)(42-)(4--) 664
各セクションに数字を追加すると、664 の権限になります。
ファイル許可の変更
chmod コマンドは、ファイルのパーミッションを変更するために使用されます。アクセス許可を象徴的に追加または削除するために使用できます。たとえば、実行するファイルの所有者に実行権限を追加するには:
$ chmod u+x file_name
または、ファイルを所有するグループに読み取りと書き込みのアクセス許可を追加するには、次のコマンドを実行します:
$ chmod g+rw file_name
アクセス許可を追加する代わりに、chmod のシンボリック構文を使用して、次の例に示すように絶対値を減算または設定することもできます:
$ chmod o-w file_name $ chmod u=rwx,g=rx,o= file_name
chmod コマンドでは、数値表現を使用してアクセス許可を明示的に設定することもできます。たとえば、ファイルのパーミッションを rwxrwxr– に設定するには、次のコマンドを実行します:
$ chmod 774 file_name
標準の読み取り、書き込み、および実行許可に加えて、chmod は特別な許可も設定できます。これらは、setuid ビット、setgid ビット、およびスティッキー ビットです。次の例は、これらの特別なアクセス許可のそれぞれの設定と、それらのアクセス許可の効果の簡単な説明を示しています。
$ chmod u+s file_name
setuid を追加します ビット、実行可能な場合、このファイルはその所有者の許可で実行されます。
$ chmod g+s file_name
setgid を追加します 実行可能であれば、このファイルはそのグループのパーミッションで実行されます。これがディレクトリに設定されている場合、ディレクトリに作成されたすべてのファイルはディレクトリと同じグループになります。
$ chmod o+t directory_name
スティッキー ビットを追加します ユーザーが作成したこのディレクトリからのみファイルを削除できるようにします。