Linux-权限


权限 && 相关指令

Linux下有两种用户,超级用户,即root用户,几乎拥有所有的权限。普通用户,只能操作部分权限。从对文件的角度,普通用户又可以分为三类,拥有者user,所属组group,其他人others。每个文件都有这三个属性。使用ll命令或者ls -l命令就可以查看这些信息。
文件权限
其中不同的人对文件拥有的权限中,r表示可读权限,w表示可写权限,x表示可执行权限。一共9列,前三列是user的权限,中间三列group的权限,最后三列表示others的权限。如果拥有权限,那么就用字母表示,没有权限则使用横线。

权限的管理

  • 改变权限

我们使用chmod来修改权限,对于一个文件test来说,如果我们想要使用cat命令查看,必须有读的权限,如果想要使用echo或者vim写入,那么必须要有写权限。如果权限不足,那么终端就会报错。
权限1
上面的代码是给test的拥有者增加读权限,给所属组减去读和写的权限,给其他用户增加写和执行的权限。对于目录来说, 读权限就保证了使用者是否能使用ls命令读取该目录下的文件。写命令就保证了是否能创建新文件或者删除旧文件。而可执行文件就保证了是否能cd进入该目录。而且更需要注意的是,对目录的写和读必须要进入目录。换句话说,如果目录没有x权限,那么即使有r和w权限也没用。
一个文件是否可读可写只与这个文件有关系,而与目录是否可读可写没有关系。
权限2
权限的第二种修改方式:如果你很熟悉二进制,那么你会发现这些权限只有两种情况:拥有这个权限和没有这个权限。我们将拥有这个权限表示成1,没有表示成0。那么权限就有了数字表示方法,
权限的数字表示
这里的test权限利用二进制表示就是110 110 100,但是我们通常喜欢用8进制来表示,因为这样3位数字就可以表示成1位,test权限就是 6 6 4,所以有了第二种修改权限方法,如果想加上r权限,那么就+4,加上w权限,就+2,加上x权限,就+1。比如我们想test拥有所有权限,那么
8进制修改权限

  • 改变文件的拥有者和所属组

文件的拥有者和所属组也是可以改变的。但是不能直接改变,你需要别人的同意。但是也可以不经过别人的同意,没错就是root权限。
改变文件拥有者和所属组
我们使用chown改变文件的拥有者,但是直接修改是不被允许的,我们使用sudo借助root用户修改。我们使用chgrp命令来修改文件的所属组,同样需要借助sudo。我们也可以直接一步到位,利用chown加上拥有者:所属组一次修改拥有者和所在组。

  • 粘滞位

考虑这样一种情况,A组人想开放一个共享的目录给大家使用,那么每个人都要有进入该目录的权力,即x权力。但是我们希望每个人都可以在该目录下创建文件,于是必须有w权限。像下面这样,
目录的others有wx权限
于是B组的人可以在该目录下创建文件,但是B组的人不想将文件给别人看,那么B组就要将文件的others权限全部改成-,但是C组人来了,它们想抄袭B组的文件,又无法看,一气之下将B组人的文件全部删除了,因为所有用户对该目录都有wx权限!!那就麻烦了,你不是该文件的拥有者或者所属组,却能删除该文件,那别人还玩什么??针对这样的问题,专门搞出一个权限叫做粘滞位,
粘滞位
于是在linux目录下,每个用户只能删除自己是拥有者的文件,这样就保证了一种好的目录管理。

  • su && sudo
    su用于用户之间的切换,默认是切换到root用户。但是如果我们隔三岔五的使用切换root,那么很麻烦。有没有一种简单的方法呢?那就是sudo,如果你想要提高权限,只需要在命令前面加上sudo,就相当于利用root用户来完成这条指令。
    sudo的修改在 /etc/sudoers里面。

  • 文件的分类
    -表示普通文件
    d表示目录。
    s表示套接字。
    p表示管道。
    l表示链接。
    b是块设备。如硬盘之类的。
    c表示字符设备,如键盘,显示器。

  • 默认权限 && umask
    你也许会发现每次创建文件或者目录,它的权限都是固定的。也就是说有默认权限,那么默认权限是通过什么设定的呢?没错,就是umask,
    umask
    当你输入umask,会给出几位数字,实际上是4位,但是我用的云服务器是3位。不用管第一位,我们看后面3位。

0028进制数字,转换成2进制  000 000 010
文件的默认权限是666,目录是777666转换成二进制是  110 110 110,
如果umask的权限掩码中的权限存在,那么默认的文件权限就去掉,也就是说,如果002的二进制某一位是1,
那么文件的权限就必须是0,你可能以为是 666 - 002,实际上不是的,权限的计算方法是
default & ~umask
110 110 110 & 111 111 101 = 110 110 100 这也就是普通文件的默认权限

umask也是可以设置的,直接设置就可以,
umask设置

shell理解

shell就是一层封装在linux操作系统外部的一层保护壳,如果你想与操作系统进行交互,要先传递给通过shell,然后shell再传递给操作系统。这样做的好处是:
1,如果使用者直接与操作系统进行交互,那么非常浪费学习成本,因为你需要学习大量的关于如何操作的知识。
2,封装一层外壳可以保护操作系统,如果你输出某些错误信息,那么会被shell直接过滤掉,不会反馈到操作系统。
3,shell就是所有壳的统称,而bash就是其中的一种shell。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值