用户、用户组与文件的关系

在了解权限管理之前先创建一些用户和用户组便于后续学习,在root用户下操作:

# 创建两个用户组
[root@localhost data]# groupadd kaifa
[root@localhost data]# groupadd ceshi # 创建三个用户,指定他们进入的用户组
[root@localhost data]# useradd -g kaifa zhangsan
[root@localhost data]# useradd -g kaifa lisi
[root@localhost data]# useradd -g ceshi wangwu # 设置三个用户的密码,这里我统一设置为123
[root@localhost data]# passwd zhangsan
[root@localhost data]# passwd lisi
[root@localhost data]# passwd wangwu

登录张三用户,在~目录中创建一个1.txt文件,关系如下图所示

[zhangsan@localhost ~]$ touch 1.txt
[zhangsan@localhost ~]$ ls
1.txt

环境已经模拟好了,现在分析一下1.txt文件和这几个用户之间的关系:

  • 张三创建了这个文件,那么张三就是该文件的所有者

  • 张三创建了这个文件,同时张三属于开发组,那么这个文件也属于开发组,开发组下除了张三还有李四,那么李四就是同组的用户

  • 王五既不是文件的所有者,和文件也不属于同一个组,那么对于文件来说王五就是其他组的用户

如果不知道该文件的所有者是谁,属于哪个组,可以用ls -l或者ll命令来查看

通过分析可得知,文件与用户可以有三种关系:所有者、同组,其他组,请务必牢记这三种关系,他与权限有着密切的关联

权限的基本知识

权限代表着用于对文件/文件夹操作的控制,可以控制用户是否有权利查看文件、修改文件以及执行文件

如何查看权限信息

详细的权限信息,在我们使用ll命令的时候就可以看到,列表的第一列就代表权限信息

可以发现他给出的权限信息为-rw-r--r--,完整的权限信息是由四部分组成,将他们拆开后如下所示

后面的三组就不细说了,结合之前说的就能理清,这里介绍下第一位文件类型,简单创建几个文件观察首位的变化

如果是文件夹,首位就是d,如果是文件首位就是-,如果是软连接首位就是l...... 更多的这里就不细说了
[zhangsan@localhost ~]$ touch 1.txt
[zhangsan@localhost ~]$ mkdir -p files/1/2/3
[zhangsan@localhost ~]$ ln -s files/1/2/ 3
[zhangsan@localhost ~]$ ll
总用量 0
-rw-r--r--. 1 zhangsan kaifa 0 12月 22 16:35 1.txt
-rw-r--r--. 1 zhangsan kaifa 0 12月 22 16:35 2.txt
lrwxrwxrwx. 1 zhangsan kaifa 10 12月 22 16:34 3 -> files/1/2/
drwxr-xr-x. 3 zhangsan kaifa 15 12月 22 16:33 files

现在回过头来看1.txt的权限信息-rw-r--r--,首先通过首位可以看出他是一个普通文件,接下来分析一下他的权限信息

  • zhangsan作为所有者,可以对文件进行查看和编辑

  • lisi与文件属于同一个组,可以对文件进行查看操作

  • wangwu属于其他组,同样可以对文件进行查看

然后切换到/home目录,再查看该目录下的文件夹的权限信息

[zhangsan@localhost ~]$ cd /home
[zhangsan@localhost home]$ ll
总用量 0
drwx------. 3 lisi kaifa 78 12月 22 14:24 lisi
drwx------. 3 wangwu ceshi 78 12月 22 14:24 wangwu
drwx------. 6 zhangsan kaifa 155 12月 22 16:35 zhangsan

之前说过每个目录代表着一个用户,而每个目录的权限都为drwx------,也就是说除了目录所有者之外任何人都没有权限查看该目录,这也就解释了为什么不能查看其他用户目录的问题

权限信息在文件/文件夹上的作用

权限信息在文件和在文件夹上起到的作用分别是不一致的,具体如下

当目标是一个文件时:

  • r 可以控制是否有权限查看该文件的内容

  • w 可以控制是否有权限修改文件的内容,需要注意的是就算有修改权限也并不代表可以删除该文件,判断一个文件是否允许被删除需要观察该文件所在的目录的权限信息

  • x 可以控制是否拥有执行文件的权限

当目标是一个目录时:

  • r 可以控制是否有权限移动到该目录下,是否有权限查看目录下的文件

  • w 可以控制是否有权限增删目录下的文件

  • x 可以控制是否拥有执行文件的权限

修改权限信息

由于修改权限信息本身需要的权限较大,这里建议在root用户下进行操作,在修改权限信息之前先看一眼这个表格的内容

中文解释 英文全拼 简写字母 权限数字
可读 read r 4
可写 write w 2
可执行 execute x 1

设置权限信息

权限包含可读、可写、可执行三种操作,而所有者、同组、其他组又分别有着各自的权限,那么修改权限就是围绕着这几个基本属性进行设置的

设置权限信息的命令使用方法为chmod [权限信息] [目标文件/文件夹],看一下下面这行命令

# u=rw:u的全拼为user所有者,所有者拥有r读和w写的权限
# g=r:g的全拼为group同组,同组拥有r读的权限
# o=r:o代表other其他组,其他组拥有r读的权限
[root@localhost zhangsan]# chmod u=rw,g=r,o=r 1.txt # 所有者拥有所有权限,本组拥有读写全选,其他组拥有读权限
[root@localhost zhangsan]# chmod u=rwx,g=rw,o=r 1.txt # 所有者保持不变,同组只能读,其他组只能读
[root@localhost zhangsan]# chmod g=r,o=r 1.txt

修改权限信息

除开使用等号来设置权限之外,还可以使用加号和减号来修改权限,如下

# 本组设置只读的权限
[root@localhost zhangsan]# chmod g=r 1.txt # 本组添加执行的权限
[root@localhost zhangsan]# chmod g+x 1.txt # 其他组添加修改和执行的权限
[root@localhost zhangsan]# chmod o+wx 1.txt # 其他组移除修改和执行的权限
[root@localhost zhangsan]# chmod o-wx 1.txt # 本组添加读的权限移除执行的权限
[root@localhost zhangsan]# chmod g+w-x 1.txt

数字方式设置权限信息

除开上面的两种方法之外,还可以使用数字代表权限信息,上面的表格中记录了每个权限代表的数字,将需要赋予的权限的数字相加就可以了

数字设置权限的命令使用规范为chmod [所有者权限][同组权限][其他组权限],如下所示

# 所有者有读写的权限(4+2),同组与其他组有读的权限(4)
[root@localhost zhangsan]# chmod 644 1.txt # 所有者有读写执行的权限(4+2+1),同组有读的权限(4),其他组没有任何权限(0)
[root@localhost zhangsan]# chmod 740 1.txt # 所有者、同组、其他组全部拥有所有权限(4+2+1)
[root@localhost zhangsan]# chmod 777 1.txt

修改文件所有者以及文件所有组

文件的操作全选与所有者和所有组有着密切的关系,可以通过ll命令查看这些信息,当然这些信息也可以修改

# 修改文件所有者为wangwu
[root@localhost zhangsan]# chown wangwu 1.txt # 修改文件所在组为测试
[root@localhost zhangsan]# chgrp ceshi 1.txt

需要注意的是修改文件所有者后,文件所在组并不会随着所有者的改变而改变,想要修改文件所在组需要手动执行命令才可以进行修改

CentOS7学习笔记(六) 用户权限管理的更多相关文章

  1. PostgreSQL学习之【用户权限管理】说明

    背景 最近在学习PostgreSQL,看了用户权限管理文档,涉及到的知识点比较多,顺便写篇文章进行整理并不定时更新,也方便自己后续进行查阅. 说明 注意:创建好用户(角色)之后需要连接的话,还需要修改 ...

  2. MySQL学习笔记二:权限管理

    1. 创建和删除用户,mysql中的用户是由用户名和主机名来确定的 create user "user_name@host_name" identified by passwd; ...

  3. linux学习笔记二-----文件权限管理

    一.分析文件权限(ln -s 文件名 快捷方式名 用来创建文件的快捷方式,下方ll查看信息时会在第一个字符处显示l) [hjp@bogon ~]$ ll total 4 drwxrwxr-x. 2 h ...

  4. MySql 在cmd下的学习笔记 —— 有关用户权限的操作(grant)

    用户连接到MySQL时: [用户]   <---->   [服务器] 分为2个阶段: 1:有没有权限连接: 2:有没有执行此操作的权利.(如select, update……) 判断依据:( ...

  5. Linux学习笔记(六) 进程管理

    1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...

  6. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  7. 一文带你学习DWS数据库用户权限设计与管理

    前言 本文将介绍DWS基于RBAC(Role-Based Access Control,基于角色的访问控制)的数据库用户权限管理.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成 ...

  8. ClickHouse学习系列之二【用户权限管理】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...

  9. Liunx学习笔记(三) 文件权限

    一.文件权限 1.查看文件权限 (1)文件权限 在 Linux 中对于文件有四种访问权限,列举如下: 可读取:r,Readable 可写入:w,Writable 可执行:x,Execute 无权限:- ...

随机推荐

  1. ISIJ2021 游记

    Day -419 ~ ? - 2020.5.8 ~ ? 咦?ISIJ2021 怎么会扯到 2020 年的事情呢? 好吧这似乎真的是一个长篇大论,事情真的要从那一天开始讲起-- 仍依稀记得 2020 年 ...

  2. [Cnoi2020]线性生物

    期望入门题.但是我不会做. 考虑设\(E_{x\to{x+1}}\)为\(x\)到\(x+1\)点的期望步数. 则\(ans = \sum_{i = 0}^{n} E_{x\to{x+1}}\) 知\ ...

  3. 洛谷 P4931 - [MtOI2018]情侣?给我烧了!(加强版)(组合数学)

    洛谷题面传送门 A 了这道题+发这篇题解,就当过了这个七夕节吧 奇怪的过节方式又增加了 首先看到此题第一眼我们可以想到二项式反演,不过这个 \(T\) 组数据加上 \(5\times 10^6\) 的 ...

  4. 快速傅里叶变换(FFT)随笔

    终于学会了FFT,水一篇随笔记录一下 前置知识网上一大堆,这里就不多赘述了,直接切入正题 01 介绍FFT 这里仅指出FFT在竞赛中的一般应用,即优化多项式乘法 一般情况下,计算两个规模为$n$的多项 ...

  5. chown & chmod用法

    chown & chmod 1. chown更改文件的属主&属组 NAME chown - 改变文件的属主和属组(change file owner and group) 用法 cho ...

  6. LearnPython_week4

    1.装饰器2.生成器3.迭代器4.内置方法5.可序列化6.项目规范化 1.装饰器 # -*- coding:utf-8 -*- # Author:Wong Du ### 原代码 def home(): ...

  7. keepalived+nginx安装

    安装keepalived+nginx做为公司服务器前端高可用反向代理安装nginx 1.yum install -y pcre pcre-devel gcc-c++ zlib zlib-devel o ...

  8. 微信小程序扫描普通二维码打开小程序的方法

    很久没有写博客了,之前换了一份工作,很久没有做Android开发了,现在转做前端开发了,记录一下遇到的问题及解决的方法. 最近做微信小程序开发,遇到一个需求,后台管理系统生成的问卷和投票会有一个二维码 ...

  9. c/c++在线编译Output Limit Exceeded(OLE)错误

    提示输出错误,有如下两个可能情况: 1. 不符合题目给出的输出格式,自己输出了多余的内容或者格式不正确 2. 输入数据的时候,未考虑到输入错误的情况 针对2,有如下的例子: 错误的情况: 1 int ...

  10. 利用python爬取城市公交站点

    利用python爬取城市公交站点 页面分析 https://guiyang.8684.cn/line1 爬虫 我们利用requests请求,利用BeautifulSoup来解析,获取我们的站点数据.得 ...