English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux ファイルの基本的な属性

Linuxシステムは、典型的なマルチユーザーシステムであり、異なるユーザーは異なる地位にあり、異なる権限を持っています。

システムの安全性を保護するため、Linuxシステムは、異なるユーザーが同じファイル(ディレクトリファイルを含む)にアクセスする際の権限を異なった指定をしています。

Linuxでは、ファイルやディレクトリの所有者と権限を変更するために以下の2つのコマンドを使用します:

  • chown(変更オーナー):所有者とグループを変更します。

  • chmod(変更モード):ユーザーの権限を変更します。

下図では、chownを使用してユーザーに権限を付与し、chmodを使用してユーザーに開ける権限を設定しています。

Linuxでは、llまたはls -lコマンドを使用して、ファイルの属性やファイルの所有者とグループを表示できます。例えば:

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 ルート ルート 4096 Dec 14  2012 bin
dr-xr-xr-x   4 ルート ルート 4096 Apr 19  2012 boot
……

例では、bin ファイルの最初の属性は d で表されます。d は Linux ではディレクトリファイルを意味します。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录

  • 当为 - 则是文件;

  • Linuxでは、最初の文字はこのファイルがディレクトリ、ファイル、リンクファイルなどであることを表します。

  • 当てはまる場合、dはディレクトリです。

  • これはファイルです;

lの場合、リンクドキュメント(link file)を表します。  - bの場合、デバイスファイル内の格納可能なインターフェースデバイス(ランダムアクセスデバイス)を表します。

cの場合、デバイスファイル内のシリアルポートデバイス(キーボード、マウスなどの一時読み取りデバイス)を表します。 10 次の文字の中で、3文字ずつグループ化され、rwxの3つのパラメータの組み合わせです。そのうち、rは読み取り(read)、wは書き込み(write)、xは実行(execute)を表します。注意するべきは、これらの権限の位置が変更されないことです。権限がない場合、マイナス記号が表示されます。

既に述べたように。 0-9 各ファイルの属性は、左側の最初の部分で決定されます。

文字で表現される場合、読み取り権限はありません;桁で表現される場合、読み取り権限があります。r文字で表現される場合、読み取り権限がありますが、 0 左から右に向かって、各桁で1文字を使用して決定します(以下の図を参照)。 1-3 これらの数字で表現されます。

文字で表現される場合、読み取り権限はありません;桁で表現される場合、読み取り権限があります。r文字で表現される場合、読み取り権限がありますが、4-6桁で表現される場合、ファイルのタイプを決定します、第7-9桁で表現される場合、所有者(このファイルの所有者)がこのファイルの権限を持ちます。

桁で表現される場合、所有者グループ(所有者の同じグループのユーザー)がこのファイルの権限を持ちます、第 1、4、7 桁で表現される場合、他のユーザーがこのファイルの権限を持ちます。 - 第

文字で表現される場合、読み取り権限はありません;桁で表現される場合、読み取り権限があります。r文字で表現される場合、読み取り権限がありますが、 2、5、8 第 - 文字で表現される場合、書き込み権限はありません;桁で表現される場合、書き込み権限があります。w文字で表現される場合、書き込み権限がありますが、 3、6、9 桁で表現される場合、実行権限があります。x文字で表現される場合、実行権限がありますが、 - 文字で表現される場合、実行権限はありません。

Linuxファイルの所有者と属組

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

ファイルに関しては、特定の所有者が存在し、それはそのファイルに対して所有権を持つユーザーです。

また、Linuxシステムでは、ユーザーはグループに分類されており、ユーザーは1つのまたは複数のグループに属しています。

ファイルの所有者以外のユーザーは、所有者と同じグループのユーザーと他のユーザーに分類されます。

したがって、Linuxシステムでは、ファイルの所有者、所有者と同じグループのユーザー、他のユーザーに対して異なるファイルアクセス権限を指定しています。

上記の例では、mysqlファイルはディレクトリファイルであり、所有者と属組はすべてmysqlで、所有者には読み取り、書き込み、実行の権限があります;所有者と同じグループの他のユーザーには読み取りと実行の権限があります;他のユーザーにも読み取りと実行の権限があります。

rootユーザーの場合、通常、ファイルの権限はそのユーザーに対して効果がありません。

ファイルの属性を変更

1、chgrp:ファイルの属組を変更

语法:

chgrp [-R] 属组名 文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-Rの引数がある場合、そのディレクトリ下のすべてのファイルの属組が変更されます。

2、chown:更改文件属主,也可以同时更改文件属组

语法:

chown [–R] 属主名 ファイル名
chown [-R] 属主名:属组名 ファイル名

进入 /root ディレクトリ(~)install.logの所有者をbinこのアカウントに変更します:

[ルート@www ~] cd ~
[ルート@www ~]# chown bin install.log
[ルート@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

将install.log的拥有者与群组改回为root:

[ルート@www ~]# chown root:root install.log
[ルート@www ~]# ls -l
-rw-r--r--  1 ルート ルート 68495 Jun 25 08:53 install.log

3、chmod:更改文件9个属性

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4

  • w:2

  • x:1

每种身份(owner/group/others) 各自的三个权限(r/w/x) 分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others = --- = 0+0+0 = 0

因此,在设置权限变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:

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

选项与参数:

  • xyz: 就是指刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

  • -R: 递归(recursive)的持续变更,即包括次目录下的所有文件都会变更

例えば、.bashrc というファイルのすべての権限を有効に設定するには、以下の命令を使用します:

[ルート@www ~]# ls -al .bashrc
-rw-r--r--  1 ルート ルート 395 Jul  4 11:45 .bashrc
[ルート@www ~]# chmod 777 .bashrc
[ルート@www ~]# ls -al .bashrc
-rwxrwxrwx  1 ルート ルート 395 Jul  4 11:45 .bashrc

それでは、権限を以下のようになります: -rwxr-xr-- どうでしょうか?それでは、権限のスコアは以下のようになります:4+2+1][4+0+1][4+0+0]=754。

シンボルタイプでファイル権限を変更

権限を変更するもう一つの方法があります。前の紹介からわかるように、基本的には9つの権限があります:

  • user:ユーザー

  • group:グループ

  • others:他の

したがって、 u, g, o を使用して、3つのアイデンティティの権限を表現します。

さらに、 a これは以下を意味します: all、つまりすべてのアイデンティティです。読み書きの権限は r, w, x と書かれ、以下のテーブルを使用して確認できます:

chmodu
g
o
a
+(追加)
-(削除)
=(設定)
r
w
x
ファイルまたはディレクトリ

ファイルの権限を設定する必要がある場合、例えば: -rwxr-xr-- 、chmod u=rwx,g=rx,o=r ファイル名を使用して設定することができます:

#  touch test1    // test の作成1 ファイル
# ls -al test1    // test の確認1 デフォルトの権限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // test の変更1 権限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

それでは、他の既存の権限を変更せずに権限を取り除く場合、例えば、すべての人の実行権限を取り除く場合は:

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

さらに詳しい内容