Linux文件属性

  • 第一个字符代表这个是文件

  • 当为 [d] 则是目录

  • 当为 [-] 则是文件

  • 当为 [l] 则表示链接文件(link file)

  • 若是 [b] 则表示为设备文件里面的可供存储的周边设备(可按块随机读写的设备)

  • 若是 [c] 则表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

  • 接下来的字符中(图),以三个为一组,且均为【rwx】的三个参数的组合。其中[r]代表可读(read)、[w] 代表可写(write)、[x] 代表可执行(execute)。如果无权限,就会出现 [-]。

  • 第一组为文件拥有者可具备的权限,以第二张图片为例,该文件的拥有者可以读写执行。

  • 第二组为加入此用户组之账号的权限

  • 第三组非本人且没有加入本用户组的其他账号的权限

  • 文件的权限字符为:【-rwxrwxrwx】,这九个权限是三个一组。其中,我们可以使用数字代表每个权限,各权限的数字对照如下:

r:4 w:2 x:1

  • 每种身份(owner、group、others)各自的三个权限(r、w、x)数字是需要累加的,例如权限为[-rwxrwx—]数字则是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others = — = 0+0+0 = 0

所以我们设置权限时,该文件的权限数字就是770

  • 另一种修改文件权限的方法。从指间介绍中我们发现,基本上就九个权限,分别是user(用户)、group(组)、others(访客)三种身份,那么我们就可以借由u,g,o来代表三种身份的权限。此外,a则代表all,亦即全部身份。那么读写执行的权限可以写成r、w、x,用下面方式来看
u +(加入) r
chmod g

o
-(移除) w 文件或目录
a =(设置) x

假如我们要设置一个文件的权限为【-rwxr-xr-x】时,基本上就是:

chmod u=rwx,go=rx bash.sh

#我们也可以写个脚本测试可读可写可执行性质
	touch bash.sh
	echo "echo test:ok!" >> bash.sh
	chmod u=rwx bash.sh		#给文件拥有者基于可读可写可执行
	./bash.sh	#执行bash.sh文件
#若能看见输出了test:ok!就说明完成了
  • 在实际的系统运行中最常发生的一个问题就是,常常我们以vim编辑一个shell的脚本文件后,它的权限通常是 -rw-rw-r-- 也就是664,如果要将该文件变成一个可执行文件,并且不要让其他人修改的话,那么就需要 -rwxrw-r-- 这样的权限,此时就要执行
chmod 755 文件名.sh
#或者
chmod u=rwx,g=rw,o=r 文件名.sh

另外,如果有些文件你不希望被其他人看到那么应该将文件的权限设置为:【-rwxr-----】,那就执行

chmod 740 文件名.sh
#或者
chmod u=rwx,g=r,o=- 文件名.sh

Linux文件架构图