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

在了解权限管理之前先创建一些用户和用户组便于后续学习,在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. 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析

    问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...

  2. Codeforces 1553I - Stairs(分治 NTT+容斥)

    Codeforces 题面传送门 & 洛谷题面传送门 u1s1 感觉这道题放到 D1+D2 里作为 5250 分的 I 有点偏简单了吧 首先一件非常显然的事情是,如果我们已知了排列对应的阶梯序 ...

  3. Matlab流体后处理中的奇淫巧术总结

    Matlab流体后处理中的奇淫巧术总结 主要参考\demos\volvec.m示例 1.等值面绘制 %% Isosurface of MRI Data cla load mri D = squeeze ...

  4. 【讲座】朱正江——基于LC-MS的非靶向代谢组学

    本次课程主题为<基于LC-MS的非靶向代谢组学>,主要分为代谢组学简介.代谢组学技术简介.非靶向代谢组学方法和数据采集.非靶向代谢组学数据分析和代谢物结构鉴定几个方面. 一.代谢组简介 基 ...

  5. Python与Perl的相似与差别

    Python version 3.7版本 00.命令行交互 命令行交互 Perl Python perl -e <Perl代码>     #Unix/Linux/Windows/DOS 直 ...

  6. CPF C#跨平台UI框架发布安卓端预览版

    CPF的安卓端适配采用Xamarin的安卓绑定库,而不是Xamarin.Form.CPF和flutter差不多,完全由skia绘制,基本不依赖原生控件. 当前还只是预览版,不建议用在正式项目中. 可能 ...

  7. python-3.x- 序列操作

    1. list操作 A.添加元素 1 list = ["C++","C", "Java", "Python"] 2 &q ...

  8. 学习java的第十五天

    一.今日收获 1.完成了手册第二章没有验证完成的例题 2.预习了第三章的算法以及for语句与if语句的用法 二.今日难题 1.验证上出现问题,没有那么仔细. 2.第二章还有没有完全理解的问题 三.明日 ...

  9. abundant

    In ecology [生态学], local abundance is the relative representation of a species in a particular ecosys ...

  10. Oracle—全局变量

    Oracle全局变量 一.数据库程序包全局变量       在程序实现过程中,经常用遇到一些全局变量或常数.在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降 ...