一、【linux权限解释】
Linux文件一共有三种身份:
u:文件的拥有者(user)
g:文件所属的群组(group)
o:其他用户(other)
对于每个身份,又有四种权限:
r:读取文件的权限(read)
w:写入文件的权限(write)
x:执行的权限(execute)
s:特殊权限(special)
二、【如何查询文件权限属性】
通过$ls -al 文件名 指令来查询文件的属性
例如:
$ls -al /Users/xyz/Desktop/crm副本.zip
-rw-r--r-- 1 xyz staff 746807 Jul 25 09:56 /Users/xyz/Desktop/crm副本.zip
以上7项依次表示【文件的属性-rw-r--r--】、【连接数1】、【文件的拥有者xyz】、【文件所属的群组staff】、【文件大小】、【文件创建时间】和【文件名称】
三、【文件属性解释】
在Linux系统中,文件的属性由10个字符来表示。
第一个字符表示文件的类型,其余9个字符分为三组,每组三个,分别表示文件的拥有者、群组以及其他人对该文件的访问权限。
每组依次表示读取、写入、和执行的权限,如果没有该权限,则以-显示。
对于
-rw-r--r--
分别为:
文件类型 文件拥有者的权限 群组的权限 其他人的权限
- rw- r-- r--
文件类型:
- 一般文件
d 文件夹(或者叫目录)
l 符号链接文件(类似windows下的快捷方式一样的东西)
b 磁盘设备文件
c 字符设备文件((和磁盘设备文件,主要是和周边硬件连接,作为系统和硬件之间的接口))
s Socket文件((内部进程通信的一种特殊文件,也可作为和远程主机通信的管道))
p 连接文件(是一种内部进程通信的机制,一个进程把数据写入Pipe中,另一个进程则由Pipe读取数据,数据采用先进先出(FIFO)的次序,称为管道)
四、【chmod以字符形式改变文件】
给三种身份都赋予执行的权限
chmod +x 文件名
等价于
chmod a+x 文件名
也拆开写,a分别用u、g、o替换
对应:
去掉某个身份的某个权限,只需要将+变为-即可。比如
chmod u-r 文件名
五、【chmod以数字形式改变文件】
读取权限:r 或者4
写入权限:w或者2
执行权限:x或者1
可读写可执行:rwx = 4 + 2 + 1 = 7
可读写不可执行:rw- = 4 + 2 = 6
可读不可写可执行:r-x = 4 +1 = 5
常见权限形式
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
范例:
#设置所有人可以读写及执行
chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)
#设置拥有者可读写,其他人不可读写执行
chmod 600 file (等价于 chmod u=rw,g=---,o=--- file )