1 Linux 组基本介绍
在 Linux 中的每个用户必须属于一个组,不能独立于组外。 在Linux 中每个文件有所有者、所在组、其他组的概念。
- 所有者
- 所在组
- 其他组
- 改变用户所在的组
2 文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为了该文件的所有者。
2.1 查看文件的所有者
2.2 修改文件所有者【change own】
- 指令:
chown 用户名 文件名 - 应用实例:
- 要求:使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom
chown tom apple.txt
3 组的创建
- 基本指令:
groupadd 组名 - 应用实例:
- 创建一个组 monster
groupadd monster - 创建一个用户 fox ,并放入到 monster 组中
useradd -g monster fox
4 文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
4.1 查看文件/目录 所在组
- 基本指令:
ls -ahl - 应用实例:
- 使用 fox 创建一个文件,看看这个文件属于哪个组
4.2 修改文件所在的组
5 其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
6 改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限也可以改变某个用户所在的组
usermod -g 新组名 用户名 改变用户所在组usermod -d 目录名 用户名 改变该用户登录的初始目录,特别说明:用户需要有进入到新目录的权限
- 应用实例:
将 swk 这个用户从原来所在组,修改到 huaguoshan 组
7 权限的基本介绍
ls -l 中显示的内容如下:=> 视频链接
-rw-r--r--. 1 tom root 0 6月 24 17:28 apple.txt
0-9位说明:
- 第 0 位确定文件类型 (d, -, l, c, b)
- l 是链接,相当于Windows的快捷方式
- d 是目录,相当于Windows的文件夹
- c 是字符设备文件,鼠标,键盘
- b 是块设备,比如硬盘
- - 表示普通文件
- 第 1-3 位确定所有者 (该文件的所有者) 拥有该文件的权限
- 第 4-6 位确定所属组 (同用户组的) 拥有该文件的权限
- 第 7-9 位确定其他用户拥有该文件的权限
8 rwx权限详解,难点
8.1 rwx作用到文件
- r:代表可读(read)可以读取,查看
- w:代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
- x:代表可执行(execute)可以被执行
8.2 rwx作用到目录
- 【r】代表可读(read)可以读取,
ls 查看目录内容 - 【w】代表可写(write)可以修改,对目录的内 创建+删除+重命名目录
- 【x】代表可执行(execute)可以进入该目录
9 文件及目录权限实际案例
ls -l 中显示的内容如下:
-rw-r--r--. 1 tom root 7 6月 25 10:01 apple.txt
-
10 个字符确定不同用户能对文件干什么
- 第 1 个字符代表文件类型:- l b c d
- 其余字符每 3 个一组(r w x)
- 第一组 :文件拥有者的权限是读、写不能执行
- 第二组:与文件拥有者同一组的用户的权限是读,不能写和执行
- 第三组:不与文件拥有者同组的其他用户的权限是读,不能写和执行
-
可用数字表示:
- r=4 ,w=2 ,x=1
- 因此:rwx = 4+2+1 = 7
-
其他说明:
- 1 :文件:硬连接数;目录:子目录数
- tom :文件所有者
- root :文件所在组
- 7 :文件大小(字节)如果是文件夹,显示 4096 字节
- 6月 25 10:01 :最后的修改日期
- apple.txt :文件名
10 修改权限 -chmod
- 基本说明:通过 chmod指令,可以修改文件或目录的权限
10.1 第一种方式:+、-、= 变更权限
u:所有者 g:所在组 o:其他组 a:所有人(u、g、o 的总和)
(1)chmod u=rwx,g=rx,o=x 文件名/目录名 (2)chmod o+w 文件名。目录名 (3)chmod a-x 文件/目录名
- 案例演示
- 给abc文件 的所有者读写执行的权限,给所在组读执行权限,给其他组执行权限
==> chmod u=rwx,g=rx,o=x abc - 给abc文件的所有者除去执行的权限,增加组写的权限
==> chmod u-x,g+w abc - 给abc文件的所有用户添加读的权限
==> chmod a+r abc
10.2 第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件名/目录名 - 相当于 =>
chmod 751 文件名/目录名 - 案例演示:要求:将 /home/abc.txt 文件的权限修改成
rwxr-xr-x ,使用给数字的方式实现 => chmod 755 /home/abc.txt
11 修改文件所有者-chown
chown newowner 文件/目录 改变所有者chown newowner:newgroup 文件/目录 改变所有者和所在组-R 如果是目录,则使其下所有子文件或目录递归生效
- 案例演示:
- 请将 /home/abc.txt 文件的所有者修改成 tom
==> chown tom /home/abc.txt - 请将 /home/kkk 目录下所有文件和目录的所有者都修改成 tom
==> chown -R tom /home/kkk
12 修改文件/目录所在组-chgrp
- 请将 /home/abc.txt 文件的所在组修改成 shaolin (少林)
=> groupadd shaolin --先创建组 => chgrp shaolin /home/abc.txt - 请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin (少林)
=> chgrp -R shaolin /home/kkk
13 最佳实践-警察和土匪游戏
-
基本介绍:
- 现在有两个组:police,bandit
- 目前有四个用户:
- 警察:jack,jerry
- 土匪:abcd,xyzw
-
游戏演示:
- 创建组
=> groupadd police ; groupadd bandit - 创建用户
=> useradd -g police jack ; useradd -g police jerry => useradd -g bandit abcd ; useradd -g bandit xyzw - jack 创建一个文件,自己可以读写,本组人可以读,其他组没有任何权限
=> 首先jack登录;vim jack.txt ;chmod 640 jack.txt - jack 修改该文件,让其他组可以读,本组人可以读写
=> chmod 644 jack.txt 或者 chmod o+r,g+w jack.txt - abcd 投靠警察,看看是否可以读写
=> usermod -g police abcd —这条指令需要root用户执行 - 测试看看 abcd是否可以读写,xyzw是否可以读写。小结论:如果需要对目录内的文件进行操作,需要先对该目录有相应权限
14 课堂练习
- 建立两个组:神仙(sx),妖怪(yg)
- 建立四个用户 (唐僧,悟空,八戒,沙僧)
- 设置密码
- 把悟空,八戒放入妖怪组,唐僧,沙僧 在神仙组
- 用悟空建立一个文件(monkey.java 该文件要输出 i am monkey)
- 给八戒一个可以 读、写 的权限
- 八戒修改 monkey.java,加入一句话(i am pig)
- 唐僧 沙僧 对该文件没有权限
- 把 沙僧 放入妖怪组
- 让沙僧 修改 该monkey.java文件,加入一句话(“我是沙僧,我是妖怪!”)
- 对文件夹 rwx 的细节讨论和测试
==> 点击查看视频 (1)x:表示是否有权限进入该目录,(如执行 cd指令 ) (2)r:表示是否可以将目录的内容显示处理 (如执行 ls指令 ) (3)w:表示是否有权限在该目录 创建或者删除 文件 (如执行 touch指令 )
15 课堂练习2,完成如下操作
- 用 root 登录,建立用户 mycentos,自己设置密码
- 用 mycentos 登录,在主目录下建立目录 test/t11/t1
- 在 t1 中建立一个文本文件 aa ,用 vi 编辑其内容为 ls -al
- 改变 aa 的权限为可执行文件【可以将当前日期追加到一个文件】,运行该文件
- 删除新建立的目录 test/t11/t1
- 删除用户 mycentos 及其主目录的内容
- 将 Linux 设置成进入图形界面
- 重新启动 Linux 或关机
|