Home

韧桂

思考,总结

组管理和权限管理

Linux 组基本介绍

在 Linux 中的每个用户必须属于一个组,不能独立于组外。在 Linux 中每个文件有所有者、所在组、其它组的概念。

组的创建基本指令: groupadd 组名

一) 所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

1.查看文件的所有者
指令:ls –ahl

应用实例 :创建一个组 police ,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个文件 ok.txt,看看情况如何

groupadd police  //创建 police 组。
useradd -g police tom  //把 tom 归到 police 组
passwd tom  //指定密码
touch ok.txt   //以 tom 用户登录 Linux,创建一个文件
ls -ahl  //查看文件的所有者

2.修改文件所有者
指令:chown 用户名 文件名

应用案例
要求:使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom

su  //登录 root
touch apple.txt   //以 root 用户创建文件
ls -l  //查看
chown tom apple.txt  //修改文件所有者
ls -l 

二) 所在组

当某个用户创建了一个文件后,默认情况下,这个文件的所在组就是该用户所在的组。

1.查看文件/目录所在组
基本指令 :ls –ahl

2.修改文件所在的组
基本指令:chgrp 组名 文件名

应用实例
使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组(root),然后将这个文件所在组,修改到 police 组。

su
touch orange.txt
ls -l
chgrp police orange.txt
ls -l

三) 其它组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。

四) 改变用户所在的组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组。

1.改变用户所在组
1) usermod –g 组名 用户名
2) usermod –d 目录名 用户名 //改变该用户登陆的初始目录

应用实例
创建一个土匪组(bandit)将 tom 这个用户从原来所在的 police 组,修改到 bandit (土匪) 组
Usermod -g bandit tom

权限管理

权限的基本介绍

ls -l 中显示的内容如下:
-rwxrw-r– 1 root police 1213 Feb 2 09:39 abc.txt

0-9 位说明
第 0 位确定`文件类型`:(说明: -:普通文件, d:目录,l : 连接文件, c: 字符设备文件(键盘,鼠标) b: 块设备文件(硬盘) )
第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。R: 读 , w : 写权限 x:  执行权限  
第 4-6 位确定所属组(同用户组的)拥有该文件的权限
第 7-9 位确定其他用户拥有该文件的权限 

1: 如果是文件,表示硬链接的数目, 如果是目录,则表示有多少个子目录
1213: 表示文件大小,如果是目录,则统一为 4096
Feb 2 09:39 :文件最后修改时间

rwx 权限详解

rwx 作用到文件(重要)
可用数字表示为:r=4, w=2, x=1
1) [ r ]代表可读(read): 可以读取,查看
2) [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3) [ x ]代表可执行(execute):可以被执行

rwx作用到目录(重要)
1) [ r ]代表可读(read): 可以读取,ls查看目录内容
2) [ w ]代表可写(write): 可以修改,目录内创建 + 删除 + 重命名目录
3) [ x ]代表可执行(execute):可以进入该目录

修改权限-chmod

通过 chmod 指令,可以修改文件或者目录的权限。

1.第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
1) chmod u=rwx,g=rx,o=x 文件、目录 【表示:给所有者rwx, 给所在组的用户 rx, 给其他人 x】
2) chmod o+w 文件、目录 【表示:给其它用户增加 w 的权限】
3) chmod a-x 文件、目录 【表示:给所有用户 去掉 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 `

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  u=rwx, g=xr, o=x /home/abc.txt
Chmod 751 /home/abc.txt

修改文件所有者-chown

基本介绍
chown newowner file //改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效

案例演示:
1.请将 /home/abc.txt 文件的所有者修改成 tom
chown tom /home/abc.txt
2.请将 /home/kkk 目录下所有的文件和目录的所有者都修改成 tom
chown –R tom /home/kkk
3.将 home 下的所有文件和目录的所有者都改成 tom,将所在组改成 police
chown –R tom:police /home/

修改文件所在组-chgrp

基本介绍
chgrp newgroup file 改变文件的所有组

案例演示:
请将 /home/abc .txt 文件的所在组修改成 shaolin (少林)
chgrp shaolin /home/abc.txt
请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
chgrp -R shaolin /home/kkk

最佳实践-警察和土匪游戏

组名: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

给分配密码
passwd jack
passwd jerry
passwd xh
passwd xq

3) jack 创建一个文件,自己可以读写,本组人可以读,其它组没人任何权限

su - jack  //切换到 jack
vim jack.txt  //写入内容后保存
chmod  640  jack.txt  //6 自己可以读写,4 代表本组人可以读,0 其它组没人任何权限 

4)jack 修改该文件,让其它组人可以读, 本组人可以读写
chmod g=rw, o=r jack.txt

5)xh 投靠 警察,看看是否可以读写.(不想切换用户,可开多个窗口)
su - xh
cd /home/jack/ //权限不够

su - root
usermod -g police xh //使用 root 修改 xh 的组

su - xh
id xh //查询 xh 的信息 cd /home/jack/ //权限不够

su - jack
cd .. //回到 home 目录
chmod g=rx jack/ //使用 Jack 给他的家目录 /home/jack 的所在组一个 rx 权限
ls -l

su - xh
cd /home/jack/ //权限不够
logout //xh 需要注销,在重新登陆
cd /home/
ls -l
id xh
cd jack //进入 jack 目录
ls -l
vim jack.txt //可打开并写入内容

韧桂 2020-01-16