程序员成长之旅——Linux初识:目录权限方面的总结

程序员成长之旅——Linux初识篇:目录权限问题,并进行增删查( cd, touch, ls, rm, mv)等需要哪些权限

进入目录的权限

权限是什么

就是对某项进行决策程度和范围,通俗来说,就是规定哪些事情能做,哪些事情不能做,那么在Linux中有哪些权限呢?

  • 基本权限:

r(读):对于文件而言,具有读文件的权限,对目录而言,具有浏览目录的权限
w(写):对于文件而言,具有修改文件的权限,对目录而言,具有删除和移动目录的权限
x(执行):execute对文件而言,具有执行文件的权限,对于目录而言,具有进入目录的权限

  • 基本权限的表现形式:

1.通过字母和"-"表示
在当前目录中输入ll(字母L小写)指令并执行,查看当前目录下所有项目的权限
2.通过数字来表示
拥有者u 所属组g 其它o所拥有的权限其实可以用一个八进制数字来表示,也就是说一个文件的权限可以通过三个八进制数字来表示
例如:
具有可读可写可执行权限(rwx) - 111(二进制) - 7(八进制)
具有可读可执行权限(r-x) - 101(二进制)-5(八进制)
不具有可读可写可执行权限(—) - 000(二进制)-0(八进制)

  • 进入目录的权限:

1.以字母形式进行修改,利用chmod命令,通过g,u或者o加减所要的权限或者权限组合,来实现对文件权限的修改,修改之后再
用ll权限来查看修改后的权限。
2.以数字的形式进行修改权限,我们可以让g、u、o都具有r、w、x权限, 我们在更改权限的时候要想好修改成什么,然后对应相应的数字即可三个一组,rwx权限分别对应421相加得7,,rw-对应42相加,r–对应4

  • 进入目录的权限验证:

(1)创建一个目录lpff并使用chmod 000 lpff给目录lpff设置成无权限。
(2)我们先给user加上r权限,(即chmod u + r lpff)但是通过图片我们看到访问依然被拒绝,所以进入目录不需要可读权限,需要别的权限,我们继续再给user加上其他的权限。
(3)我们在给user加上w权限(即chmod u + w lpff)进入目录访问的权限依然被拒绝,由此我们可知道进入目录的权限也不需要写权限。
(4)我们再给user加上执行权限(即chmod u + x)我们发现可以进入目录,所以目录需要的是可执行性权限。

[lpf@localhost ~]$ cd lpd
[lpf@localhost lpd]$ ls
lpff
[lpf@localhost lpd]$ rm -r lpff
[lpf@localhost lpd]$ ls
[lpf@localhost lpd]$ mkdir lpff
[lpf@localhost lpd]$ ls
lpff
[lpf@localhost lpd]$ chmod 000 lpff
[lpf@localhost lpd]$ ll
总用量 0
d---------. 2 lpf lpf 6 1010 12:09 lpff
[lpf@localhost lpd]$ cd lpff
-bash: cd: lpff: 权限不够
[lpf@localhost lpd]$ chmod u+r lpff
[lpf@localhost lpd]$ cd lpff
-bash: cd: lpff: 权限不够
[lpf@localhost lpd]$ chmod u+w lpff
[lpf@localhost lpd]$ cd lpff
-bash: cd: lpff: 权限不够
[lpf@localhost lpd]$ chmod u-rw lpff
[lpf@localhost lpd]$ ll
总用量 0
d---------. 2 lpf lpf 6 1010 12:09 lpff
[lpf@localhost lpd]$ chmod u+x lpff
[lpf@localhost lpd]$ cd lpff
[lpf@localhost lpff]$ 

  • 总结:

(1)进入一个目录,对于普通用户至少需要可执行权限。
(2)在目录中创建一个新的文件时,用户需要可写可执行权限。
(3)在目录中创建文件并进行显示,用户需要可读可写可执行权限。

  • 说明:

(1)如果目录没有 - x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录有 - r权限。
(2)而如果目录具有 - x权限,但没有 - r权限,则用户可以执行命令cd进入目录,但是由于目录没有读权限,所以在目录下即使可以执行ls命令,但是仍然没有全部读出目录下的文档。

touch, ls, rm, mv需要的权限

touch需要的权限

此例中我们依然用上例的lpff来解释。

1.首先我们先删掉可读可写权限(即chmod u - rw), 我们进入lpff中,使用touch,创建一个新的test.c,发现权限不够,不能使用touch。
2.我们给lpff加上可读权限(即chmod u + r),我们进入lpff,使用touch,同1中权限不够,还是不能创建。
3.当我们给lpff删除可读权限,加上可写权限(即chmod u - r, chmod u + w), 进入lpff, 再次使用touch,这次可以创建一个新的test.c了。
综上所述,我们发现touch需要的是可写权限(即w权限)。

d--x------. 3 lpf lpf 16 1010 11:31 lpff
[lpf@localhost lpd]$ cd lpff
[lpf@localhost lpff]$ touch test.c
touch: 无法创建"test.c": 权限不够
[lpf@localhost lpff]$ cd -
/home/lpf/lpd
[lpf@localhost lpd]$ chmod u+r lpff
[lpf@localhost lpd]$ cd -
/home/lpf/lpd/lpff
[lpf@localhost lpff]$ touch test.c
touch: 无法创建"test.c": 权限不够
[lpf@localhost lpff]$ cd -
/home/lpf/lpd
[lpf@localhost lpd]$ chmod u-r lpff
[lpf@localhost lpd]$ chmod u+w lpff
[lpf@localhost lpd]$ cd -
/home/lpf/lpd/lpff
[lpf@localhost lpff]$ touch test.c
ls所需要的权限

接上面的touch test.c后,ls一下,发现权限不够。这时我们返回上一级目录,给lpff加一个r权限,再次进入lpff,ls一下出现了test。说明ls需要的权限是r。

[lpf@localhost lpff]$ ls
ls: 无法打开目录.: 权限不够
[lpf@localhost lpff]$ cd -
/home/lpf/lpd
[lpf@localhost lpd]$ chmod u+r lpff
[lpf@localhost lpd]$ cd -
/home/lpf/lpd/lpff
[lpf@localhost lpff]$ ls
test.c
mv需要的权限

我们先将lpff的权限全部置零,然后我们给user加一个x的权限,进入hehe,将test.c重命名为test.1,权限不够不能操作。我们再给user加一个r的权限,进入lpff,将test.c重命名为test.1,权限还是不够,最后我们再给user加一个w的权限,再次进入lpff,将test.c重命名为test.1,ls一下,这次发现lpff目录下是test.1了。

[lpf@localhost lpd]$ chmod 000 lpff
[lpf@localhost lpd]$ ll
总用量 0
d---------. 3 lpf lpf 30 1010 11:40 lpff
[lpf@localhost lpd]$ chmod u+x lpff
[lpf@localhost lpd]$ ll
总用量 0
d--x------. 3 lpf lpf 30 1010 11:40 lpff
[lpf@localhost lpd]$ cd lpff
[lpf@localhost lpff]$ mv test.c test.1
mv: 无法将"test.c" 移动至"test.1": 权限不够
[lpf@localhost lpff]$ cd ..
[lpf@localhost lpd]$ chmod u+r lpff
[lpf@localhost lpd]$ cd -
/home/lpf/lpd/lpff
[lpf@localhost lpff]$  mv test.c test.1
mv: 无法将"test.c" 移动至"test.1": 权限不够
[lpf@localhost lpff]$ cd -
/home/lpf/lpd
[lpf@localhost lpd]$ chmod u+w lpff
[lpf@localhost lpd]$ ll
总用量 0
drwx------. 3 lpf lpf 30 1010 11:40 lpff
[lpf@localhost lpd]$ cd lpff
[lpf@localhost lpff]$  mv test.c test.1
[lpf@localhost lpff]$ ls
test.1
rm需要的权限

这次我们先返回file目录下,将lpff的权限重新置零,先给lpff一个x权限,进入lpff,删除lpff中的test.1。发现权限不够不能够删除。再给lpff一个r权限,进入lpff,删除lpff中的test.1,还是权限不够不可以删除。最后我们给lpff一个w权限,进入hehe后,删除test.1,这次成功删除。
说明rm所需要的权限是w。

/home/lpf/lpd/lpff
[lpf@localhost lpff]$ rm test.1
rm: 无法删除"test.1": 权限不够
[lpf@localhost lpff]$ cd -
/home/lpf/lpd
[lpf@localhost lpd]$ chmod u+x lpff
[lpf@localhost lpd]$ cd -
/home/lpf/lpd/lpff
[lpf@localhost lpff]$ rm test.1
rm: 无法删除"test.1": 权限不够
[lpf@localhost lpff]$ ls
test.1
[lpf@localhost lpd]$ ll
总用量 0
dr-x------. 3 lpf lpf 30 1010 11:48 lpff
[lpf@localhost lpd]$ chmod u+w lpff
[lpf@localhost lpd]$ cd lpff
[lpf@localhost lpff]$ rm test.1
[lpf@localhost lpff]$ ls
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零出发——

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值