运维基础--用户的权限管理

我们使用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,就要在已经确定目标文件的使用权限以后再进行设置;

时间: 2024-10-10 09:47:44

运维基础--用户的权限管理的相关文章

Linux运维基础-系统管理之权限管理

用户和组 用户userLinux用户:username/uid管理员:root,0普通用户:1-65535系统用户:1-499(cetnos6)1-999(centos7)组groupLinux组:groupname/gid管理组:root,0系统组:1-499(centos6)1-999(centos7)普通组:500+(centos6),1000+(centos7) 组的类别主要组:一个用户只允许一个主组附加组:一个用户可以属于零个或多个附加组命令:id 后跟用户名可以查看用户id和组 用户

Linux之小基础-用户和权限管理

一.何为Linux用户: Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 二.用户的分类: Unix/Linux系统中有两类用户超级用户(root)和一般用户

TimesTen修改CacheGroup管理用户在ORACLE端及TT端密码【TimesTen运维基础】

密码管理一直是运维中安全管理的一部分,CacheGroup管理用户密码的修改虽然不复杂,但是对于生产来说,修改不完善比较容易引发故障.这里介绍一下CacheGroup管理用户密码的修改,便于入门的兄弟学习. 1.在主备节点修改sys.odbc.ini配置文件 $ cd $TT_HOME/info $ vi sys.odbc.ini [$DSN] OracleNetServiceName=ORA11G OraclePWD=cgpasswd        ##此处即修改后的密码 2.停掉主备节点Ca

Linux运维 第四阶段 (五) MySQL用户和权限管理

Linux运维 第四阶段 (四)MySQL用户和权限管理 1.相关概念: >mysql用户: 类似VSFTPD虚拟用户: 密码,自己独有的加密机制,PASSWORD函数: 用户名@主机: 用户名16字符以内,主机(主机名.IP.网络地址.通配符(%,_): --skip-name-resolve(跳过名称解析,可提高用户连接速度) 账号是用来认证的: >RENAME USER  'old_name'@'host'  TO  'new_name'@'host;  (重命名用户) >权限,授

网络配置——Linux运维基础

今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自己,Linux网络配置的那个文件路径是什么.突然间小心脏又绷紧了,我发现记忆已经開始模糊了.尽管陆续有把之前运维的笔记整理上来,可是每次都有种写遗书的淡淡地忧伤在里面.突然间又想暴粗口了..... 一.网络基本配置 首先就是/etc/sysconfig/network-scripts/ifcfg-e

Linux的用户和权限管理

欢迎大家来到我的博客,首先声明此文是我的***作:若文中有不当之处,还请各位前辈大神多多指点,小生在这里先谢过了.生活总有各种不如意,对我来说眼前的一切就是最好的安排:说实话我并不是很喜欢软件这个专业,我是一个文科男,软件世界里的沟沟坎坎对我来说走起来真的有些吃力,来到大学莫名其妙的进了这个专业,成了IT大海里一个小石头.没办法,既来之则安之:唯有迎头向前才能彰显我辈精神啊:大学毕业我这个小石头便阴差阳错的接触到了软件运维这个行业,带着满满的信心怀揣着美好的前景我加入的Linux培训的大军.这不

Linux 运维基础

运维基础主要包括linux入门.文件管理和重定向.用户组权限.文本处理和软件管理等. linux入门:这方面比较简单,主要介绍Linux发展历史.获取方法.Bash和一些简单的命令等.这里就不过多赘述了. 文件管理和重定向:linux的系统结构和Windows有很大差别,在Linux系统中,可以说一切皆文件.包括:普通文件,目录文件,字符设备文件,块设备文件,符号链接文件等等.文件系统的常用操作:cd, pwd, ls, stat, touch, cp, mv, rm文件系统中文件的常用操作:c

Java架构师成长之道之RabbitMQ开发与运维-基础篇(CSDN版)

Java架构师成长之道之RabbitMQ开发与运维-基础篇(CSDN版) Java架构师成长之道 消息中间件概述 消息是指在不同语言实现的应用间传递的数据,消息可以是文本字符串.JSON,也可以是复杂的内前对象. 消息中间件是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通讯来进行分布式系统集成. 通过提供消息传递和消息排队模型,使得在分布式环境下扩展进程间的通讯. 消息中间件一般有两种传递模式:点对点模式和发布/订阅模式. 点对点是基于队列的,消息生产者将消息发送到消息队列,

用户的权限管理

用户的权限管理: 1, 普通权限 2,特殊权限 3,文件的特殊属性 4,FACL权限机制 普通权限: 进程安全上下文: 1,判断进程的所者是否为想要操作的文件的属主,若是,就按照属主的权限进行授权,若不是,就转到第二条. 2,判断进程的所有者是否为想要操作的文件的属主中的成员,如果是,就按照属主的权限进行授权,如果不是,转第三条. 3,按照其他用户的权限进行授权. 权限的构成: NODE:使用权 r:可读 w:可写 x:可执行 目录: r:可使用ls命令获得其中所有文件名的列表:ls-l命令来获