Linux文件及文件夹权限详解
虽然新手刚开始学Linux的时候基本都是以root权限,或者系统管理员的权限来操作的。随时随地加上“sudo”看似无所不能,其实非也。在实际你去公司工作上,肯定不会给你分配具有管理员权限的一些账号(至少在初期),一些萌新来说上网想学习结果被坑“sudo rm -rf /”这个仅仅只能在虚拟机上用,威力足够毁天灭地。有些夸张主要还是看该系统下文件的价值,这句话相当于windows下用管理员权限格式化C盘。举个简单的例子,你们家三个人:你,父亲,母亲。如果说把你们家看做一个组的话,你们三个就是这个家里的用户。用户可以创建文件吧,你写的私密日记不希望被父母看吧,你就是这本日记的拥有者,而你的父母虽然是同组,但是你并没有给同组的用户设置w(write),r(read),x(执行)的权利,他们不可以访问你的日记,其他人就更不可能了。
所以文件权限的设置就很重要了。
环境:
用户和组的创建及管理请看:https://blog.csdn.net/qq_42776455/article/details/82622906
- Xshell6远程连接到Ubuntu18.04。
- 两个用户,user1用户初始化直接加入到users,所以就不存在名叫user1的组。
hang:x:1000:1000:hang,,,:/home/hang:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
- 两个组:组名以及GID
hang:x:1000:
users:x:1001:
通过 ls 命令学习文件权限
这个是我用的user1用户创建的一个叫user1.test的文件,并查看权限的截图。
另外w(write),r(read),x(执行),大列为截图标识的。
第1大列,表示档案类型和权限。第一列里一共有10小列,第一小列为一组,后面每三小列为一组。
- 1,表示文档类型。
- 【d】:表示为文件夹。
- 【-】:表示为文件。
- 其他的l,b,c很少用到。
- 2~4,表示用户所有者的权限。
- 5~7,用户组的权限,也就是用户所在组的权限。
- 8~10,其他人的权限。
- 1,表示文档类型。
- 第2大列,表示该文件的连接数。
- 第3大列,该文件所有者的用户名。
- 第4大列,表示文件所属组的组名。
- 第5大列,文件的的大小,默认单位为bytes。
- 第6大列,文件的创建时间。
- 第7大列,文件名称。
文档属性的更改。
文档更改所有者
chown 【-R】 username dirname or filename
可选参数 -R 用在对文件夹操作时的,对文件夹下的每一个文件进行修改。
文档更改组
chgrp 【-R】 groupname dirname or filename
可选参数 -R 用在对文件夹操作时的,对文件夹下的每一个文件进行修改。
测试:
用hang用户创建aaa文件夹,并查看用户及所有者。
drwxrwxr-x 2 hang hang 4096 Sep 11 20:14 aaa/
将用户组改为users。
ubuntu:~/Desktop$ sudo chgrp -R users aaa
drwxrwxr-x 2 hang users 4096 Sep 11 20:14 aaa/
文档权限的修改。(重点!)
Linux文档的基本权限就有9个,分别是owner,group,others三种身份对应的三种权限:w(write),r(read),x(execute)权限。
数字类型改变文档权限。
不同权限的分数对照表
- r:4
- w:2
- x:1
每种身份(owner/group/others各自的三个权限(r/wx)分数是需要累加的,例如:
drwxrwxr-x 2 user1 users 4096 Sep 11 20:14 aaa/
- d表示是文件夹。
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others = r-x = 4+1 = 5
所以该文件夹的权限就可以简写成 :775,通过数字改变权限。
ubuntu:~$ sudo chmod 770 aaa/
现在权限已经变成了others没有任何权限。(可以加参数 -R,对文件夹进行操作。)
ubuntu:~$ ll
drwxrwx--- 2 user1 users 4096 Sep 11 20:14 aaa/
如果想改文档的权限,w:4,r:2,x:1自行组合,加起来的数以owner,group,others对应起来就可以了。
符号类型改变档案权限。
chmod 【u,g,o,a】 【+,-,=】 【r,w,x】 filename/dirname
- 【u,g,o,a】:user,group,others,all。可同时选多个。
- 【+,-,=】:
- +:表示给文档添加对应的权限。
- -:除去文档已有的权限。
- =:给文档设定权限。
- 【r,w,x】:三个权限操作。read,write,execute。
aaa文件夹的权限目前是,u和g有全部权限,o没有任何权限。
drwxrwx--- 2 user1 users 4096 Sep 11 20:14 aaa/
通过符号改变aaa文件夹权限,owner有所有权限,group有r和x的权限,others只能读。
$ sudo chmod u=wrx,g=rx,o=r aaa/ -R
结果:drwxr-xr-- 2 user1 users 4096 Sep 11 20:14 aaa/