在之前使用过windows系统的都知道,可为文件设置权限,那么这权限是怎么设置的,之前在"linux(15)---用户管理命令"中提到,系统中的用户主要是实现资源分享,那在系统中的文件权限自然也是针对用户而言设置的权限,如果没有系统没有用户,那设置权限也无意义,文件权限彻底是"某用户针对该文件有哪些权限"可对文件进行哪些相关操作。

    在linux系统中具有着"一切皆文件的概念",当然也分了很多文件类型,但是在文件权限设置上只分为"文件权限和目录权限"

     linux系统中针对文件而言,文件的权限可分为{readable(可读),简写为"r"、weitable(可写),简写为"w"、excutable(可执行)"x"}三类,

    可操作文件的用户分类分别为{owner:属主"u",   group :属组 "g" ,  other:其他 "o"}三类


    系统中对文件的权限和操作用户:

-rw-r--r--. 1 root root   45 Apr 22 09:19 a.txt      前十位的第二位至第十位为可设置权限,分别先后表示为第二位到第4位为:u属主的权限,第五位至第七位为:g属组的权限,第八位至第十位为:o其他用户的权限。第三段和第四段分别为root,表示文件的属主和属组,在文件中并不直接表现出文件o用户,只在权限设置位体现。


针对文件用户可操作权限方式:

     r:可使用文件查看工具获取文件内容

     w:可修改其内容

     x:可以把此文件提交给内核启动为一个进程


针对目录用户可操作权限方式:

     r:可以使用ls 查看此目录中的列表

     w:可在此目录中创建文件,也可以删除此目录中的文件 

     x:可以使用ls -l查看此目录中文件列表,可cd进如此目录


八进制表示文件权限方式:

r=4,w=2,x=1,那么总合是7,又因为用户分为u,g,o三类用户可对文件操作权限,即可每一类用户对文件权限都可占有7的权限,那么文件权限的最高权限表示为"777"


chamod命令:change file mode bits

【功能】修改文件权限,以文件为参照修改权限,使其用户对文件权限操作,

【语法】

chmod [OPTION]... MODE... FILE.. //该方式是指定"xwr"修改
chmod [OPTION]... OCTAL-MODE FILE... //该方式是以"八进制"方式修改文件文件权限
chmod [OPTION]... --reference=RFILE FILE...  //该方式是"参照某文件"修改指定文件权限

【常用选项】

-R,--recursive:表示递归修改文件权限,常用于目录下有多个子文件时使用

【实例1】为a.txt文件的o用户添加w权限,属主添加x权限

[root@perthon50 tmp]# ll
total 16
-rw-r--r--. 1 root root   45 Apr 22 09:19 a.txt
-rw-r--r--. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-r--r--. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chmod u+x,o+w a.txt 
[root@perthon50 tmp]# ll
total 16
-rwxr--rw-. 1 root root   45 Apr 22 09:19 a.txt
-rw-r--r--. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-r--r--. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log

【实例2】最常用的八进制方式设置文件权限,修改b.txt文件权限位444

[root@perthon50 tmp]# ll
total 16
-rwxr--rw-. 1 root root   45 Apr 22 09:19 a.txt
-rw-r--r--. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-r--r--. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chmod 444 b.txt 
[root@perthon50 tmp]# ll
total 16
-rwxr--rw-. 1 root root   45 Apr 22 09:19 a.txt
-r--r--r--. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-r--r--. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log

【实例3】参照某文件设置指定文件权限,

//参照yum.log文件权限位b.txt a.txt 和testfile设置权限
[root@perthon50 tmp]# ll
total 16
-rwxr--rw-. 1 root root   45 Apr 22 09:19 a.txt
-r--r--r--. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-r--r--. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chmod --reference=yum.log b.txt a.txt testfile 
[root@perthon50 tmp]# ll
total 16
-rw-------. 1 root root   45 Apr 22 09:19 a.txt
-rw-------. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-------. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log


chown命令:change file owner and group

【功能】修改文件属主和属组,在有些时候需要修改文件的属主和属组,如某脚本文件需要某用户运行时,此时只修改文件权限是无法满足的。

【语法】

chown [OPTION]... [OWNER][:[GROUP]] FILE...   //表示指定修改文件的属主和属组,可单改
chown [OPTION]... --reference=RFILE FILE...   //参数某文件修改指定文件的属主和属组

【常用选项】

-R,--recursive:表示递归修改文件的属主和属组,常用于目录下有多个子文件时使用

【实例1】修改a.txt文件的属主为zhangsan用户

[root@perthon50 tmp]# ll
total 16
-rw-------. 1 root root   45 Apr 22 09:19 a.txt
-rw-------. 1 root root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root root 1336 Apr 22 03:21 passwd
-rw-------. 1 root root  128 Apr 22 08:40 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# tail -n 3 /etc/passwd
zhangsan:x:501:501::/home/zhangsan:/bin/bash
lisi:x:503:503::/home/lisi:/bin/bash
user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh
[root@perthon50 tmp]# chown zhangsan a.txt 
[root@perthon50 tmp]# ll
total 16
-rw-------. 1 zhangsan root   45 Apr 22 09:19 a.txt
-rw-------. 1 root     root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root 1336 Apr 22 03:21 passwd
-rw-------. 1 root     root  128 Apr 22 08:40 testfile
-rw-------. 1 root     root    0 Apr 22 00:13 yum.log

【实例2】修改b.txt文件的属主和属组都为zhangsan

[root@perthon50 tmp]# ll
total 16
-rw-------. 1 zhangsan root   45 Apr 22 09:19 a.txt
-rw-------. 1 root     root   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root 1336 Apr 22 03:21 passwd
-rw-------. 1 root     root  128 Apr 22 08:40 testfile
-rw-------. 1 root     root    0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chown zhangsan:zhangsan b.txt 
[root@perthon50 tmp]# ll
total 16
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root     1336 Apr 22 03:21 passwd
-rw-------. 1 root     root      128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log

【实例3】复制b.txt文件的属主和属组给testfile文件

[root@perthon50 tmp]# ll
total 16
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root     1336 Apr 22 03:21 passwd
-rw-------. 1 root     root      128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chown --reference=b.txt testfile 
[root@perthon50 tmp]# ll
total 16
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root     1336 Apr 22 03:21 passwd
-rw-------. 1 zhangsan zhangsan  128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log

【实例4】递归修改文件的属主和属组,使其test目录及子文件属主和属组都为zhangsan

[root@perthon50 tmp]# ls -l test
total 16
-rw-------. 1 root root   45 Apr 23 08:25 a.txt
-rw-------. 1 root root   25 Apr 23 08:25 b.txt
-rw-r--r--. 1 root root 1336 Apr 23 08:25 passwd
-rw-------. 1 root root  128 Apr 23 08:25 testfile
-rw-------. 1 root root    0 Apr 23 08:25 yum.log
[root@perthon50 tmp]# ls -ld test
drwxr-xr-x. 2 root root 4096 Apr 23 08:25 test
[root@perthon50 tmp]# chown -R zhangsan:zhangsan test
[root@perthon50 tmp]# ls -ld test
drwxr-xr-x. 2 zhangsan zhangsan 4096 Apr 23 08:25 test
[root@perthon50 tmp]# ls -l test 
total 16
-rw-------. 1 zhangsan zhangsan   45 Apr 23 08:25 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 23 08:25 b.txt
-rw-r--r--. 1 zhangsan zhangsan 1336 Apr 23 08:25 passwd
-rw-------. 1 zhangsan zhangsan  128 Apr 23 08:25 testfile
-rw-------. 1 zhangsan zhangsan    0 Apr 23 08:25 yum.log


【实例5】只修改文件passwd属组为zhangsan

[root@perthon50 tmp]# ll
total 20
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root     1336 Apr 22 03:21 passwd
drwxr-xr-x. 2 zhangsan zhangsan 4096 Apr 23 08:25 test
-rw-------. 1 zhangsan zhangsan  128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chown :zhangsan passwd 
[root@perthon50 tmp]# ll
total 20
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     zhangsan 1336 Apr 22 03:21 passwd
drwxr-xr-x. 2 zhangsan zhangsan 4096 Apr 23 08:25 test
-rw-------. 1 zhangsan zhangsan  128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log

chgrp命令:change group ownership

【功能】修改文件或目录的属组

【语法】

chgrp [OPTION]... GROUP FILE...               //修改文件属组

chgrp [OPTION]... --reference=RFILE FILE..    //指定参照文件修改指定文件属组

【常用选项】

-R,--recursive:表示递归修改文件的属组,常用于目录下有多个子文件时使用

【实例】修改文件属组

[root@perthon50 tmp]# ll
total 20
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan zhangsan   25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     zhangsan 1336 Apr 22 03:21 passwd
drwxr-xr-x. 2 zhangsan zhangsan 4096 Apr 23 08:25 test
-rw-------. 1 zhangsan zhangsan  128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log
[root@perthon50 tmp]# chgrp root b.txt passwd testfile 
[root@perthon50 tmp]# ll
total 20
-rw-------. 1 zhangsan root       45 Apr 22 09:19 a.txt
-rw-------. 1 zhangsan root       25 Apr 22 11:08 b.txt
-rw-r--r--. 1 root     root     1336 Apr 22 03:21 passwd
drwxr-xr-x. 2 zhangsan zhangsan 4096 Apr 23 08:25 test
-rw-------. 1 zhangsan root      128 Apr 22 08:40 testfile
-rw-------. 1 root     root        0 Apr 22 00:13 yum.log


umask命令,在linux系统中可查看文件默认权限,

[root@perthon50 tmp]# umask
0022
[zhangsan@perthon50 ~]$ umask
0002

管理用户默认权限位0022,意思就是文件默认权限位666去除x权限,表示在创建普通文件是默认权限位644,在创建目录时默认权限位755,表中在创建文件时默认是不能给文件有执行(x)权限的默认如果有x权限那么会自动+1,普通用户默认创建文件权限位664。



【实例1】管理用户创建文件和目录默认权限

[root@perthon50 tmp]# touch filenamelog
[root@perthon50 tmp]# mkdir testfile
[root@perthon50 tmp]# ll
total 4
-rw-r--r--. 1 root root    0 Apr 23 08:47 filenamelog
drwxr-xr-x. 2 root root 4096 Apr 23 08:48 testfile
-rw-------. 1 root root    0 Apr 22 00:13 yum.log

【实例2】普通用户创建文件和目录默认权限

[zhangsan@perthon50 ~]$ touch filename
[zhangsan@perthon50 ~]$ mkdir directory
[zhangsan@perthon50 ~]$ ll
total 4
drwxrwxr-x. 2 zhangsan zhangsan 4096 Apr 23 08:48 directory
-rw-rw-r--. 1 zhangsan zhangsan    0 Apr 23 08:46 filename


以下是笔记

权限管理概念


文件的权限主要针对三类用户进行定义

owner:属主,u

group:属组,g

other:其他,o

 

每个文件针对每类访问者都定义了三种权限

r:Readable 可读

w:Writable 可写

x:eXcutable 可执行

 

 

针对文件

r:可使用查看命令等工具获取内容

w:可修改其内容

x:可把此文件提请至内核启动为一个进程

 

针对目录

r:可使用ls查看此目录列表

w:可在此目录中创建文件,也可以删除此目录中的文件

x:可以使用ls -l 查看此目录文件列表,可以使用cd进入此目录

 

 

---       000     0

--x  001  1

-w-  010  2

-wx  011  3

r--  100  4

r-x  101  5

rw-  110  6

rwx  111  7

chmod


chmod命令

chmod [option]…..OCTAL-MODE    FILE …..

 

-R 递归修改权限

 

 

 

chmod [option]….mode  ….FILE

MODE

修改一类用户的所有权限,设置用户指定权限

u=

g=

o=

a=

表示之前的权限会被覆盖,或取消

 

#chmod u=…..   /path/file

 

修改一类用户某位或某些权限,

u+

u-

o+

o-

g+

g-

+

表示新增或减去某位权限,

 

#chmod u+ /path/file

 

chmod [option]….--reference= RFILE   FILE    表示参考RFILE文件,给FILE文件赋予同等权限


 

#chomd --reference=a.txt   b.txt

chown属主,chgrp属组,umask遮罩码


修改文件的属主和属组

root可用

 

修改文件的属主:chown

chown [option]…[OWNER][:[GROUP]]  FILE…..

 

用法:

OWNER

OWNER:GROUP

:GROUP

 

Note:命令的冒号可用.号替换

 

-R 递归

 

chown [option]…--refernece=RFILE  FILE

表示参考RFILE文件权限,赋予给FILE文件

 

修改文件的属组:chgrp

 

chgrp[option]….GROUP FILE….

chgrp [option]…--refernece=RFILE FILE

 

-R 递归

 

文件或目录的创建时的遮罩码:umask

FILE:666-umask

Note:如果某类的用户权限,减得的结果中存在x权限,则将其权限+1

DIR:777-umask

 

umask:查看

#umask

#umask #表示设置umask权限为#

 

命令总结:chmod chown   chgrp   umask