一、权限表示
1、文件权限:
文件的权限有三种:所有者,所属组,其他人
rwx-:分别表示:读、写、执行,‘-’表没有权限
例如上图中:-rw-r--r--:首先‘-’表示文件,第一个组rwx表示所有者的权限(rw-表示在所有者中具有‘读、写’能);第二组的rwx:文件所属组的权限(r--表示在所属组具有‘读’的功能);第三个组rwx:文件其他人的权限(r--表示在其他人中只具有‘读’的功能)。
2、 目录的权限:
r:具有读取目录结构列表的权限,可以查看目录下有哪些文件
w:该权限对于目录来说是很大的:
1、可以在该目录下新建新的文件和目录
2、可以删除已经存在的文件和目录
3、将已经存在的文件和目录重命名
4、移动该目录内的文件和目录的位置
x:是否可以进入该目录
例如上图中:drwxr-xr--x:首先d表示目录,第一个组rwx表示所有者的权限(rwx表示在所有者中具有读、写和进入功能);第二组的rwx:文件所属组的权限(r-x表示在所属组具有读和进入的功能);第三个组rwx:文件其他人的权限(r-x表示在其他人中只具有读和进入目录的功能)。
二、 修改权限
1、文件权限的修改
(1) chown:修改文件的拥有者,前提示要有该拥有者(change own)
chown 拥有者 文件/目录
-R 递归修改
(2)chgrp:修改文件所属组,前提是要有改组
-R 递归修改
(3)chmod:修改拥有者和所属组的权限
1、加减法(u表用户,g表所属组,o表其它人)
步骤;
1、首先查看tmp目录下文件属性:ls -l
2、看到文件123的权限为:-rw-r--r-- 1 root root 0 Apr 8 21:04 123
3、使用chmod修改文件123所属组的权限:chmod g+w 123 (其中g表示所属组,+就是加减法中的加,w表示增加写权限,123表示文件名)(同样的可以 g=w;g-w等)
4、查看权限是否被修改成功:ls -l
5、权限修改成功且为:-rw-rw-r-- 1 root root 0 Apr 8 21:04 123
2、数字法:r=4,w=2,x=1 ,也即是说rwx=4+2+1=7;rw-=4+2=6;r--=4;r-x=4+1=5;
6、把文件abc的所有者、所属组和其他人的权限全部设为rwx:chmod 777 abc
7、查看abc的权限:ls -l
8、可以看到abc的权限确实都改为了rwx:-rwxrwxrwx 1 wgs root 0 Apr 8 20:53 abc
三、默认权限-umask
(1)unmask:查看当前用户的umask权限: -S选项
(2)0022---拿走的权限
1、第一个数字表示特殊权限
2、022=rwxr-xr-x(由于r=4,w=2,x=1;故022中0表示rwx什么也不拿走,还是rwx,第一个2表示rwx中拿走w,故rwx变成r-x,同理第二个2,也是拿走了w,把rwx变成了r-x)
(3)默认创建文件和目录的权限,文件会拿走X权限
(4)临时的修改:umask 0000
(5)永久修改:/etc/bashrc(不建议)
注: 1、文件默认拿走x权限,目录不会
故文件的默认权限为:(-rw-rw-rw-)
目录的默认权限为:(drwxrwxrwx)
2、普通用户的默认权限为:002
root用户的默认权限为:022
例如:假设你的umask为003,请问该umask情况下,建立的文件和目录的权限分别为多少?
答:umask为003,所以拿掉的权限为--------wx(因为r=4,w=2,x=1),因此
文件:(-rw-rw-rw-)-(--------wx)=-rw-rw-r--
目录:(drwxrwxrwx)-(d-------wx)=drwxrwxr--
在什么情况下,要使用umask:
假设你和你的同事在同一个目录下进行同一个项目的工作。如果使用默认权限022,那么你创建的文件,你的同事将无法编辑。因此我们可以将权限调整为002;