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.cfgdrwxr-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.txtdrwx------. 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.txtdrwx------. 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.txtdrwx------. 3 fox monster 4096 9月 1 14:03 foxdrwx------. 15 tom tom 4096 8月 11 15:45 tom
修改文件、目录所在的组
chgrp 组名 文件名
使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit 组
1.groupadd fruit2.touch orange.txt3.查看当前文件属于那个组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.txtdrwx------. 3 fox monster 4096 9月 1 14:03 fox-rw-r--r--. 1 root root 0 9月 1 14:09 orange.txtdrwx------. 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.txtdrwx------. 3 fox monster 4096 9月 1 14:03 fox-rw-r--r--. 1 root fruit 0 9月 1 14:09 orange.txtdrwx------. 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.txtdrwx------. 3 fox animal 4096 9月 1 14:03 fox-rw-r--r--. 1 root fruit 0 9月 1 14:09 orange.txtdrwx------. 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.cfgdrwxr-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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 root root 4096 9月 6 14:34 testdrwx------. 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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 root root 4096 9月 6 14:34 testdrwx------. 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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 root root 4096 9月 6 14:34 testdrwx------. 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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 tom root 4096 9月 6 14:34 testdrwx------. 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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 tom root 4096 9月 6 14:34 testdrwx------. 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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 tom root 4096 9月 6 14:34 testdrwx------. 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 abcdrwx------. 3 fox animal 4096 9月 1 14:03 foxdrwxr-xr-x. 2 tom shaolin 4096 9月 6 14:34 testdrwx------. 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.txthello[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.txtdrwxr-xr-x. 2 root root 4096 7月 4 23:16 homedrwx------. 5 jack police 4096 11月 2 21:21 jackdrwx------. 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.txtdrwx------. 3 tom tom 4096 4月 11 2018 tomdrwx------. 5 xh police 4096 11月 2 21:30 xhdrwx------. 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.txtdrwxr-xr-x. 2 root root 4096 7月 4 23:16 homedrwx------. 5 jack police 4096 11月 2 21:34 jackdrwx------. 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.txtdrwx------. 3 tom tom 4096 4月 11 2018 tomdrwx------. 5 xh police 4096 11月 2 21:34 xhdrwx------. 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.txtdrwxr-xr-x. 2 root root 4096 7月 4 23:16 homedrwxrwx---. 5 jack police 4096 11月 2 21:34 jackdrwx------. 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.txtdrwx------. 3 tom tom 4096 4月 11 2018 tomdrwx------. 5 xh police 4096 11月 2 21:34 xhdrwx------. 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.txthello[xh@localhost jack]$ vim jack.txt[xh@localhost jack]$ cat jack.txtiiihello
小结论,就是如果要对目录内的文件进行操作,需要要有对该目录的相应权限
- 对文件夹 rwx 的细节讨论和测试
- x: 表示可以进入到该目录, 比如 cd
- r: 表示可以 ls , 将目录的内容显示
- w: 表示可以在该目录,删除或者创建文件
