进入目录需要哪些权限,在目录中执行增删查(cd,touch,ls,rm,mv等)改文件动作,需要哪些权限

权限:即是为了保证职责的有效履行,对某事项进行决策的范围和程度。那么,在linux中有哪些基本权限呢?在目录中执行增删查(cd,touch,ls,rm,mv等)改文件动作,需要哪些权限?

linux中的基本权限
  读(r):read对于文件而言,具有读取文件的权限;而对于目录而言,则具有浏览该目录信息的权限。
  写(w):write对于文件而言,具有修改文件内容的权限;对于目录而言,则具有删除、移动目录内文件的权限。
  执行(x):execute对于文件而言,具有执行文件的权限;而对于目录而言,则是具有进入目录的权限。

权限的表现形式

权限符号说明八进制表示二进制表示
r - -仅可读4100
- w -仅可写2010
- - x仅可执行1001
r w -可读可写6110
r - x可读可执行5101
- w x可写可执行3011
r w x可读可写可执行7111
- - -无权限0000

权限组成图
  由图,我们可以知道操作权限是由所有者(u)、所属组(g)和其他用户(o)的权限顺序组合而成。

进入目录所需的权限

[wang@localhost ~]$ mkdir test.c     //建立一个test.c文件
[wang@localhost ~]$ ls
desktop  test.c
[wang@localhost ~]$ ll
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
drwxrwxr-x. 2 wang wang  6 Apr 11 03:36 test.c
[wang@localhost ~]$ chmod 000 test.c          //将test.c的权限设置为无权限
[wang@localhost ~]$ ll
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
d---------. 2 wang wang  6 Apr 11 03:36 test.c
[wang@localhost ~]$ chmod u+r test.c                //我们给user加上r权限
[wang@localhost ~]$ cd test.c                             
bash: cd: test.c: Permission denied                     //可看出,可读权限不能进入目录
[wang@localhost ~]$ chmod u+w test.c              //我们再给user加上w权限
[wang@localhost ~]$ cd test.c
bash: cd: test.c: Permission denied                     //可看出,可写权限也不能进入目录
[wang@localhost ~]$ chmod u+x test.c               //最后,我们再给user加上x权限
[wang@localhost ~]$ cd test.c                             //即可以进入目录了
[wang@localhost test.c]$

因此,我们发现进入目录所需要的是可执行(x)权限。

在目录中执行增删查(cd,touch,ls,rm,mv等)改文件动作,所需的权限

1.touch所需权限

[wang@localhost ~]$ ls
desktop  test.c
[wang@localhost ~]$ chmod u-rw test.c                    //先将test.c设置为仅可执行权限
[wang@localhost ~]$ chmod u+r test.c                     //给test.c加上可读权限
[wang@localhost ~]$ ll
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
dr-x------. 2 wang wang  6 Apr 11 03:36 test.c
[wang@localhost ~]$ cd test.c                                
[wang@localhost test.c]$ touch test.c                  //可以看见权限不够,不能使用touch
touch: cannot touch ‘test.c’: Permission denied
[wang@localhost test.c]$ cd ..
[wang@localhost ~]$ chmod u-r test.c                       //将test.c中的可读权限去掉
[wang@localhost ~]$ chmod u+w test.c                       //给test.c加上可写权限
[wang@localhost ~]$ ll
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
d-wx------. 2 wang wang  6 Apr 11 03:36 test.c
[wang@localhost ~]$ cd test.c
[wang@localhost test.c]$ touch test.c                //可以看出,touch可以正常使用
[wang@localhost test.c]$ 

因此,我们发现touch所需要的是可写(w)权限。

2.ls所需的权限

[wang@localhost test.c]$ touch test.c                           //紧接上面的touch
[wang@localhost test.c]$ ls                                     //发现ls权限不够
ls: cannot open directory .: Permission denied
[wang@localhost test.c]$ cd ..                                  //返回上级目录
[wang@localhost ~]$ chmod u+r test.c                            //给test.c添加一个可读权限
[wang@localhost ~]$ cd test.c                                   //进入test.c
[wang@localhost test.c]$ ls                                     //发现现在的ls可以使用了
test.c
[wang@localhost test.c]$ 

即可以看出,ls所需的权限是可读(r)权限。

3.mv所需的权限

[wang@localhost ~]$ chmod 000 test.c                       //先将test.c的全部权限设置为0
[wang@localhost ~]$ ll                                     
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
d---------. 2 wang wang 20 Apr 11 04:05 test.c
[wang@localhost ~]$ chmod u+x test.c                       //给test.c一个可执行(x)权限
[wang@localhost ~]$ ll
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
d--x------. 2 wang wang 20 Apr 11 04:05 test.c
[wang@localhost ~]$ cd test.c
[wang@localhost test.c]$ mv test.c test1                          //出错,mv的权限不够
mv: cannot move ‘test.c’ to ‘test1’: Permission denied
[wang@localhost test.c]$ cd
[wang@localhost ~]$ chmod u+w test.c                      //给test.c一个可执行(w)权限
[wang@localhost ~]$ cd test.c
[wang@localhost test.c]$ mv test.c test1
[wang@localhost test.c]$ ls                                         //ls后发现已经变为了test1
test1
[wang@localhost test.c]$ 

由此可知,mv所需的权限是可写(w)权限。

4.rm所需的权限

[wang@localhost ~]$ chmod 000 test.c/                                 //将test.c的权限重新置零
[wang@localhost ~]$ ll
total 0
drwxr-xr-x. 3 root root 18 Jan 13 07:04 desktop
d---------. 2 wang wang 19 Apr 11 04:41 test.c
[wang@localhost ~]$ chmod u+x test.c                     //给test.c一个x权限
[wang@localhost ~]$ cd test.c
[wang@localhost test.c]$ rm test1                       //发现权限不够不能够删除
rm: cannot remove ‘test1’: Permission denied
[wang@localhost test.c]$ cd
[wang@localhost ~]$ chmod u+r test.c                    //给test.c一个r权限
[wang@localhost ~]$ cd test.c
[wang@localhost test.c]$ rm test1                         //发现权限还是不够不能够删除
rm: cannot remove ‘test1’: Permission denied
[wang@localhost test.c]$ cd
[wang@localhost ~]$ chmod u+w test.c                    //给test.c一个w权限
[wang@localhost ~]$ cd test.c
[wang@localhost test.c]$ rm test1                           //删除成功
[wang@localhost test.c]$

将test.c的权限重新置零,先给test.c一个x权限,进入test.c,删除test.c中的test1。发现权限不够不能够删除。再给test.c一个r权限,进入test.c,删除test.c中的test1,还是权限不够不可以删除。最后我们给test.c一个w权限,进入test.c后,删除test1,这次成功删除。说明rm所需要的权限是可写(w)权限。

最后,权限总结如表所示:

命令命令的使用及作用所需权限
cdcd + 目录名(进入目录)所需权限为x
touchtouch + 文件名(存在刷新文件属性,不存在则创建文件)所需权限为wx
lsls (显示当前目录下的所有文件)所需权限为rx
rmrm + 文件名 (删除文件)所需权限为wx
mvmv 文件名1 文件名2(将文件名1修改为文件名2)所需权限为wx
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值