组管理和权限管理
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