我们使用Linux操作系统的过程中,必然存在对有限资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立、合理的使用计算机,那么Linux采用的用户权限的管理机制是怎么样的呢?

首先,用户的权限有四个部分:普通权限、特殊权限、文件的特殊属性以及FACL--文件访问控制列表;

一、普通权限:

在用户与群组中,我们提到了进程安全上下文(Secure Context),这里做一个回顾:

进程运行的过程:

1.判断进程的所有者是否为想要操作的文件的属主,如果是就按照属主的权限进行授权,如果不是,转2

2.判断进程的所有者是否为想要操作的文件的属组中的成员,如果是 就按照属组的权限进行授权,如果不是 转3

3.按照其他用户的权限进行授权。

这里所涉及到的授权,就是对用户进行权限的分配,那么权限到底是个什么东东呢?

linux权限机制采用UGO模式。其中 u(user)表示所属用户、g(group)表示所属组、o(other)表示除了所属用户、所属组之外的情况。权限的构成是MODE+OWNERSHIP,即使用权和所有权;

★MODE(Permisson):使用权,包括三个部分(rwx 可读可写可执行)

--对于目录来说:

r:代表可以使用ls命令获取其中所有的文件名的列表;

注意:不能使用 ls -l 命令获取目录中文件的详细属性信息,也不能用cd进入其中,也不能在          路径中引用该目录;

w:表示可以修改此目录中的文件名或者文件名列表,即:可以在此目录中增删改文件名;

x:可以使用ls -l获取文件的详细属性信息;****

这里的 x权限是目录的最基本的权限,即任何目录都必须对任和用户开放x权限,不然的话用户

将无法对该目录进行任何操作,没错,任何操作都不可以!所以说x权限很基本也很重要。

--对文件来说:

r:可以查看或者获取文件存放的数据

w:可以修改文件存放的数据

x:可以将此文件发起运行为进程;

在文件的详细属性信息中:我们会看到这样的一个字段

rw-r--r--  我们把这三组称为三个权限位,分别代表属主,属组,其他用户的权限,- 代表不具备r/w/x的权限;

我们可以用八进制 0-7分别表示权限位的分配情况

权限标识三元组:

--- 000  0

--x 001  1

-w- 010  2

-wx 011  3

r-- 100  4

r-x 101  5

rw- 110  6

-wx 111  7

举个例子~ rwxr-xr-x --> 111101101--> 755

了解了权限的构成,下面介绍有关使用权的管理命令:

修改使用权的命令:chmod

1.chmod [option]... MODE[,MODE]... FILE... 符号表示法进行权限修改

MODE 表示符号权限的标识

u,g,o,a表示所有权,a是all 全部用户

用+,-,= 加上具体权限rwx

+:在原有的权限基础上增加新的权限

-:在原有的权限基础上去除某些权限

=:不考虑原有的权限,直接将权限设置为目标权限

例如 chmod u+w FILE; chmod g+rw FILE; chmod u+x,g+wx,o-x FILE ......

chmod +x file 默认的为a添加,即所有用户 添加可执行的权限

chmod +w file 默认的只为属主添加写权限

注意:能不能删除某文件,主要查看登录用户是否对该文件所在的目录有w权限

再次强调,文件的执行权限,对linux系统而言是非常重要的安全标识; 因为一旦文件具备了执行权限,意味着该文件可以被发起直行为进程,所以默认情况下文件都不具备执行权限;

2.chmod [option]... OCTAL -MODE FILE

八进制数字标识,每次必须给足所有的权限位;如果给的权限位不完整,文件系统会自动补足,将给定的权限放在最右侧,左侧用0补足;

例如 chmod 640 file

3.chmod --reference=/PATH/TO/FILE DES_FILE

这是一个仿照某个文件的权限设置给指定文件设置权限的命令;

例如  chmod --reference=a b

【选项】:

-R,--Recursive:将目标目录的文件及子目录及子目录中的文件统一设置为指定的权限标识;

★OWNERSHIP:所有权 ugo

属主:资源掌控的某个特定用户:owner(user)--u

属组:资源掌控的某些特地用户;group--g

其他用户:未曾掌控资源的用户;other--o

全部用户 all--a

所有权比较好理解,前面也稍微提到过;所以直接来介绍它的相关命令:

①chown : 修改文件的属主和属组

用法:chown [opt]... [owner][:[group]] FILE

chown OWNER FILE

chown :GROUP FILE

chown OWNER: FILE // 将目标文件的属主改为owner 同时将属组修改为ower的基本组

chown OWNER:GROUP FILE // 属主和主组改为OWNER和GROUP;

chown [opt]... --reference=RFILE FILE...

【选项】

-R,将目标目录的文件及子目录及子目录中的文件统一设置为指定的所有权;

注意:修改OWNERSHIP操作只有root可以完成

②chgrp:只用来修改文件的所属组

##这里补充两个小命令

1.install命令:

安装:复制文件并给文件增加执行权限;

单源复制:

install [options] [-s] [--strip] source dest

多源复制:

install [options] [-s] [--strip] source... directory

创建目录:

install [options]... -d DIR

【常用选项】

-m:指定目标文件的权限,默认755

-o:设定目标文件的属主;仅超级用户可用;

-g:设定目标文具店的属组;仅超级用户可用;

注意:此命令不能复制目录,即其源不能是目录,如果源是目录,则install会进入目录,依次复制其中的所有非目录文件到目标位置;

2.mktemp:创建临时文件

一般来讲,临时文件到会创建在/tmp或/var/tmp,无需手动删除,系统会定期自动清除这两个目录的文件;

-d,--directory:可以创建临时目录;

例: mktemp /PATH/TO/TMP.XXXXXXX(至少三个X) [-d] X越多,碰撞的几率就越小

二、特殊权限--SUID SGID STICKY

默认情况下,用户发起执行一个进程,该进程的属主是其发起者,也就是说,该进程是以其发起者的身份在运行

1.SUID:

 功能:用户发起执行一个进程时,该程序文件如果拥有SUID权限,那么此程序发起的进程,其属主为该程序文件的属主而不是其发起者;

suid权限所显示的位置在文件的属主权限中的执行权限位; 如果属主本来就有执行权限,显示为s,否则显示为S;

管理文件的SUID权限,例如chmod u+|-s FILE...

2.SGID:

功能:如果某个目录对于一些用户有写权限,并且设置了SGID,则所有对此目录有写权限的用户在创建新文件或目录以后,新文件或目录的属组不再是创建用户的基本组而是继承该目录的属组;

SGID权限显示的位置 在文件的属组权限中的执行权限位;如果属组本来有执行权限,显示为s,否则显示为S;

管理文件的SGID权限 例如 chmod g+/-s FILE...

3.STICKY:粘滞位

如果某个目录中,超过一个用户有写权限,则这多个用户都可以在该目录中随意增删改文件名;

功能:如果为上述类似的目录设置了STICKY权限,则每个用户仍旧能够在这类目录里创建、修改文件名,但是,每个用户只能删除那些属主为其自身的文件名;

位置显示在文件权限的其他用户权限中的执行权限位,如果原来有执行权限,显示为t,否则显示为T;

管理文件的STICKY权限 例如chmod o+/-t FILE...

suid  sgid  sticky的三个特殊权限也可以视作一个 三元组

---  000  0

--t  001  1

-s-  010  2

-st  011  3

s--  100  4

s-t  101  5

ss-  110  6

sst  111  7

特殊权限的另一种修改方式:

将特殊权限对应的八进制数字放置于普通权限八进制数字的前面即可

例如:给某个目录加上粘滞位

chmod 1755 DIR

umask

权限遮罩玛:在创建文件或者目录的时候默认的权限生成标准

root:0022

第一个0表示不考虑特殊权限位,

对于新建文件或目录,不遮挡属主的任何权限,但是遮挡了属组的写权限。和其他用户的写权限

mkdir test --> rwxr-xr-x 755

touch test.txt --> rw-r--r-- 644

理解遮罩码,将遮罩码的值变成二进制,凡是有1的位置,在创建文件时 这个权限位不予设置;

默认情况下,文件的遮罩码已经有了一个0111 在此基础上再次应用umask来遮罩权限;

三、.文件的特殊属性:

查看文件的特殊属性

lsattr命令:

显示文件在Linux第二扩展文件系统上的特有属性

lsattr [ -RVadv ] [ files...  ]

修改设置文件的特殊属性

chattr [ -RV ] [ -v version ] [ mode ] files...

mode:会使用+-=的方式来设置;

+:在原有属性设定的基础上,添加新的属性;

-:从原有属性设置中移除某些指定的属性;

=:不考虑原有属性设置,直接将文件的属性更新为指定的属性内容;

整个chattr最关键核心的设置就是mode部分

[aAcCdDeijsStTu]都是所需要的属性;

a:append; 设置这个属性的文件,其内容不能被更改和删除,只能以追加的方式向文件中写数据;

多数的服务器日志类文件会设置此属性

A:atime,  文件的访问时间戳;IO瓶颈

设置A属性时,可以使得文件在被访问时不更改文件的访问时间戳,从而可以有效的防止IO瓶颈的发生;

c: 设置文件是否自动压缩后再进行存储;

C:设置文件是否开启“写时复制”属性;

d:设置文件在使用dump进行备份的时候,不会成为备份目标;

D:设置文件在文件系统中的异步写错左;

i:设置文件不能被删除、修改、设定链接关系;只读!

s:设置文件的保密性删除,一旦设置了此属性的文件被删除,其对应存储设备中的使用空间会一并删除;

u:与s属性相反,如果这样的文件被删除,其存储于存储设备中的数据会被留存;

其中最常用的属性是i和a;

chattr +/-/= i FILE...

同样也有-R选项  递归的设置指定目录中的所有文件和子目录的特殊属性;

四、为文件赋予额外的权限机制:FACL file access control list(并不是每个文件系统都支持)

在原有的u,g,o权限位之外,让普通用户能够控制权限赋予另外用户和组的一种授权机制。CentOS7和RHEL7之后的发行版 逐渐成熟,CentOS5之前不支持;

与FACL有关的命令:

1.getfacl

etfacl [-aceEsRLPtpndvh] file ...

user:USERNAME:MODE

group:GROUPNAME:MODE

other::MODE

2.setfacl

setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...

acl_spec: acl_specification,指定的访问控制列表

u:USERNAME:MODE

g:GROUPNAME:MODE

MODE:一般使用符号权限标识法

为用户赋予额外权限:

setfacl -m u:USERNAME:MODE FILE ...

撤销为用户赋予的额外权限:

setfacl -x u:USERNAME

为组赋予额外权限:

setfacl -m u:GROUPNAME:MODE FILE ...

撤销为组赋予的额外权限:

setfacl -x u:GROUPNAME

注意:如果设置了facl之后再修改目标文件的使用权限,那么facl中设置的条目就可能会受到影响,而导致与要求不符;因此,如果真的需要设置facl,就要在已经确定目标文件的使用权限以后再进行设置;

转载于:https://blog.51cto.com/healerj9/1913942

运维基础--用户的权限管理相关推荐

  1. 【linux】循序渐进学运维-基础篇-文件权限管理

    写在前面: 博主是一名投身教培事业的标准八零后,叛逆而且追求自由,昵称取自于苏轼的<水调歌头>中的"高处不胜寒",时刻提醒自己要耐得住寂寞,受的了孤独,在技术的道路上, ...

  2. MySQL基础篇(07):用户和权限管理,日志体系简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...

  3. Linux系统基础-管理之用户、权限管理

    Linux用户.权限管理 ============================================= 一.如何实现"用户管理" 1.什么是用户 "User ...

  4. MySQL基础篇:用户和权限管理

    MySQL数据库之用户和权限管理 1.MySQL用户管理 相关命令 命令 说明 备注 create user htzw identified by 'ABC.123456' 创建名称为htzw的用户, ...

  5. mysql root 登录权限管理_MySQL基础教程(7)MySQL用户与权限管理

    在生产环境中通常不建议直接用数据库的root账号来管理每个数据库,这也是为什么安装好MySQL后root用户只能本地登录的原因.正确的做法是为每个业务建立独立的数据库,并且为这些数据库创建一个拥有合适 ...

  6. linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)

    运维 - linux(ubuntu) 环境变量管理 (持续更新) 注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包. 一, 查看环境变量: 方法 1 ...

  7. 运维基础(14)Mysql5.7 里4个数据库

    四个系统自带库是information_schema.mysql.performance_schema.sys: 5.6版本自带的库为:information_schema.mysql.perform ...

  8. 开放下载!《OSS运维基础实战手册》

    作为一名云运维工程师,在攻克OSS的道路上难免会遇到"天花板".放轻松,<OSS运维基础实战手册>帮你轻松解决!本书透彻解析OSS核心概念,十二心法打开全新运维视角,力 ...

  9. 620安装linux_Linux运维基础 Linux的quot;桑巴quot;

    一.了解samba: Samba是用于Linux和Unix的标准Windows互操作性程序套件. Samba是根据GNU通用公共许可证许可的自由软件,Samba项目是Software Freedom ...

最新文章

  1. tensorflow keras numpy 数据 规范化、标准化、归一化
  2. 不会被计算机打败的棋类游戏,电脑首次打败人类围棋冠军意味着什么?
  3. 动态滤波器卷积新高度!DDF resnet50精度提高1.9
  4. 【转】ABP源码分析三十四:ABP.Web.Mvc
  5. kingdee kis
  6. 全图化引擎(AI·OS)中的编译技术
  7. 【TDA4系列】芯片资源:处理器Processor Subsystems 与 加速器和协处理器Accelerators and Coprocessors
  8. 为什么要使用MVP架构
  9. 在html中函数无效,无法在按钮点击HTML中调用JavaScript函数
  10. 虚拟服务器不识别网银盾,电脑浏览器无法使用建行E路航网银盾的解决方法
  11. 办公自动化oa按计算机分类,办公室自动化oa按计算机分类属于什么
  12. 《Java语言程序设计与数据结构》编程练习答案(第三章)(三)
  13. 单片机 c语言 可控硅,单片机控制可控硅.doc
  14. MogaFX—ServiceNow的Bill McDermott正在关注货币汇率
  15. 浏览器中的垃圾回收机制
  16. 7-23 sdust-Java-学生成绩读取与排序 (10 分)
  17. 单点登录是如何实现的?
  18. 基金投资入门2:基金的风险等级
  19. Linux离线安装JDK1.8
  20. 直升机模拟器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. java 中文 转义_java html中文汉字 反转义
  2. 阶段面试题_关于文案、交易系统、付费渗透率、阶段性目标的面试题解答
  3. 实验代做 行人识别_《行人跨模态重识别 | 双向限制的排序损失》
  4. python重定向反爬虫_高效实用http爬虫代理ip之盘点一些网站的反爬虫机制
  5. 如何在 reducer 之间共享 state?
  6. 简述中断处理的6个步骤_计算机组成原理期末考试简答题重点分解
  7. centos7 如何重启web服务_如何重启web服务器
  8. python获取日期_python 获取日期
  9. 自组网中继台_家庭组网无线漫游方案--Mesh 组网
  10. 指定tomcat运行时的JDK版本