上一篇讲了基本命令,使用了root用户,这一篇试试文件权限。
文件权限
我在/usr/local/test
下创建了一个文件夹叫resources
,还有两个文件test.txt
和test.sh
。
# 查看 test.sh
cat test.sh
#!/bin/bash
echo Hello World
注意每一个文件或文件夹前面都有drwxr-xr-x
或者-rw-r--r--
什么鬼的东西。
这是什么?这是文件的描述。比如resources
文件夹drwxr-xr-x
。
他分为4段分别是1 3 3 3 即为d
,rwx
,r-x
,r-x
标识 | 说明 |
---|---|
d |
文件夹类型,文件类型用- 标识 |
rwx |
用户权限,即drwxr-xr-x 2 root root 4096 Feb 8 08:42 resources/ 第一个root |
r-x |
用户所在组权限,即drwxr-xr-x 2 root root 4096 Feb 8 08:42 resources/ 第二个root |
r-x |
其他用户权限 |
r
- read
读取权限
w
- write
写入权限
x
- excute
执行权限
-
表示没有对应权限。
drwxr-xr-x
就表示为resources
是一个文件夹,用户root
具有可读写操作的权限,root
组具有可读可执行权限,其他用户也只有可读可执行权限。
我们知道.sh
文件是shell
脚本。图上显示root
用户只有读写权限。所以运行出现如下情况
./test.sh
# 输出
-bash: ./test.sh: Permission denied
# 所以我们要给test.sh赋予执行权限
chmod +x test.sh
./test.sh
# 输出
Hello World
改变访问权限
chmod [who] [+ | - | =] [mode] 文件名
,who
表示用户 root,laoshiren
,mode
表示权限r,w,x
,当然可以是数字。
- 0 表示没有任何权限
- 1 表示有可执行权限 =
x
- 2 表示有可写权限 =
w
- 4 表示有可读权限 =
r
如果需要rwx
属性则 4+2+1=7,如果需要rw-
属性则 4+2=6,如果需要r-x
属性则 4+1=5。
思考如果执行chmod 777 test.txt
会变成什么样。