本节理解目录和文件的所有者与所有权,使用chown / chmod / chgrp对文件的所有者或所有权进行更改。
1. 文件的所有者与所有group
- 修改所有者(chown)
chown ユーザ [. グループ] ディレクトリ
chown ユーザ [. グループ] ファイル
1. -R,针对目录,如果有嵌套的话,将该目录下的所有文件和目录进行修改。
- 修改所有group(chgrp)
与上面类似
2. 文件与访问权限
每个文件有如下的三类所属用户:
- 文件的所有者用户
- 文件的所有group中的用户(除去上面的所有者用户)
- 其他用户
文件的权限有三类: 读 / 写 / 执行 ,使用chmod能修改文件的mode。
2.1 文件的访问权限
使用 ls -l
,能输出每个文件或目录的权限:
d rwx rwx rwx
: d表示文件种别,第一个rwx表示所有者用户权限,第二个表示所有group的,第三个表示其他用户的。r
:读w
:写x
:执行或是目录移动
$ ls-l .bashrc
-rw-r--r-- 1 penguin linux 124 2月 6 02:44 .bashrc
(所有者が読み書き,所有グループが読み,その他が読み)
$ ls -l /usr
合計 272
drwxr-xr-x 3 root root 4096 2月 6 01:45 X11R6
drwxr-xr-x 2 root root 4096 2月 8 13:07 arc
drwxr-xr-x 2 root root 69632 2月 9 04:02 bin
...
2.2 访问权的变更
有如下两种方式对目录和文件进行访问权的修改:
chmod モード [, モード]... ディレクトリ
chmod モード [, モード]... ファイル
chmod 8 進数表記のモード ディレクトリ
chmod 8 進数表記のモード ファイル
1. -R,递归执行
【截图】
g+w
给group追加write权限u-r
给user去掉read权限,o+w
给other其他用户添加write权限
$ chmod u-r,o+w chownfile
(ユーザから r(読み込み権限) を除去、その他に w(書き込み権限) を追加)
$ ls -l chownfile
--w-rw-rw- 1 penguin lpic 124 3 月 27 19:09 chownfile
$ chmod go+x chownfile (グループとその他に x(実行権限) を追加)
$ ls -l chownfile
--w-rwxrwx 1 penguin lpic 124 3 月 27 19:09
$ chmod 664 chownfile
(ファイルモードを 664 に変更)
$ ls -l chownfile
-rw-rw-r-- 1 penguin lpic 124 3 月 27 19:09 chownfile
(ファイルモードを表示)
2.3 文件作成时的mode
文件生成时,默认为644或664,通过umask可以指定特定的permission。
$ umask
0022
(現在のマスク値を表示)
$ touch umask0022
(ファイルを作成)
$ umask 070
(マスク値を 070 に変更)
$ touch umask0070
(ファイルを作成)
$ umask 072
(マスク値を 072 に変更)
$ touch umask0072
(ファイルを作成)
$ ls -l umask00*
-rw-r--r-- 1 penguin lpic 0 3 月 22 13:49 umask0022
-rw----rw- 1 penguin lpic 0 3 月 22 13:50 umask0070
-rw----r-- 1 penguin lpic 0 3 月 22 13:50 umask0072
(作成したファイルの権限を確認)
添加 -S
optio后,能以rwx的形式表示mode
$ umask -S
u=rwx,g=rx,o=rx
(現在のマスク値を表示)
$ touch umask0022
(ファイルを作成)
$ umask -S u=rw,g=,o=rw u=rw,g=,o=rw
(マスク値を 070 に変更)
$ touch umask0070
(ファイルを作成)
$ ls -l umask00*
-rw-r--r-- 1 penguin lpic 0 3 月 22 13:49 umask0022
-rw----rw- 1 penguin lpic 0 3 月 22 13:50 umask0070
(作成したファイルのモードを確認)
使用umask对mode进行限制,只在当前执行的shell环境内有效,如果需要修改默认mode的话,需要修改文件.bashrc
。