以往,需要改权限都是需要时,直接“百度”,但用了将近5年的linux,还不能熟练操作权限,理解权限,有点丢人哈。
-rw-r--r--
第一位:文件类型(-:文件 d:目录 l:软链接,还有块设备文件、字符设备文件、套接字文件、管道符文件)
剩下九位:每三位一组, 分别代表u所有者、g所属数组、o其他人
r:读,w:写,x:执行
一般所有者权限>所属组>其他人
liudeMacBook-Pro:~ liu$ ls -l
-rwxr-xr-x 1 liu staff 27464 6 5 21:21 a.out
drwxr-xr-x 5 liu staff 160 5 17 21:43 k8s.kfk
drwxr-xr-x 2 liu staff 64 5 24 10:42 tmp
drwxr-xr-x 32 liu staff 1024 6 6 10:50 work
chmod修改文件权限
±模式:
chmod u+x test.av #给所有者赋予执行权限
chmod g+w,o+w test.av #给多个组同时赋予权限
chmod u-x test.av #收回u的x权限
=模式:
chmod u=rwx test.av #给所有者赋予读写执行去权限
chmod u=rwx,g=rw test.av #给多个组赋予权限
chmod a=rw test.av #给所有人赋予相同的权限
数字表示(建议使用):r--4,w--2,x--1
用二进制来看每个权限位只有0和1两个状态,高低位表示就是r,w,x,转化成十进制就是4,2,1,在比较权限时直接比较各位就行。
常用权限:
777 -->所有权限
644 -->普通文件权限,所有者读写,其他只有读权限
755 -->执行权限,指向权限前提可读
实际工作中,ugo权限值是非递增,所以常用就是上边几个。
chmod 755 test.av #赋予rwxr-xr-x权限
权限对文件的作用:
r: 读取文件内容(cat、more、head、tail)
w: 编辑、新增、修改文件内容(vi echo),但不包含删除文件
(文件的权限是指对文件下级的内容的权限,这里就是文件内容,所以要删除文件应该看上一层目录的权限)
x: 执行
所以,本级设置的权限,是对其子级的操作控制。
权限对目录的作用:
r: 可以查看目录下文件名(ls)
w: 具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切(touch rm mv cp)
x: 可以进入目录(cd)
对文件来讲:最高权限是 x
对目录来讲:最高权限是 w (可以赋予的权限0,5:读和进入,7。但4没有意义,1没有意义,6没有意义)
所以对文件要少赋x,对目录少赋w,其他人不要赋予7权限。
其他权限命令:
chown 用户名 文件名,改变文件的所有者
chown 所有者:所在组 文件
liudeMacBook-Pro:~ liu$ ll
drwxr-xr-x 2 root staff 64 5 24 10:42 tmp
liudeMacBook-Pro:~ liu$ sudo chown liu tmp
liudeMacBook-Pro:~ liu$ ll
drwxr-xr-x 2 liu staff 64 5 24 10:42 tmp
chgrp 组名 文件名
chgrp usergrp tmp
让用户对文件及目录有一定的权限
要求:
root@hw1:~# ll -d av
drwxr-xr-x 2 root root 4096 Jun 9 10:36 av/
root@hw1:/home/test# useradd user1 #创建用户user1,所数组user1
root@hw1:~# chgrp user1 av
root@hw1:~# ll -d av
drwxr-xr-x 2 root user1 4096 Jun 9 10:36 av/
root@hw1:~# chmod 750 av
root@hw1:~# ll -d av
drwxr-x--- 2 root user1 4096 Jun 9 10:36 av/
root@hw1:~# mkdir /home/test
root@hw1:~# mv av /home/test/
root@hw1:~# cd /home/test/
root@hw1:/home/test# su - user1
$ ls -l
total 4
drwxr-x--- 2 root user1 4096 Jun 9 10:36 av
$ cd av
$ ls
root@hw1:/home/test# useradd user2 #创建用户user2,所数组user2
root@hw1:/home/test# su - user2
$ cd /home/test/
$ ls -l
total 4
drwxr-x--- 2 root user1 4096 Jun 9 10:36 av
$ cd av
-su: cd: av: Permission denied
分配文件基本权限时,核心原则:在最小权限情况下能够实现要求即可。
查看默认权限:umask
root@hw1:/home/test# umask
0022
第一位:文件特殊权限
后三位:文件默认权限
默认权限:
666换成字母-rw-rw-rw-
022换成字母-----w–w-
666-022= -rw-r–r--
033换成字母-----wx-wx
666-033= -rw-r–r--
其实就是换成二进制,先对umask取反,再进行逻辑与运算:umask&~原权限
目录的默认权限:
777=-rwxrwxrwx umask=022=-----w–w-
777-022=-rwxr-xr-x
就是各位进行7 7 7& ~0 ~2 ~2=7 5 5; 7&~2=5
临时修改: umask 022
永久修改: /etc/profile
接下来,还有ACL权限、文件特殊权限、不可改变位权限、sudo权限