目录
一 权限的基本介绍
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
(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
翻译:要用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
可以看出已经进入成功了,而且由于(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及其主目录中的内容
待解决。。。