有关权限的问题

权限

1.简述

          在Linux下有两种用户:超级用户、普通用户

          超级用户:可以在linux系统下做任何事情,不受限制。

          普通用户:在linux下做有限的事情。

         (超级用户的命令提示符是:“#”,普通用户的命令提示符是“$”)

          su [用户名]可以切换用户

2. 三类人

  • 文件拥有者
  • 本组用户
  • 其他用户
3.基本权限
  • 读:Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  • 写 :Write对文件而言,具有修改文件内容的权限;对文件目录来说,具有删除移动目录内文件的权限。
  • 执行:execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  • “—”:表示不具有该项权限

说明:以上权限在linux下采用八进制形式表示

例如:具有可读可写可执行权限(rwx)——111(二进制)——7(八进制)

          具有可读可执行权限(r-x)——101(二进制)——5(八进制)

          不具有可读可写可执行权限(---)——000(二进制)——0(八进制)

4.测试权限
  • 用yaoguai账户创建文件:  touch /tmp/laoyaopo
  • 修改权限: chmod用来修改或设置文件或目录的权限。
  • 格式:chmod[参数] 权限 文件或目录名。
  • chmod  u:uesr   (文件拥有者)   +     r               
    g:group (文件所属组)   -     w         
      a:all (所有) filename  
        o:other  (其它)  =     x        
5. 执行文件
  • 由yaoguai 账户在tmp目录下创建laoyaopo  : touch / tmp/ laoyaopo
  •  往 laoyaopo文件写入cal:  echo  "cal" > / tmp / laoyaopo
  •  给laoyaopo文件增加其他用户的执行权限 : chmod o + x /tmp/laoyaopo
  •  让litao执行文件 cd /tmp ; ./laoyaopo
  • 创建文件的缺省权:666实际创建文件,还受umask影响,最终文件权限 = 666 & ~umask
  • 目录: 创建目录的缺省权限是 777, 但也要受到 umask影响

6. 权限例子

(1)目录的权限

目录的可执行权限是表示你可否在该目录下执行命令,如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录有-r权限(这个地方很容易犯错,认为只要有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令cd进入目录,但是由于目录没有读权限,所以在目录下即使可以执行ls命令,但是仍然没有全部读出目录下的文档。

总结:1)进入一个目录,对于普通用户至少需要可执行权限。

          2)在目录中创建一个新的文件时,用户需要可写可执行权限。

          3)在目录中创建文件并进行显,用户需要可读可写可执行权限。当我们拥有x,w时我们才可以切换到该目录 下进行ls操作,没有x便不能进行rm和mv。

(2)在目录中执行增删查(cd、touch、ls、rm、mv等)需要哪些权限。

  • 我们都知道以下内容

权限                     文件                             文件夹

r(读)             查看文件的内容             列出文件夹的内容

w(写)                修改文件的内容            可以在文件夹中创建删除文件的内容

x(执行)         执行文件                       可以进入文件夹

  • cd进入目录需要哪些权限呢
首先我们需要创建一个目录aa

1)使用chmod   000 aa  给目录aa设置成无权限。


2)我们先给user加上r权限,(即chmod  u+r   aa )但是通过图片我们看到访问依然被拒绝,所以进入目录不需要可读权限,需要别的权限,我们继续再给user加上其他的权限。


3)我们在给user加上w权限(即chmod   u+w   aa)进入目录访问的权限依然被拒绝,由此我们可知道进入目录的权限也不需要写权限。


4)我们再给user加上执行权限(即chmod  u+x aa)我们发现可以进入目录,所以目录需要的是可执行性权限。


  • 在目录中实行touch需要的权限

1)首先我们先删掉可读可写权限(chmod  u- rw)我们进入aa中,使用touch创建一个新的test,发现权限不够,不能使用touch。

2)我们先给aa加上可读权限(chmod u+r)我们再次进入aa中,使用touch,发现权限还是不够,还是利用touch不能进行创建test。

3)当我们再给aa删除可读删除可读权限加上可写权限(chmod u-r,chmod  u+w)进入aa,再次使用touch,发现就可以创建一个新的test文件

由此可知在touch需要的是可读权限(w)。

  • ls需要的权限

通过上面的touch   test权限,我们进行ls一下,发现权限不够,这时我们返回上一级目录给new加上一个r权限,再次进入aa,ls一下发现出现了test, 这时候说明 ls需要读权限。

  • mv需要的权限

mv移动文件与目录或者,或者重命名。

如果有多个源文件或者目录,最后一个目标文件一定是一个目录,意思是将所有的文件移动到该目录下。

mv需要写权限。

  • rm需要的权限

第一种情况考虑文件的所属目录,只要用户所属的目录有权限wx,就能进入目录,删掉你的文件,但是不能ls查看具体有哪些文件。

第二种情况就是用户对文件的所属目录没有wx权限,这时候需要用户对你的文件具有w权限就可以进行删除了。

rm需要写权限



猜你喜欢

转载自blog.csdn.net/yzyjaaa/article/details/80676810