Linux基础命令四:文件及目录权限

1.概念

linux 有三种权限:r(读权限),w(写权限),x(执行权限)

权限 数字 文件 目录
r 4 读取文件的内容 查看目录下的文件与目录名称
w 2 修改文件内容,不能删除文件 在目录下增、删、改文件与目录结构
x 1 可被系统执行 可以进入该目录

使用ll查看文件或目录信息

[root@catyuan ~]# ll /
total 104
dr-xr-xr-x.   2 root root  4096 Aug 24  2017 bin
dr-xr-xr-x.   4 root root  4096 Aug 24  2017 boot
drwxr-xr-x   17 root root  3420 Nov  7 18:50 dev
drwxr-xr-x.  74 root root  4096 Nov  7 22:25 etc
drwxr-xr-x.   2 root root  4096 Sep 23  2011 home
dr-xr-xr-x.   9 root root  4096 Aug 24  2017 lib
dr-xr-xr-x.   9 root root 12288 Aug 24  2017 lib64
drwx------.   2 root root 16384 Aug 24  2017 lost+found
drwxr-xr-x.   2 root root  4096 Sep 23  2011 media
drwxr-xr-x.   2 root root  4096 Sep 23  2011 mnt
drwxr-xr-x.   2 root root  4096 Sep 23  2011 opt
dr-xr-xr-x  101 root root     0 Nov  7 18:49 proc
dr-xr-x---.   5 root root  4096 Nov  9 16:32 root
drwxr-xr-x    3 root root  4096 Nov  7 18:45 run
dr-xr-xr-x.   2 root root 12288 Aug 24  2017 sbin
drwxr-xr-x.   2 root root  4096 Aug 24  2017 selinux
drwxr-xr-x.   2 root root  4096 Sep 23  2011 srv
drwxr-xr-x   13 root root     0 Nov  7 18:49 sys
drwxr-xr-x    3 root root  4096 Nov  8 16:17 temp
drwxrwxrwt.   3 root root  4096 Nov 10 09:54 tmp
drwxr-xr-x.  13 root root  4096 Aug 24  2017 usr
drwxr-xr-x.  19 root root  4096 Nov  7 19:47 var

2. drwxr-xr-x 17 root root 3420 Nov 7 18:50 dev

第一行的第一个字符代表这个文件的类型

d:目录
-:普通文件
l:链接文件
b:设备文件,可供存储的接口设备
c:设备文件,串行端口设备,如键盘、鼠标

rwxr-xr-x代表文件所有者、所属用户组、其他用户对该文件的权限

rwx:文件所有者,可读可写可执行。权限为4+2+1=7
r-x:所属组,可读可执行。权限为4+0+1=5
r-x:其他用户,可读可执行。权限为4+0+1=5

17

代表链接数量或者子目录的个数

root root

第一个是文件的所有者
第二个是文件的所属用户组

3420

文件大小,默认单位为B

Nov 7 18:50

文件最后被修改的时间

dev

文件名,如果文件名前多一个“.”则代表这个文件为隐藏文件

3.chmod 改变文件权限

第一种:使用数字来改变权限。r:4,w:2,x:1。

chmod 权限对应数字 文件或目录
-R    递归更改,即子目录的权限也会修改
[root@catyuan ~]# ll
-rw-r--r-- 1 root root 0 Nov 10 14:48 test
[root@catyuan ~]# chmod 777 test
[root@catyuan ~]# ll
-rwxrwxrwx 1 root root 0 Nov 10 14:48 test

第二种:通过符号类型来改变权限

chmod who=权限 文件或目录
u:拥有者的权限
g:所属组的
o:其他用户的
a:全部的身份
[root@catyuan ~]# ll
-rw-r--r-- 1 root root 0 Nov 10 14:48 test
[root@catyuan ~]# chmod u=rwx,go=rx test  
[root@catyuan ~]# ll
-rwxr-xr-x 1 root root 0 Nov 10 14:48 test
[root@catyuan ~]# chmod a=rx test
[root@catyuan ~]# ll
-r-xr-xr-x 1 root root 0 Nov 10 14:48 test

第三种:在原有的基础上进行+、- 权限的方法

chmod who+/- 文件或目录
[root@catyuan ~]# ll
-r-xr-xr-x 1 root root 0 Nov 10 14:48 test
[root@catyuan ~]# chmod u+w,g-x,o-rx test
[root@catyuan ~]# ll
-rwxr----- 1 root root 0 Nov 10 14:48 test

4.chown 更改文件所有权

chown  所有者:所属组 文件或目录
-R     递归修改,包括其子目录下的所有文件
[root@catyuan ~]# ll
-rwxr----- 1 root root 0 Nov 10 14:48 test
[root@catyuan ~]# chown mysql test              #仅修改所有者。将test文件的所有者修改为MySQL
[root@catyuan ~]# ll
-rwxr----- 1 mysql root 0 Nov 10 14:48 test
[root@catyuan ~]# chown :mysql test             #仅修改所属组。将test文件的所属组修改为MySQL
[root@catyuan ~]# ll
-rwxr----- 1 mysql mysql 0 Nov 10 14:48 test
[root@catyuan ~]# chown root:root test          #同时修改所有者与所属组。将test文件的所有者和所属组修改为root
[root@catyuan ~]# ll
-rwxr----- 1 root root 0 Nov 10 14:48 test

5.umask 文件默认权限

umask就是指定目前用户在新建文件或目录时的权限默认值,默认为0022。创建文件默认没有执行权限,目录默认权限都开放

[root@catyuan ~]# umask
0022                      
#与一般权限有关的是后三位,第一位与特殊权限有关

umask的数字指的是需要减掉的权限。

 “0022”指的是所有者不需要拿掉权限,所属组和其他用户需要拿掉2(w)的权限

umask为0022时,创建的文件默认权限为644,创建的目录权限为755

[root@catyuan ~]# touch test
[root@catyuan ~]# ll
-rw-r--r-- 1 root root 0 Nov 10 17:33 test
[root@catyuan ~]# mkdir test1
[root@catyuan ~]# ll
-rw-r--r-- 1 root root    0 Nov 10 17:33 test
drwxr-xr-x 2 root root 4096 Nov 10 17:42 test1

修改umask对权限的影响

将umask修改为007
[root@catyuan ~]# umask 007
[root@catyuan ~]# touch test2
[root@catyuan ~]# mkdir test3
[root@catyuan ~]# ll
-rw-rw---- 1 root root    0 Nov 10 17:47 test2
drwxrwx--- 2 root root 4096 Nov 10 17:47 test3
将umask修改为0
[root@catyuan ~]# umask 0
[root@catyuan ~]# touch test1
[root@catyuan ~]# mkdir test2
[root@catyuan ~]# ll
-rw-rw-rw- 1 root root    0 Nov 10 17:49 test1
drwxrwxrwx 2 root root 4096 Nov 10 17:49 test2

练习完成后,恢复umask为002

[root@catyuan ~]# umask 002

6.特殊权限

SUID:u+s。仅用在二进制程序

运行程序时,进程的属主是程序文件自身的权限,而不是进程发起者
[root@catyuan ~]# chmod u=rwxs test
[root@catyuan ~]# ll
-rwsrwxr-x 2 root root 4096 Nov 10 18:18 test

SGID:g+s。可用在二进制程序,目录

运行程序时,进程的属组是程序文件自身的属组,而不是进程发起者的基本组
[root@catyuan ~]# chmod g+s test1
[root@catyuan ~]# ll
drwxrwsr-x 2 root root 4096 Nov 10 18:18 test1

SBIT:o+t

在一个公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件
[root@catyuan ~]# mkdir test1
[root@catyuan ~]# chmod o+t test1
[root@catyuan ~]# ll
drwxr-xr-t 2 root root 4096 Nov 10 18:42 test1

猜你喜欢

转载自blog.csdn.net/qq_42816766/article/details/83929876