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

在了解权限管理之前先创建一些用户和用户组便于后续学习,在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. NOIp2021 原地退役记

    JS-0013 Day -2 - 2021.11.17 打了场 cmd_blk 出的模拟赛,T2 T3 都是做过的原题(AGC010C & ARC092D),于是直接摆烂交暴力垫底,成功为我的 ...

  2. Codeforces 559E - Gerald and Path(dp)

    题面传送门 真·难度 *3000 的 D1E hb 跟我们说"做不出来不太应该". 首先我们将所有线段按 \(a_i\) 从小到大排序,一个很显然的想法是 \(dp_{i,j,d} ...

  3. P3722 [AH2017/HNOI2017]影魔(单调栈+扫描线+线段树)

    题面传送门 首先我们把这两个贡献翻译成人话: 区间 \([l,r]\) 产生 \(p_1\) 的贡献当且仅当 \(a_l,a_r\) 分别为区间 \([l,r]\) 的最大值和次大值. 区间 \([l ...

  4. Hermite WENO 重构格式

    Hermite WENO 单元重构 本文主要介绍采用 Hermite WENO 重构方法作为斜率限制器应用于二维或高维单元中. 1.简介[1] ENO格式最早由 Harten 等[2]提出,ENO格式 ...

  5. [linux] mv: cannot move $ to $: Directory not empty

    最近测试某流程时,跑的过程报错了,于是检查脚本修改后重新测试.脚本是改过来了,但在shell中运行某步时碰到了如题报错! $ mv MP_genus_network_files/ tax_networ ...

  6. 32-3Sum

    相似题目 4sum http://blog.csdn.net/justdoithai/article/details/51195124 http://blog.csdn.net/justdoithai ...

  7. 开始读 Go 源码了

    原文链接: 开始读 Go 源码了 学完 Go 的基础知识已经有一段时间了,那么接下来应该学什么呢?有几个方向可以考虑,比如说 Web 开发,网络编程等. 在下一阶段的学习之前,写了一个开源项目|Go ...

  8. 禁止点击、禁止button触发【c#】

    bts.Attributes["onclick"] = "return false; ";

  9. javaWeb - 2 — ajax、json — 最后附:后台获取前端中的input type = "file"中的信息 — 更新完毕

    1.ajax是什么? 面向百度百科一下就知道了,这里就简单提炼一下 Ajax即Asynchronous Javascript And XML(异步JavaScript和XML).当然其实我们学的应该叫 ...

  10. 这份github上被14万人点赞的Java教程太强了

    前几天有个小伙伴加我之后问了下面的这个问题.我看到后是一脸懵逼的状态,jcombobox?实话说,我已经完全忘了在Java中还有这么个东西. 在网上一番搜索后,才发现原来它是 swing 中的下拉列表 ...