(七)RHEL系统之文件权限的设置

文件权限的设置

接上篇:(六)RHEL系统之Redhat8用户管理(实现添加用户到同一组)及vim使用

任务背景

这里是引用任务要求

  1. 在跳板机上为开发部门专门创建一个目录,只允许开发部门所有员工使用该目录
  2. 其他人员不能进入和查看该目录里的内容

任务分解

1. 在跳板机给开发部门创建目录
2. 对该目录做好权限的管控工作
只允许开发部门的所有人使用,创建、删除等操作 不允许其他人员进入并且查看该目录里所有内容 只能自己管理自己(不能删除别人的文件)

理论储备
一、权限概述
㈠ 什么是权限

权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。 思考:计算机资源分为哪两部分? 硬件资源
硬盘、CPU、内存、网卡等物理硬件资源 软件资源
软件:操作系统(特殊的软件)、应用程序。只要不启动,这些软件就是一堆静态的文件,并且静静的躺在我们计 算机的磁盘中。
软件资源:Linux系统中,一切皆文件!SO,这里的软件资源就是文件资源。 总结:
我们今天所讲的权限,指的就是:文件资源所拥有的相关权限,即文件权限

总结:

我们今天所讲的权限,指的就是:文件资源所拥有的相关权限,即文件权限。

㈡ 权限设置目的
文件权限的设置目的:是想让某个用户(Linux操作系统中的用户)有权利操作文件
㈢ 文件权限的分类
普通权限
用户正常情况去操作文件所具有的权限
高级权限 用户对某个文件操作有特殊需求,而普通权限不能满足,需要给文件设置高级权限
默认权限
用户在系统中创建一个文件,该文件默认都会有一个权限,该权限是默认有的
注意:
权限是设置在文件上的,而不是用户;设置权限目的是让相应的人(用户)去操作相应的文件

**二、普通权限(重点)
㈠ 理解普通权限rwx含义

1、读权限—r(read)
针对目录
一个目录拥有r权限,说明可以查看该目录里的内容(ls命令列出)
针对普通文件 一个普通文件拥有r权限,说明可以查看该文件的内容(cat/head/tail/less/more等命令查看)
读权限r(read)用数字表示是4
2、写权限—w(write)
针对目录

一个目录拥有w权限,说明可以在该目录里创建、删除、重命名等操作(mkdir/touch/mv/rm等)
针对普通文件
一个普通文件拥有w权限,说明可以修改该文件的内容(vi/vim编辑器编辑文件) 写权限w(write)用数字表示是2
3、执行权限—x(execute)
针对目录
一个目录拥有x权限,说明可以进入或切换到该目录里(cd命令)
针对普通文件
一个普通文件拥有x权限,说明可以执行该文件(一般程序文件、脚本文件、命令都需要执行权限)
执行权限x(execute)用数字表示是1
4、没有权限—横杠-
没有任何权限用横杠-表示,数字表示是0
㈡ 理解UGO的含义
1、UGO指的是什么
UGO,指的是用户身份,每个字母代表不同的用户身份。
U(the user who owns it)
文件的拥有者(owner)或者创建者
G(other users in the file’s group)
在文件的所属组(默认是创建文件的用户的主组)里的用户
O(other users not in the file’s group)
既不是文件的创建者,也不在文件属组里的用户,称为其他人
注意:
除了上面ugo以外,还有一个字母a(all users),表示所有用户,包含ugo
2、如何判断不同身份的用户对文件的权限

查看文件详细信息,包含权限信息: 
[root@localhost ~]# ls -l 
total 144
-rw-r--r--. 1 root root 9 Mar 2 20:38 1.sh 
-rw-------. 1 root root 1651 Feb 28 11:00 anaconda-ks.cfg 
drwxr-xr-x. 2 root root 4096 Mar 6 18:34 Desktop 
drwxr-xr-x. 2 root root 4096 Feb 28 14:12 dir1

这里是引用

㈢ 修改文件普通权限(chmod)
1、chmod命令用法

chmod [选项] 模式 文件名
常见选项: -R, --recursive 递归更改目录和目录里文件的权限

2、举例说明
① 通过字母形式更改文件权限

u:表示文件拥有者
g:表示文件属组里的用户
o:表示其他人,即不是文件的创建者,也不在文件属组里
a:表示所有人

使用字母形式修改文件权限
[root@huislee home]# touch ./test/test{1..3}
[root@huislee home]# ll ./test/ -R
./test/:
总用量 0
drwxrwxr-x. 2 huislee huislee 6 10月 31 11:39 file1
drwxrwxr-x. 2 huislee huislee 6 10月 31 11:39 file2
drwxrwxr-x. 2 huislee huislee 6 10月 31 11:39 file3
-rw-r--r--. 1 root    root    0 10月 31 17:17 test1
-rw-r--r--. 1 root    root    0 10月 31 17:17 test2
-rw-r--r--. 1 root    root    0 10月 31 17:17 test3

./test/file1:
总用量 0

./test/file2:
总用量 0

./test/file3:
总用量 0
[root@huislee home]# chmod u+x ./test/test1
[root@huislee home]# ll ./test/ -R
./test/:
总用量 0
drwxrwxr-x. 2 huislee huislee 6 10月 31 11:39 file1
drwxrwxr-x. 2 huislee huislee 6 10月 31 11:39 file2
drwxrwxr-x. 2 huislee huislee 6 10月 31 11:39 file3
-rwxr--r--. 1 root    root    0 10月 31 17:17 test1
-rw-r--r--. 1 root    root    0 10月 31 17:17 test2
-rw-r--r--. 1 root    root    0 10月 31 17:17 test3

./test/file1:
总用量 0

./test/file2:
总用量 0

./test/file3:
总用量 0
修改目录以及目录里所有文件的权限(递归修改),使用-R参数
[root@huislee home]# chmod -R o+w test/
[root@huislee home]# ll ./test/ -R
./test/:
总用量 0
drwxrwxrwx. 2 huislee huislee 6 10月 31 11:39 file1
drwxrwxrwx. 2 huislee huislee 6 10月 31 11:39 file2
drwxrwxrwx. 2 huislee huislee 6 10月 31 11:39 file3
-rwxr--rw-. 1 root    root    0 10月 31 17:17 test1
-rw-r--rw-. 1 root    root    0 10月 31 17:17 test2
-rw-r--rw-. 1 root    root    0 10月 31 17:17 test3

./test/file1:
总用量 0

./test/file2:
总用量 0

./test/file3:
总用量 0

② 通过数字形式更改文件权限
学会用数字表示权限

字母和数字对应关系:
 r——4 w——2 x——1 -——0 
 rw- r-x r-- 用数字表示就是654 
 rwx rw- --- 用数字表示就是760 
 755 用字母表示就是rwx r-x r-x 
 644 用字母表示就是rw- r-- r-- 
 **使用数字形式修改文件权限**
 # chmod 644 file1 rw-r--r-- 
 # chmod 700 file2
 # chmod -R 755 dir1

总结:

1. 普通权限当中rwx含义
目录:r(ls列出目录内容),w(创建、删除、重命名等操作),x(cd进入目录)
文件:r(cat等相关工具查看文件内容),w(修改文件内容),x(可执行,程序,脚本文件等)
2. 理解用户身份(UGO) U:文件的拥有者(创建)
G:文件所属组里成员
O:陌生人(其他人)
3. 如何设置文件的权限?——>chmod命令
用字母形式
chmod u+x,g=rw,o-x filename
数字形式
r——>4 w——>2 x——>1
 -——>0 
 rw- r-x r-- = 654
chmod 755 filename rwx r-x r-x
4. 是否可以在目录里创建或删除文件?看当前目录本身是否有w权限!!
5. 对于正常操作目录而言,一般都会具有r和x权限

练习:

 1.创建5个用户user01~user05和一个admin组
[root@huislee home]# useradd user1
[root@huislee home]# useradd user2
[root@huislee home]# useradd user3
[root@huislee home]# useradd user4
[root@huislee home]# useradd user5
[root@huislee home]# groupadd admin
[root@huislee home]# tail -10 /etc/group
huislee:x:1000:
coding:x:1005:hui,lee
hui:x:1001:
lee:x:1002:
user1:x:1003:
user2:x:1004:
user3:x:1006:
user4:x:1007:
user5:x:1008:
admin:x:1009:
[root@huislee home]#
2.将user01~user03用户加入到admin组里(用户角度:将附加组变为admin;组角度:将用户加到组中)
[root@huislee home]# id user1
uid=1003(user1) gid=1003(user1)=1003(user1)
[root@huislee home]# usermod -G admin user1
[root@huislee home]# id user1
uid=1003(user1) gid=1003(user1)=1003(user1),1009(admin)
[root@huislee home]# gpasswd -a user2 admin
正在将用户“user2”加入到“admin”组中
[root@huislee home]# gpasswd -a user3 admin
正在将用户“user3”加入到“admin”组中
[root@huislee home]# id user2
uid=1004(user2) gid=1004(user2)=1004(user2),1009(admin)
[root@huislee home]# tail -10 /etc/group
huislee:x:1000:
coding:x:1005:hui,lee
hui:x:1001:
lee:x:1002:
user1:x:1003:
user2:x:1004:
user3:x:1006:
user4:x:1007:
user5:x:1008:
admin:x:1009:user1,user2,user3

3.user01用户在其家目录里创建file1~file3三个文件
[root@huislee home]# su - user1
[user1@huislee ~]$ touch file{1..3}

4.user02用户编辑/home/user01/file1文件的内容:good good study,day day up!
(先让user2进入到user1家目录再修改user1家目录中file1文件权限)
[root@huislee home]# su - user1
[user1@huislee ~]$ touch file{1..3}
[user1@huislee ~]$ ll
总用量 0
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file1
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file2
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file3
[user1@huislee ~]$ exit
注销
[root@huislee home]# su - user2
[user2@huislee ~]$ cd /home/user1
-bash: cd: /home/user1: 权限不够
[user2@huislee ~]$ ll -d /home/user1
drwx------. 3 user1 user1 138 10月 31 17:36 /home/user1
[user2@huislee ~]$ exit
注销
[root@huislee home]# su - user1
[user1@huislee ~]$ chmod o+rx .
[user1@huislee ~]$ ll -d .
drwx---r-x. 3 user1 user1 138 10月 31 17:36 .
[user1@huislee ~]$ exit
注销
[root@huislee home]# su - user2
[user2@huislee ~]$ cd /home/user1
[user2@huislee user1]$ ll
总用量 0
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file1
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file2
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file3
[user2@huislee user1]$ echo "good good study,day day up!" > file1
-bash: file1: 权限不够

[root@huislee home]# su - user1
[user1@huislee ~]$ chmod o+w file1
[user1@huislee ~]$ ll
总用量 0
-rw-rw-rw-. 1 user1 user1 0 10月 31 17:35 file1
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file2
-rw-rw-r--. 1 user1 user1 0 10月 31 17:35 file3
[user1@huislee ~]$ exit
注销
[root@huislee home]# su - user2
[user2@huislee ~]$ echo "good good study,day day up!" > file1
[user2@huislee ~]$ cat file1
good good study,day day up!
[user2@huislee ~]$

5.user04用删除/home/user01家目录的所有文件
[root@huislee home]# su - user4
[user4@huislee ~]$ rm -rf /home/user1/*
rm: 无法删除'/home/user1/file1': 权限不够
rm: 无法删除'/home/user1/file2': 权限不够
rm: 无法删除'/home/user1/file3': 权限不够
[user4@huislee ~]$ exit
注销
[root@huislee home]# su - user1
[user1@huislee ~]$ ll -d .
drwx---r-x. 3 user1 user1 138 10月 31 17:36 .
[user1@huislee ~]$ chmod o+w .
[user1@huislee ~]$ ll -d .
drwx---rwx. 3 user1 user1 138 10月 31 17:36 .
[user1@huislee ~]$ exit
注销
[root@huislee home]# su - user4
[user4@huislee ~]$ rm -rf /home/user1/*
[user4@huislee ~]$ ls /home/user1/
[user4@huislee ~]$

三、文件的属主和属组
㈠ 如何查看文件的属主和属组

这里是引用

㈡ 如何修改文件的属主和属组
1、chown命令修改
chown 命令既可以修改文件的属主,也可以修改文件的属组。

 只修改文件的属主
>  #  chown 用户名 文件名 
>  修改文件的属主和属组 
>  # chown 用户名.组名 文件名 
>  # chown 用户名:组名 文件名 
>  # chown 用户名. 文件名 //没有指定组名,默认是用户的主组 
>  只修改文件的属组
>   # chown .组名 文件名 
>   # chown :组名 文件名 
>   
>   可以加-R选项,表示递归修改

2、chgrp命令修改
chgrp 命令只能修改文件的属组

# chgrp 组名 文件名

任务实施
一、创建目录在跳板机

# mkdir /data/code -p

二、目录做好权限管控
1、该目录只给开发人员使用

# ll -d /data/code/ 
drwxrwx---. 2 root coding 58 8月 1 22:18 /data/code/

2、开发所有人只能自己管理自己

测试结果: 开发部门的人可以删除其他人的文件,不满足需求,怎么办? 普通权限无法满足我们的需求,尝试使用高级权限解决 
chmod o+t /data/code
[root@huislee home]# ls
hui  huislee  lee  user1  user2  user3  user4  user5
[root@huislee home]# mkdir /data/code -p
[root@huislee home]# ll -d /data/code/
drwxr-xr-x. 2 root root 6 10月 31 17:55 /data/code/
[root@huislee home]# id hui
uid=1001(hui) gid=1001(hui)=1001(hui),1005(coding)
[root@huislee home]# id lee
uid=1002(lee) gid=1002(lee)=1002(lee),1005(coding)
[root@huislee home]# chgrp coding /data/code/
[root@huislee home]# chmod g+w /data/code/
[root@huislee home]# ll -d /data/code/
drwxrwxr-x. 2 root coding 6 10月 31 17:55 /data/code/
[root@huislee home]# chmod o-rx /data/code/
[root@huislee home]# ll -d /data/code/
drwxrwx---. 2 root coding 6 10月 31 17:55 /data/code/
[root@huislee home]# su - hui
[hui@huislee ~]$ mkdir a
[hui@huislee ~]$ ls
a
[hui@huislee ~]$

扩展补充
一、高级权限(了解)
㈠ 高级权限有哪些

这里是引用
[root@huislee code]# ll /usr/bin/vim
-rwxr-xr-x. 1 root root 3096552 12月 6 2018 /usr/bin/vim
[root@huislee code]# chmod u+s /usr/bin/vim
[root@huislee code]# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 3096552 12月 6 2018 /usr/bin/vim
[root@huislee code]# vim /data/code/lee
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值