目录
第九章 组管理
9.1 Linux 组基本介绍
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件
有所有者、所在组、其它组的概念。
1) 所有者:一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
2) 所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。
3) 其它组:文件的所有者和所在除组外,系统的其它组 都属于 文件的其它组。
9.2 文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
9.2.1 查看文件的所有者
指令:ls –ahl
应用案例:
9.2.2 修改文件所有者
指令:chown 用户名 文件名
应用案例:
要求:使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom
命令:chown tom apple.txt
9.3 组的创建
9.3.1 基本指令
groupadd 组名
9.3.2 应用实例
创建一个组, ,monster
groupadd monster
创建一个用户 fox ,并放入到 monster 组中
useradd -g monster fox (新建fox用户,并设置fox用户所属的组为monster)
9.4 文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。
9.4.1 查看 文件/目录 所在组
基本指令:ls –ahl
应用实例:使用 fox 来创建一个文件,看看该文件属于哪个组。
因为我们需要用 fox 用户来登录,先给 fox 指定密码。
退出登录,使用 fox 进行登录,输入用户名、密码
查看文件的所在组
9.4.2 修改 文件/目录 所在的组
基本指令:chgrp 组名 文件名
应用实例: 使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit 组。
步骤一:使用root用户登录linux
步骤二:创建fruit组
指令:groupadd fruit
步骤二:创建 orange.txt 文件
指令:touch orange.txt
步骤三:将orange.txt文件所在组修改为 fruit 组。
9.5 其它组
文件的所有者和所在除组外,系统的其它组 都属于 文件的其它组。
9.6 改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组。
9.6.1 改变用户所在组
usermod –g 新组名 用户名
9.6.2 改变该用户登陆的初始目录
usermod –d 目录名 用户名 (特别说明:用户需要拥有进入到新目录的权限)
9.6.3 应用案例
将 zwj 这个用户从原来所在组,修改到 wudang 组
命令:usermod -g wudang zwj
第十章 权限管理
10.1 权限的基本介绍
权限这一列一共有 10 位 (0、1、2、3、4、5、6、7、8、9)
10.1.1 0-9 位说明
第 0 位:用来表示文件类型(d, - , l , c , b)
l 是链接,相当于 windows 的快捷方式
d 是目录,相当于 windows 的文件夹
- 是普通文件
c 是字符设备文件,鼠标,键盘
b 是块设备,比如硬盘
第 1-3 位:文件的所有者拥有该文件的权限。---User
第 4-6 位:文件所在组的用户拥有该文件的权限。---Group
第 7-9 位:文件所属组除外,其他组拥有该文件的权限 ---Other
10.2 rwx 权限详解 (难点)
rwx权限要分两个清快,第一个是作用到文件是什么权限,第二个是看作用到目录是什么权限。
10.2.1 rwx 作用到文件
1) [ r ]代表可读(read):可以读取,查看
2) [ w ]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3) [ x ]代表可执行(execute):可以被执行(前提这个文件是可执行文件)
10.2.2 rwx 作用到目录
1) [ r ]代表可读(read):可以读取,可以查看目录内容 (可以查看目录下面有哪些文件)
2) [ w ]代表可写(write):可以修改,可以对目录内容创建+删除+重命名目录
3) [ x ]代表可执行(execute):可以进入该目录
10.3 文件及目录权限实际案例
10.3.1 对hello.txt文件的信息内容进行 分析
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 hello.txt
10个字符用来确定不同用户能对文件执行什么样的操作,第一个字符代表文件类型有:l - d c b 。其余字符每 3 个一组(rwx);读(r) 写(w) 执行(x)。可以看到,hello.txt文件的所有者是 root ,所在组是root组。
第一个字符 - :表示 hello.txt 文件是一个普通的文件
第一组 rwx: 文件所有者能对 hello.txt 文件进行读、写、执行的操作。
第二组 rw- : 文件所在组的用户能对hello.txt文件进行读、写操作。但没有执行权限。
第三组 r-- : 不与文件所有者同组的其他用户 能对 hello.txt 文件进行 读 操作,但没有写 和 执行权限。
1:如果是一个文件,直接显示1, 如果是目录,表示子目录和子文件个数的总和。
root:文件的所有者用户。
root:文件所在的组。
1213:文件的大小(字节),如果是文件夹,显示 4096 字节。
Feb 2 09:39 :最后修改日期。
abc :文件名。
10.3.2 用数字表示对应的权限
可用数字表示为:r=4,w=2,x=1 因此 rwx=4+2+1=7 , 数字可以进行组合
10.4 修改文件权限 chmod
10.4.1 基本说明
通过 chmod 指令,可以修改文件或者目录的权限
10.4.2 第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
1)chmod u=rwx,g=rx,o=x 文件/目录名
2)chmod o+w 文件/目录名
3)chmod a-x 文件/目录名
案例演示
1) 给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
命令:chmod u=rwx,g=rx,o=rx abc
2) 给 abc 文件的所有者除去执行的权限,增加组写的权限
命令:chmod u-x,g+w abc
可以看见 所有者的执行权限移除了,所在组新增了写的权限
3) 给 abc 文件的所有用户添加读的权限
命令:chmod a+r abc
此时所有者,所在组,其他组都被加上读的权限
10.4.3 第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
数字对应的权限值:
rwx = 4+2+1 = 7
rw- = 4+2+0 = 6
r-x = 4+1+0 = 5r-- = 4+0+0 = 4
-wx = 0+2+1 = 3
-w- = 0+2+0 = 2
--x = 0+0+1 =1
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件/目录名
案例演示
要求:将 /home/abc.txt 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现。
命令:chmod 755 /home/abc.txt
10.5 修改文件/目录所有者 chown
10.5.1 基本指令
改变所有者:chown newowner 文件/目录 (newowner 表示 新的所有者)
改变所有者和所在组:chown newowner:newgroup 文件/目录 (newgroup表示 新的所在组)
-R:如果是目录 则使其下所有子文件或目录递归生效
案例演示
1) 请将 /home/abc.txt 文件的所有者修改成 tom
命令:chown tom /home/abc.txt
执行指令:chown tom /home/abc.txt
2) 请将 /home/test 目录下所有的文件和目录的所有者都修改成 tom
命令:chown -R tom /home/test
执行命令:chown -R tom /home/test
10.6 修改文件/目录所在组 chgrp
10.6.1 基本指令
修改所在组:chgrp newgroup 文件/目录
10.6.2 案例演示
案例一:请将 /home/abc .txt 文件的所在组修改成 shaolin (少林)
首先创建组:groupadd shaolin
执行命令:chgrp shaolin /home/abc.txt
案例二:请将 /home/test 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
指令:chgrp -R shaolin /home/test
此时test目录所在组是 king
执行命令:chgrp -R shaolin /home/test
10.7 最佳实践案例-警察和土匪游戏
police , bandit(警擦组和土匪组)
警察:jack, jerry(jack,jerry属于警擦组)
土匪:xh,xq (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)jack 创建一个文件,自己可以读 r 写 w,本组人可以读,其它组没有任何权限
设置 jack 密码,使用 jack 登录; vim jack.txt;chmod 640 jack.txt;
使用 jack 登录
首先创建一个文件 jack.txt,执行命令:vim jack.txt;
当前jack.txt文件的权限为:所有者可以读写,所在组的用户只能读,其他用户只能读。
执行chmod 640 jack.txt;修改之后的权限为:所有者可以读 r 写 w,所在组的用户只能读,其它组没有任何权限。
4) jack 修改该文件,所在组的用户可以读,让其它组的用户可以读。
5) xh 投靠 警察。
执行命令:usermod -g police xh (这条命令必须使用root,只有root用户有权限修改,其他用户没有权限)
6) 测试,看看 xh 是否可以读写,xq 是否可以读写;
小结论,如果要对目录内的文件进行操作,需要拥有对该目录的相应权限 。
使用jack用户登录,修改jack目录所在组的权限为:可读、可写、可执行。命令:chmod 770 jack
因为现在jack和xh都属于police组,而jack目录的权限允许所在组的用户进行读写执行操作,所以,我们再进入jack目录就可以进去了
因为jack.txt文件允许所有组的用户可以读,而xh和jack都属于police组,所以我们可以读取jack.txt文件的内容。
因为jack.txt文件不允许所有组的用户写和执行。所以使用xh用户是修改不了的。
使用jack用户,修改jack.txt文件所在组的用户权限为可读,写。
此时,再次使用xh用户对jack.txt文件进行修改
10.8 课后练习
练习文件权限管理, 完成如下操作.
1)建立两个组(神仙(sx),妖怪(yg))
2)建立四个用户(唐僧,悟空,八戒,沙僧)
3)设置密码
4)把悟空,八戒放入妖怪 唐僧 沙僧 在神仙
5)使用悟空用户登录,并用悟空建立一个文件 (monkey.java 该文件要输出 i am monkey)
6)给八戒一个可以 r w 的权限
7)八戒修改 monkey.java 加入一句话( i am pig)
使用悟空用户修改 monkey.java所在组的用户权限为 可读,可写,可执行。
使用bj用户进行修改
8)唐僧 沙僧 对该文件没有权限
9)把 沙僧 放入妖怪组
修改完ss用户之所在组之后,如果没有生效,请退出重新登录。
10)让沙僧 修改 该文件 monkey, 加入一句话 ("我是沙僧,我是妖怪!");
11)对文件夹 rwx 的细节讨论和测试!!!
x: 表示可以进入到该目录, 比如 cd
r: 表示可以 ls , 将目录的内容显示
w: 表示可以在该目录,删除或者创建文件
10.9 课后练习 2,完成如下操作
1) 用 root 登录,建立用户 mycentos,自己设定密码
2) 用 mycentos 登录,在主目录下建立目录 test/t11/t1
3) 在 t1 中建立一个文本文件 aa,用 vi 编辑其内容为 ls –al
4) 改变 aa 的权限为可执行文件[可以将当前日期追加到一个文件],运行该文件./aa
5) 删除新建立的目录 test/t11/t1
6) 删除用户 mycentos 及其主目录中的内容
7) 将 linux 设置成进入到图形界面的
8) 重新启动 linux 或关机
感谢大家的阅读!HZJ,一个在学习路上匍匐前行的小菜鸟!