Linux 组基本介绍
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
- 所有者 : 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
- 所在组 : 文件所在的组中的用户,都对该文件享有一定的权限
- 其它组:文件不在的组都视为其他组
文件、目录所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。查看文件的所有者
ls -ahl
[root@localhost ~]# ll
总用量 40
-rw-------. 1 root root 2024 8月 11 15:05 anaconda-ks.cfg
-rw-r--r--. 1 root root 2072 8月 11 15:20 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 4096 8月 11 15:21 公共
drwxr-xr-x. 2 root root 4096 8月 11 15:21 模板
drwxr-xr-x. 2 root root 4096 8月 11 15:21 视频
drwxr-xr-x. 2 root root 4096 8月 11 15:21 图片
drwxr-xr-x. 2 root root 4096 8月 11 15:21 文档
drwxr-xr-x. 2 root root 4096 8月 11 15:21 下载
drwxr-xr-x. 2 root root 4096 8月 11 15:21 音乐
drwxr-xr-x. 2 root root 4096 8月 11 15:21 桌面
修改文件所有者
chown 用户名 文件名
使用 root 创建一个文件 apple.txt,然后将其所有者修改成 tom
[root@localhost home]# touch apple.txt
[root@localhost home]# ll
总用量 4
-rw-r--r--. 1 root root 0 9月 1 11:40 apple.txt
drwx------. 15 tom tom 4096 8月 11 15:45 tom
[root@localhost home]# chown tom apple.txt
[root@localhost home]# ll
总用量 4
-rw-r--r--. 1 tom root 0 9月 1 11:40 apple.txt
drwx------. 15 tom tom 4096 8月 11 15:45 tom
组的创建
groupadd 组名
创建一个组 monster,创建一个用户 fox ,并放入到monster组中
[root@localhost home]# groupadd monster
[root@localhost home]# useradd -g monster fox
[root@localhost home]# ll
总用量 8
-rw-r--r--. 1 tom root 0 9月 1 11:40 apple.txt
drwx------. 3 fox monster 4096 9月 1 14:03 fox
drwx------. 15 tom tom 4096 8月 11 15:45 tom
修改文件、目录所在的组
chgrp 组名 文件名
使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit 组
1.groupadd fruit
2.touch orange.txt
3.查看当前文件属于那个组
4.chgrp fruit orange.txt
[root@localhost home]# groupadd fruit
[root@localhost home]# touch orange.txt
[root@localhost home]# ll
总用量 8
-rw-r--r--. 1 tom root 0 9月 1 11:40 apple.txt
drwx------. 3 fox monster 4096 9月 1 14:03 fox
-rw-r--r--. 1 root root 0 9月 1 14:09 orange.txt
drwx------. 15 tom tom 4096 8月 11 15:45 tom
[root@localhost home]# chgrp fruit orange.txt
[root@localhost home]# ll
总用量 8
-rw-r--r--. 1 tom root 0 9月 1 11:40 apple.txt
drwx------. 3 fox monster 4096 9月 1 14:03 fox
-rw-r--r--. 1 root fruit 0 9月 1 14:09 orange.txt
drwx------. 15 tom tom 4096 8月 11 15:45 tom
[root@localhost home]#
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
改变用户所在组
在添加用户时,可以指定将该用户添加到那个组中,同样的用root的管理权限可以改变某个用户所在的组。
uermod -g 新组名 用户名
usermod -d 目录名 用户名 改变该用户登录的初始目录。
特别说明:用户需要有进入到新目录的权限。
将用户 fox 从原来所在的组,修改到animal组
[root@localhost home]# groupadd animal
[root@localhost home]# usermod -g animal fox
[root@localhost home]# ll
总用量 8
-rw-r--r--. 1 tom root 0 9月 1 11:40 apple.txt
drwx------. 3 fox animal 4096 9月 1 14:03 fox
-rw-r--r--. 1 root fruit 0 9月 1 14:09 orange.txt
drwx------. 15 tom tom 4096 8月 11 15:45 tom
权限的基本介绍
ls -l
显示效果如下
[root@localhost ~]# ls -l
总用量 40
-rw-------. 1 root root 2024 8月 11 15:05 anaconda-ks.cfg
-rw-r--r--. 1 root root 2072 8月 11 15:20 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 4096 8月 11 15:21 公共
drwxr-xr-x. 2 root root 4096 8月 11 15:21 模板
drwxr-xr-x. 2 root root 4096 8月 11 15:21 视频
drwxr-xr-x. 2 root root 4096 8月 11 15:21 图片
drwxr-xr-x. 2 root root 4096 8月 11 15:21 文档
drwxr-xr-x. 2 root root 4096 8月 11 15:21 下载
drwxr-xr-x. 2 root root 4096 8月 11 15:21 音乐
drwxr-xr-x. 2 root root 4096 8月 11 15:21 桌面
0-9 位说明
第 0 位确定文件类型(d, - , l , c , b)
- 是文件,相当于windows 的文件
l 是链接,相当于 windows 的快捷方式
d 是目录,相当于 windows 的文件夹
c 是字符设备文件,鼠标,键盘
b 是块设备,比如硬盘
第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限 ---User
第 4-6 位确定所属组(同用户组的)拥有该文件的权限 ---Group
第 7-9 位确定其他用户拥有该文件的权限 ---Other
rwx 权限详解,难点
rwx 作用到文件
- r 代表可读(read): 可以读取,查看
- w 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
-
rwx 作用到目录
r 代表可读(read): 可以读取,ls 查看目录内容
- w 代表可写(write): 可以修改, 对目录内创建+删除+重命名目录
- x 代表可执行(execute):可以进入该目录
文件及目录权限实际案例
ls -l 中显示的内容如下:
-rwxrw-r— 1 root root 1213 Feb 2 09:39 abc
- 10 个字符确定不同用户能对文件干什么
第一个字符代表文件类型: - l d c b
其余字符每 3 个一组(rwx) 读(r) 写(w) 执行(x)
第一组 rwx : 文件拥有者的权限是读、写和执行
第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
第三组 r— : 不与文件拥有者同组的其他用户的权限是读不能写和执行
- 可用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7 , 数字可以进行组合
- 其它说明
1 文件:硬连接数或 目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示 4096 字节
Feb 2 09:39 最后修改日期
abc 文件名
修改权限 chmod
基本说明
第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
- chmod u=rwx,g=rx,o=x 文件/目录名
- chmod o+w 文件/目录名
- chmod a-x 文件/目录名
案例演示
给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
chmod u=rwx,g=rx,o=rx abc
[root@localhost home]# ll
总用量 12
-rw-r--r--. 1 root root 4 9月 6 13:53 abc
[root@localhost home]# chmod u=rwx,g=rx,o=rx abc
[root@localhost home]# ll
总用量 12
-rwxr-xr-x. 1 root root 4 9月 6 13:53 abc
给 abc 文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g+w abc
[root@localhost home]# chmod u-x,g+w abc
[root@localhost home]# ll
总用量 12
-rw-rwxr-x. 1 root root 4 9月 6 13:53 abc
给 abc 文件的所有用户添加读的权限
chmod a+r abc
[root@localhost home]# chmod a+r abc
[root@localhost home]# ll
总用量 12
-rw-rwxr-x. 1 root root 4 9月 6 13:53 abc
第二种方式:通过数字变更权限
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
[root@localhost home]# chmod 755 abc
[root@localhost home]# ll
总用量 12
-rwxr-xr-x. 1 root root 4 9月 6 13:53 abc
修改文件所有者chown
基本说明
改变所有者 chown newowner 文件/目录
改变所有者和所在组 chown newowner:newgroup 文件/目录
-R 如果是目录 则使其下所有子文件或目录递归生效
案例演示
将 /home/abc.txt 文件的所有者修改成 tom
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 root root 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 root root 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
[root@localhost home]# chown tom /home/abc
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 tom root 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 root root 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
将 /home/test 目录下所有的文件和目录的所有者都修改成 tom
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 tom root 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 root root 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
[root@localhost home]# chown -R tom /home/test/
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 tom root 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 tom root 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
修改文件/目录所在组chgrp
基本说明
chgrp newgroup 文件/目录 【 改变所在组】
案例演示
将/home/abc .txt 文件的所在组修改成 shaolin (少林)
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 tom root 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 tom root 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
[root@localhost home]# groupadd shaolin
[root@localhost home]# chgrp shaolin /home/abc
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 tom shaolin 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 tom root 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
将 /home/test 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
[root@localhost home]# chgrp -R shaolin /home/test/
[root@localhost home]# ll
总用量 16
-rwxr-xr-x. 1 tom shaolin 4 9月 6 13:53 abc
drwx------. 3 fox animal 4096 9月 1 14:03 fox
drwxr-xr-x. 2 tom shaolin 4096 9月 6 14:34 test
drwx------. 15 tom tom 4096 8月 11 15:45 tom
实践-警察与土匪游戏
警 察police : jack, jerry
土 匪bandit: xh, xq
创建组 groupadd police ; groupadd bandit
[root@localhost home]# groupadd police
[root@localhost home]# groupadd bandit
创建用户useradd -g police jack ; useradd -g police jerry useradd -g bandit xh; useradd -g bandit xq
[root@localhost home]# useradd -g police jack
[root@localhost home]# useradd -g police jerry
[root@localhost home]# useradd -g bandit xh
[root@localhost home]# useradd -g bandit xq
jack 创建一个文件,自己可以读 r 写 w,本组人可以读,其它组没人任何权限。首先 jack 登录 ; vim jack.txt ; chmod 640 jack.txt
[root@localhost home]# su - jack
[jack@localhost ~]$ ls
[jack@localhost ~]$ pwd
/home/jack
[jack@localhost ~]$ vim jack.txt
[jack@localhost ~]$ cat jack.txt
hello
[jack@localhost ~]$ ll
总用量 4
-rw-r--r--. 1 jack police 6 11月 2 21:21 jack.txt
[jack@localhost ~]$ chmod 640 jack.txt
[jack@localhost ~]$ ll
总用量 4
-rw-r-----. 1 jack police 6 11月 2 21:21 jack.txt
jack 修改该文件,让其它组人可以读, 本组人可以读写chmod o=r,g=rw jack.txt
[jack@localhost ~]$ chmod o=r,g=rw jack.txt
[jack@localhost ~]$ ll
总用量 4
-rw-rw-r--. 1 jack police 6 11月 2 21:21 jack.txt
xh 投靠 警察,看看是否可以读写. usermod -g police xh测试,看看 xh 是否可以读写,xq 是否可以,
[root@localhost ~]# usermod -g police xh
[root@localhost ~]# su - xh
[xh@localhost ~]$ cd /home/
[xh@localhost home]$ ll
总用量 44
-rw-r--r--. 1 root root 0 7月 4 23:11 cat.txt
-rw-r--r--. 1 root root 4 7月 4 22:42 hello.txt
drwxr-xr-x. 2 root root 4096 7月 4 23:16 home
drwx------. 5 jack police 4096 11月 2 21:21 jack
drwx------. 3 jerry police 4096 11月 2 21:12 jerry
-rw-r--r--. 1 root root 1721 7月 4 23:04 myhome.tar.gz
-rw-r--r--. 1 root root 3478 7月 4 23:15 myhome.ter.gz
-rw-r--r--. 1 root root 1847 7月 4 22:51 myhome.zip
-rw-r--r--. 1 root root 130 7月 4 23:13 pc.tar.gz
-rw-r--r--. 1 root root 0 7月 4 23:11 pig.txt
drwx------. 3 tom tom 4096 4月 11 2018 tom
drwx------. 5 xh police 4096 11月 2 21:30 xh
drwx------. 3 xq bandit 4096 11月 2 21:13 xq
[xh@localhost home]$ cd jack/
-bash: cd: jack/: 权限不够
[xh@localhost home]$ exit
登出
[root@localhost ~]# cd /home/
[root@localhost home]# ll
总用量 44
-rw-r--r--. 1 root root 0 7月 4 23:11 cat.txt
-rw-r--r--. 1 root root 4 7月 4 22:42 hello.txt
drwxr-xr-x. 2 root root 4096 7月 4 23:16 home
drwx------. 5 jack police 4096 11月 2 21:34 jack
drwx------. 3 jerry police 4096 11月 2 21:12 jerry
-rw-r--r--. 1 root root 1721 7月 4 23:04 myhome.tar.gz
-rw-r--r--. 1 root root 3478 7月 4 23:15 myhome.ter.gz
-rw-r--r--. 1 root root 1847 7月 4 22:51 myhome.zip
-rw-r--r--. 1 root root 130 7月 4 23:13 pc.tar.gz
-rw-r--r--. 1 root root 0 7月 4 23:11 pig.txt
drwx------. 3 tom tom 4096 4月 11 2018 tom
drwx------. 5 xh police 4096 11月 2 21:34 xh
drwx------. 3 xq bandit 4096 11月 2 21:13 xq
[root@localhost home]# chmod 770 jack
[root@localhost home]# ll
总用量 44
-rw-r--r--. 1 root root 0 7月 4 23:11 cat.txt
-rw-r--r--. 1 root root 4 7月 4 22:42 hello.txt
drwxr-xr-x. 2 root root 4096 7月 4 23:16 home
drwxrwx---. 5 jack police 4096 11月 2 21:34 jack
drwx------. 3 jerry police 4096 11月 2 21:12 jerry
-rw-r--r--. 1 root root 1721 7月 4 23:04 myhome.tar.gz
-rw-r--r--. 1 root root 3478 7月 4 23:15 myhome.ter.gz
-rw-r--r--. 1 root root 1847 7月 4 22:51 myhome.zip
-rw-r--r--. 1 root root 130 7月 4 23:13 pc.tar.gz
-rw-r--r--. 1 root root 0 7月 4 23:11 pig.txt
drwx------. 3 tom tom 4096 4月 11 2018 tom
drwx------. 5 xh police 4096 11月 2 21:34 xh
drwx------. 3 xq bandit 4096 11月 2 21:13 xq
[root@localhost home]# su - xh
上一次登录:二 11月 2 21:30:09 CST 2021pts/2 上
[xh@localhost ~]$ cd /home/jack/
[xh@localhost jack]$ ll
总用量 4
-rw-rw-r--. 1 jack police 6 11月 2 21:21 jack.txt
[xh@localhost jack]$ cat jack.txt
hello
[xh@localhost jack]$ vim jack.txt
[xh@localhost jack]$ cat jack.txt
iiihello
小结论,就是如果要对目录内的文件进行操作,需要要有对该目录的相应权限
- 对文件夹 rwx 的细节讨论和测试
- x: 表示可以进入到该目录, 比如 cd
- r: 表示可以 ls , 将目录的内容显示
- w: 表示可以在该目录,删除或者创建文件