1、权限位的涵义
目前Llinux的权限位有10位(新版本中有些文件的权限位最后会有个.,表示该文件是受SELinux的保护的),每一位都代表着不同的涵义:
这10位的涵义如右图所描述的:
第1位:表示文件类型,Linux不像Windows使用扩充名表示文件类型,而是使用权限位的第1位表示。尽管Linux文件的种类不像Windows这么多,但也不少,详尽情况可使用”infols”命令查看,常见的文件类型有:
标示表示文件类型说明
普通文件
块设备文件
这是一种特殊设备文件,储存设备都是这些文件,如分区文件/dev/sda1
字符设备文件
这也是特殊设备文件,输入设备通常都是这些文件,如键盘、键盘等
目录文件
l(大写L)
软链接文件
管线符文件
这是一种极其稀少的特殊设备文件
套接字文件
这也是一种特殊设备文件,一些服务支持Socket访问,才会形成这样的文件
第2-4位:表示文件所有者(用u表示)的权限,有字母则由该权限,为-则表示没有该权限
标示涵义权限
read
读取权限
write
写权限
execute
执行权限
第5-7位代表文件所属组(用g表示)的权限,同样用rwx表示
第8-10位代表其他人(用o表示)的权限,也用rwx表示
2、基本权限命令
①chmod:更改文件的权限模式linux命令 chmod 755的含义,命令所在路径为/bin/chmod,所有用户可执行
命令格式:
chmod [选项] 权限模式 文件名
选项:
-R:递归设置权限,也就是给子目录中的所有文件设定权限
权限模式的格式:[ugoa][+-=][perms],即[用户身分][赋于形式][权限]。
用户身分:
u——所有者(user)
g——所属组(group)
o——其他人(other)
a——代表全部(all)
赋于形式:
+——加入权限
-——减去权限
=——设置权限
示例1️⃣:表示针对cde这个文件给文件所有者(u)添加执行权限(x)
chmod u+x cde
示例2️⃣:同时给多个身分添加相应权限,中间用冒号隔开
chmod g+w,o+w cde
示例3️⃣:消除权限,使用加号
chmod u-x,g-w,o-w cde
3、数字权限
4:同r,读
2:同w,写
1:同x,执行
示例:755中的第一位7表示给文件所有者赋的权限为4+2+1,即读写执行嵌入式linux培训,同理第二位5表示给所属组赋的权限为4+1,即读和执行,最后一位则是给其他人赋于的权限
chmod 755 cde
常用数字权限:
数字权限使用场景描述
644
文件的基本权限
所有者拥有读、写权限,所属组和其他只读
755
文件的执行权限和目录的基本权限
拥有者读、写和执行,所属组和其他人可读写
777
最大权限
所有人都对该文件拥有读写和执行权限
4、修改所有者和所属组
①chown:更改文件和目录的所有者和所属组,命令所在目录为/bin/chownlinux空间,所有用户可执行
命令格式:
chown [选项] 所有者:所属组 文件或目录
选项
-R:递归设置权限
Tip:普通用户不能更改文件的所有者,哪怕自己是这个文件的所有者也不行;普通用户只可以更改所有者是自己的文件的权限(rwx)
添加用户:添加用户的时侯会创建一个同名的该用户的初始组,即同时会添加一个名为user1的group
useradd user1
给新加用户设置密码:只有root用户可以在设置密码时忽视Linux的提示
passwd user1
更改文件所有者:
chown user1 cde
②chgrp:更改文件和目录的所属组,命令所在目录/bin/chgrp,所有用户可执行
chgrp user1 cde
改回所有者和所属组:
chown root:root cde
5、权限含意的解释
首先,读、写、执行权限对文件和目录的作用是不同的。
权限对文件的作用:
读(r):对文件有读权限,代表可以读取文件中的数据。假如把权限对应到命令上,这么一旦对文件有读权限linux命令 chmod 755的含义,就可以对文件执行cat、more、less、head、tail等文件查看命令。
写(w):对文件有写权限,代表可以更改文件中的数据。假如把权限对应到命令上,这么一旦对文件有写权限,就可以对文件执行vim、echo等更改文件数据的命令。注意:对文件有写权限并不能删掉文件本身,只能更改文件中的数据;假如想删掉文件,则须要对文件的上级目录拥有写权限。
执行(x):对文件有执行权限,代表文件可以运行。在Linux中,只要文件有执行权限,这个文件就是执行文件了。只是这个文件究竟能不能正确执行,除了须要执行权限,还要看文件中的代码是不是正确。对文件来说,执行权限是最高权限。
权限对目录的作用:
读(r):对目录有读权限,代表可以查看目录下的内容,也就是可以查看目录下有什么文件和子目录。假如把权限对应到命令上,这么一旦对目录有了读权限,就可以在目录下执行ls命令,查看目录下的内容。
写(w):对目录有写权限,代表可以更改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。对应到命令上,就可以在目录下执行touch、rm、cp、mv命令。对目录来说,写权限是最高权限。
执行(x):目录是不能运行的,这么对目录拥有执行权限,代表可以步入目录。对应到命令上就是可以对目录执行cd命令,步入目录。
目录的可用权限只有以下3个:
0:任何权限都不赋于
5:基本的目录浏览和步入权限
7:完全权限(读+写+进人)
6、umask默认权限
即新建文件时赋于文件的权限,在/etc/profile中定义。
查看系统的umask权限:
umask
用八补码数值显示umask权限:
umask -S
说明:上图表示root用户新建的文件对于root用户有rwx权限,对于所属组的其他用户有rx权限,对于其他用户有rx权限。
按照umask值估算新建文件或文件夹的初始权限的算法如下: