• Linux11-权限的介绍 rwx详解 修改权限 修改文件目录所有者 修改文件目录所在组 一个实践和两个练习


    目录

    一 权限的基本介绍

    0位:确定文件类型(常见类型五种 -  l  d  c  b)

    -:普通文件

    l:链接,相当于win下的快捷方式

    d:目录,相当于win下的文件夹

    c:字符设备文件,鼠标键盘

    b:块设备,硬盘

    1-3位:文改文件的所有者拥有该文件的权限  User

    4-6位:文件所在组内的用户拥有该文件的权限  Group

    7-9位:其他组内用户拥有改文件的权限  Other

    二 rwx权限详解----难点

    1 rwx作用到文件

    2 rwx作用到目录

    三 文件和目录权限实际案例

    前10个字符说明

    数字说明

    tom说明

    root说明

    0说明

    8月  23 11:52 说明

    apple.txt说明

    四 修改权限 chmod

    基本说明

    第一种方式:通过+ - = 变更权限

    (1)chmod  u=rwx,g=rx,o=x  文件/目录名   

    (2)chmod o+w 文件/目录名

    (3)chmod a-x 文件/目录名

    案例演示

    第二种方式:通过数字变更权限

    五 修改文件所有者 chown

    1 基本介绍

    2 案例

    六 修改文件/目录所在组 chgrp

    1 基本介绍

    2 案例

    七 最佳实践 警察和土匪游戏---有点复杂

    八 练习1

    (1)创建两个组,神仙sx 妖怪yg

    (2)创建4个用户,唐僧 悟空 八戒 沙僧

    (3)设置密码

     (4)把悟空 八戒放在妖怪组,唐僧沙僧放在神仙组

     (5)用悟空建立一个文件monkey.java 该文件要输出i am monkey

    (6)给八戒一个可以rw的权限

    (7)八戒修改monkey.java 加入一句话  i am pig

    (8)唐僧 沙僧 对该文件没有权限

    (9)把沙僧放入妖怪组

    (10)让沙僧修改monke.java文件,加入一句话 我是沙僧 我是妖怪

    (11)对文件夹rwx的细节讨论和测试

    只给所有者所在组对目录wukong的x权限,看所在组其他用户可以操作什么

     所有者所在组添加目录wukong的r权限,看看各种操作如何

    现在用wukong账号给g添加w权限,看看各种操作如何

    文件/目录rwx超级总结!!!!!区别于单独文件的rwx

    九 练习2


    一 权限的基本介绍

    ls -l或ll指令下显示的内容如下

    对于apple.txt文件来说

    -rw-r--r--. 1 tom  root        0 8月  23 11:52 apple.txt
    -rw-r--r--共十位

    0-9位说明:

    0位:确定文件类型(常见类型五种 -  l  d  c  b)

    -:普通文件

    比如下面的apple.txt文件

    l:链接,相当于win下的快捷方式

    比如在/home下创建软链接myroot链接到/root如下

    这里写错了指令,需要删除无效的软连接,rm –rf   ./软链接名称。

    详细参考Linux软链接创建及删除 - 开发者知识库

    正确的写法应该是ln  -s   [源文件]   [软链接文件]   如下

    0位显示l,表示链接

    d:目录,相当于win下的文件夹

    比如fox前面的是d,代表fox是一个目录

    c:字符设备文件,鼠标键盘

    dev目录下有很多文件时c开头的,代表终端/设备

    b:块设备,硬盘

    还是刚刚dev目录下,很多b开头的,说明sda sda1 sda2 sda3 等等都是块设备

    1-3位:文改文件的所有者拥有该文件的权限  User

    上图表示文件所有者对该文件有读写权限

    4-6位:文件所在组内的用户拥有该文件的权限  Group

    上图表示同组内用户对该文件只有读权限

    7-9位:其他组内用户拥有改文件的权限  Other

    上图表示其他组用户对该文件只有读权限

    二 rwx权限详解----难点

    1 rwx作用到文件

    (1)r :可读,read,可以取和查

    (2)w:可,write,可以修改,但是不可删除,必须对该文件所在目录有写权限才能删除

    (3)x:可执行,execute,可以被执行,前提是该文件为可执行文件

    2 rwx作用到目录

    (1)r :可,read,可以读取,ls查看目录内容

    (2)w:可写,write,可以修改,对目录 创建 删除 重命名目录

    (3)x:可执行,execute,可以使用cd进入该目录

    三 文件和目录权限实际案例

    在/home目录下输出指令ls -l  或   ll 中显示的内容如下

    现在对apple.txt这一行进行解释

    -rw-r--r--. 1 tom  root        0 8月  23 11:52 apple.txt

    前10个字符说明

    确定不同用户能对文件干什么

    第一个字符(- l d b c)代表文件类型:这里是-,根据前面说的,代表普通文件,也即apple.txt是个普通文件

    其余字符每3个一组rwx 读 写 执行

    第一组rwx:这里是rw-,代表文件拥有者(tom)的权限是读写,不能执行

    第二组rw-:这里是r--,与文件拥有者同一组(root组)的用户的权限是读,但是不能写和执行

    第三组r--:这里是r--,不与文件拥有者同组(除root以外的组)的其他用户的权限是读,但是不能写和执行

    可以用数字表示为 r = 4,w = 2,x=1 因此rwx = 4+2+1=7,数字可以进行组合

    数字说明

    -rw-r--r--. 1 tom  root        0 8月  23 11:52 apple.txt

    数字1 这里代表文件,也可以代表目录

    代表普通文件:直接显示1

    代表目录:显示子目录数+文件数的总和       有时候不太准确原因暂时不清楚

    tom说明

    root 用户

    root说明

    所在组

    0说明

    文件大小(字节),如果是文件夹,显示4096字节

    比如hello.txt大小这里显示的是74,用vim打开

    修改如下,退出保存

     再重新查看hello.txt大小变成了6,也就是hello加上某位的0一个6个字节

    8月  23 11:52 说明

    最后修改日期,上图也可以看出apple.txt修改后时间也会发生改变

    apple.txt说明

    文件名

    四 修改权限  chmod

    基本说明

    通过chomd指令,可以修改文件或者目录的权限

    第一种方式:通过+ - = 变更权限

    u:所有者    g:所有组     o:其他人    a:所有人(u g o的总和)

    (1)chmod  u=rwx,g=rx,o=x  文件/目录名   

    解释:使用chmod指令对 文件/目录所有者u 赋予rwx权限,对文件所在组内用户g 赋予rx权限,对其他组用户o赋予x权限

    (2)chmod o+w 文件/目录名

    解释:使用chmod指令对 文件/目录的其他组用户o赋予w权限

    (3)chmod a-x 文件/目录名

    解释:将所有用户的x权限去除

    案例演示

    (1)给abc文件的所有者u读写执行权限,给所在组g读执行权限,给其他组o读执行权限

    chmod u=rwx,g=rx,o=rx abc

     abc呈现绿色代表abc是可执行文件

    (2)给abc文件的所有者u除去执行的权限,增加所在组g写的权限

    chmod u-x,g+w abc

    (3)给abc文件的所有用户a添加读的权限

    chmod a+r abc

    第二种方式:通过数字变更权限

    r=4 w=2 x=1  rwx=4+2+1=7 

    1 x 执行   2 w 写读    3 wx 写 执行   4 r 读

    5 rx 读 执行     6 rw 读写      7 rwx 读写执行

    chomd u=rwx,g=rx,o=x 文件/目录名    相当于 chmod 751 文件/目录名

    例:将/home/abc.txt文件的权限修改成 rwxr-xr-x 使用给数字的方式实现

    chmod 755/home/abc.txt

    五 修改文件/目录        所有者 chown

    1 基本介绍

    chown newowner 文件/目录         改变所有者

    chown newowner:newgroup 文件/目录        改变所有者和所在组

    -R   如果是目录 则使其下所有子文件或目录递归生效

    2 案例

    例1:将/home/abc.txt文件的所有者改为tom

    步骤1:root登录下创建abc.txt,可以看出当前abc.txt文件的所有者是root,所在组是root

    步骤2:把所有者改成tom   chown tom /home/abc.txt

    例2:将/home/bob目录下的所有文件和目录的所有者都修改为tom

    /home/bob示意图如下

    步骤1:查看bob目录的所有者,可以看出bob下面有两个文件a b和一个目录aaa,所有者都是bob

    步骤2:修改该目录下所有文件和目录的所有者为tom   chown -R tom /home/bob

    上图可以看出bob目录所有者已经更改为tom

    上图可以看出bob目录下的aaa目录以及a b两个文件的所有者也都成为了tom

    上图可以看出aaa目录下的文件c所有者也成为了tom 

    也就是示意图中黄色的部分所有者全都换成了tom

    六 修改文件/目录所在组 chgrp

    1 基本介绍

    chgrp newgroup 文件/目录      改变所在组

    2 案例

    例1:将/home/abc.txt文件的所在组修改为shaolin

    步骤1:新建组 shaolin    指令   groupadd shaolin

    步骤2:在home目录下查看abc.txt现在的所在组

    步骤3:chgrp shaolin /home/abc.txt

     例2:将/home/bob 目录下的所有文件和目录的所在组都修改成shaolin

    步骤1:查看/home/bob当前所在组,如下图,所在组为bob

     步骤2:chgrp -R shaolin /home/bob

     和前面修改所有者一样,-R递归作用使得所有bob下面的所有目录和文件全都更改了所在组

    七 最佳实践 警察和土匪游戏---有点复杂

    police , bandit

    jack,jerry:警察

    xh,xq:土匪

    要求1:创建组 groupadd police;groupadd bandit

    要求2:创建用户,设置密码

    useradd -g police jack;useradd -g police jerry

    useradd -g bandit xh;useradd -g bandit xq

    要求3:jcak创建一个文件jack.txt,自己可以读r=4写w=2,本组人可以读r=4,其他人没有权限0

    步骤1:重新打开一个会话用jack身份登录,创建jack.txt文件 touch jack.txt 或者 vim jack.txt

    步骤2:查看jack.txt的权限

    步骤3:设置权限  chmod 640 jack.txt

    要求4:jack修改该文件,让其他组的人可以读r=4,本组的人可以读r=4写w=2

    翻译:jack自己的权限没有改变

    chomd o=r,g=r jcak.txt    或者     chmod 644 jack.txt

    要求5:xh投靠警察,看看能不能读写   

    翻译:要用root账户,修改xh的组

    usermod -g police xh

    要求6:测试,看看xh是否可以读写,xq是否可以读写

    步骤1:登录xh,xq,jerry

    步骤2:在xh的会话中,查看jack目录

    看jack这个目录可以看出只有jack自己可以rwx,g和o没有任何权限

    即使现在xh是police组的用户,也无法对jack进行任何操作,因为police这个组对jack没有权限,有权限的只有jack用户自己

    结论:如果要对目录内的文件进行操作,需要有对该目录的相应权限

    想要xh对jack目录有权限,直接用root或jack用户放开g的权限

    现在和jack同组的用户就可以对jack里面的文件目录有rwx权限了。回到xh的会话就会有相应的权限了,但是不能修改(不能vim修改)

    八 练习1

    (1)创建两个组,神仙sx 妖怪yg

    (2)创建4个用户,唐僧 悟空 八戒 沙僧

    (3)设置密码

    (4)把悟空 八戒放在妖怪组,唐僧沙僧放在神仙组

    翻译:这是改变用户所在组,应该用usermod -g 而不是chgrp,chgrp是用来修改文件/目录所在组

    (5)用悟空建立一个文件monkey.java 该文件要输出i am monkey

    首先新建会话用wukong的账户密码登录

    然后vim monkey.java

    进入vim界面后输入i开始编辑,输入i am monkey,然后点击esc,输入:wq回到xshell会话界面

    然后查看一下monkey.java的权限

    (6)给八戒一个可以rw的权限

    目前八戒在yg组,悟空也在yg组,monkey.java对于所在组的权限是r,所以只要给同组g添加一个w权限即可

    chmod g+w monkey.java

    (7)八戒修改monkey.java 加入一句话  i am pig

    用bajie登录一个会话,可以看见无法进入wukong的家目录

    在wukong的会话中查看wukong这个目录的权限如下

    说明只有悟空用户自己有rwx权限,同组内用户也就是yg组内的bajie是没有任何权限的

    需要在wukong的会话中给所在组添加权限

    chmod g+r+w+x

    回到bajie会话再次尝试cd到wukong目录

    可以看出已经进入成功了,而且由于(6)中monkey.txt文件给了bajierw权限,所以这里显示的权限是rw-,可以使用vim直接进入该文件进行修改

     

    (8)唐僧 沙僧 对该文件没有权限

    用shaseng登录会话尝试cd到wukong文件,发现没有权限,因为shaseng在sx组 

    (9)把沙僧放入妖怪组

    修改用户所在组  usermod -g yg shaseng   注意这里要使用root用户来修改用户所在组

    回到沙僧会话,尝试进入wukong文件

    发现还是不行,回到root用户会话查看shaseng的id发现组信息修改为yg是正确的

    现在尝试退出shaseng重新登录一次再尝试

    发现重新登录后就可以进入wukong目录了,这是以为环境变量,后面会说

    (10)让沙僧修改monke.java文件,加入一句话 我是沙僧 我是妖怪

    shaseng对monkey.java的权限是rw,可以使用vim进行修改

    (11)对文件夹rwx的细节讨论和测试

    只给所有者所在组对目录wukong的x权限,看所在组其他用户可以操作什么

    在root会话中将wukong文件所在组用户的权限收回

    现在给所在组用户x权限

     在bajie会话中尝试进入wukong文件

    发现bajie对wukong文件有x权限,可以执行,也可以cd进wukong目录,但是不能读取wukong这个文件,因为没有w权限。也就是ls wukong这个指令没有权限,无法列出这个目录里的东西

    作为所在组用户,对wukong这个目录只有x执行权限,可以cd进来,不可以ls列出内容。对于wukong目录下的monkey文件是否有w权限?vim一下

     

    总结

    目录有r权限代表可以ls这个目录列出目录下内容,如果对目录没有r权限则ls不能使用,但是如果对目录下的文件有w权限,那么还是可以vim修改等操作的

     所有者所在组添加目录wukong的r权限,看看各种操作如何

     首先在root会话中chmod g+r /home/wukong

    现在尝试bajie是否可以ls列出wukong目录内容,如下图所示,已经可以ls了

    现在尝试touch一个文件,发现没有权限,需要root添加w权限

     现在尝试删除文件monkey.java,发现没有权限,需要root添加w权限

    现在用wukong账号给g添加w权限,看看各种操作如何

    注意:root和wukong两个账号都可以

    再次尝试bajie能否touch和rm monkey.java,发现都可以了

    文件/目录rwx超级总结!!!!!区别于单独文件的rwx

    x:表示可以进入到该目录,比如cd,但是不能ls显示目录下的内容,不能在目录下创建文件touch,不能删除目录下文件rm

    r:表示可以ls,显示目录下内容,但是不能在目录下创建touch文件,也不能删除rm目录下的文件

    w:表示可以在该目录下删除rm或创建touch文件

    九 练习2

    (1)用root登录,建立用户mycentos,自己设置密码

     (2)用mycentos登录,在主目录下建立目录test/t11/t1

    首先主目录就是家目录,这里就是/home/mycentos

     这里是创建多级目录,要用mkdir -p命令

    (3)在t1中建立一个文本文件aa,用vi编辑其内容为ls -al

    (4)改变aa的权限为可执行文件(可以将当前日期追加到一个文件),运行改文件./aa

    注意下面两条指令的作用相同

    追加日期到aa.txt文件

    (5)删除新建立的目录test/t11/t1

    (6)删除用户mycentos及其主目录中的内容 

    待解决。。。 

  • 相关阅读:
    educoder实训——密码设置与安全性分析+Python 计算思维训练_公式编程
    Linux系统中使用linux-wifi-hotspot工具开启网络热点
    【类和对象三部曲①】深入浅出类和对象
    Day710.文字块-Java8后最重要新特性
    JS正则表达式
    数据库简介
    【Spring-5】AbstractBeanFactory#doGetBean创建实例完整流程
    基于FPGA的频率计与串口通信
    【高德地图】Android搭建3D高德地图详细教
    Kafka内外网分流配置listeners和advertised.listeners
  • 原文地址:https://blog.csdn.net/m0_54108654/article/details/126490334