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及其主目录中的内容 

待解决。。。 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注