暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

​RSCHA认证第八讲利用Linux文件系统权限控制文件访问

北漂悟道之路 2019-08-17
354



RH124系列课程的目标:
1、获得 Redhat 或者 centos 上执行核心系统管理任务所需的足够技能。
2、掌握 RHCSA 认证红帽企业 Linux 系统管理员所需的基本技能。

本章的目标:权限控制文件访问。

利用命令行工具更改文件的权限和所有权。
配置目录,使其中新创建的文件可自动由拥有该目录的组的成员利用特殊权限和默认umask设置进行写入。

从命令行管理文件系统权限

更改文件/目录的权限

用于从命令行更改权限的命令为chmod,是“change mode(更改权限)”的简称(权限也称为文件的模式)。chmod 命令在要更改的文件或目录列表后面列出了权限说明。可使用符号(符号法)或数值(数值法)来发布此权限说明。

chmod whowhatwhich file|directory

  • who 是指 u、g、o、a(代表用户、组、其他、全部)

  • what 是指+、-、=(代表添加、删除、精确设置)

  • which 是指r、w、x(代表读取、写入、执行)
    更改文件权限的符号法使用字母代表不同的权限组:u表示用户、g表示组,o表示其他,a表示全部。
    使用符号法时,不需要设置一组全新的权限。+ 可将权限添加的权限集,-可从权限集删除权限,而=则可以替换一组权限的整个权限集。
    权限自身由单个字母来表示:r表示读取,w表示写入,x表示执行。

数值法

chmod ### file|directory

  • 每个数字代表一个访问权限:用户、组和其他。

  • #是 r = 4、w = 2和x = 1的和。
    检查权限 -rwxr-xr--。对于用户,rwx 计算为 4+2+1 = 7,对于组 ,r-x计算为 4+0+1 = 5,而对于其他用户,r-- 用 4表示。将这三个数放在一起,这些权限的数值表示为754。

更改文件/目录的用户或组所有权

新建的文件由创建该文件的用户所有。
使用chown 命令 可更改文件所有权。例如,要将文件foofile的所有权授予给 student,可使用以下命令:

chown student foofile

chown 可与 -R 选项配合使用,以递归更改整个目录树的所有权。以下命令可将foodir的所有权以及此目录树中的所有文件和子目录授予给 student:

chown -R student foofile

chown 命令也可用于更改文件的组所有权,只需在组名称前加上冒号(:)。例如,下列命令将foodir 组更改为 admins。

chown :admins foodir

chown 命令也可用于同时更改所有者和组,此时可使用语法 owner:group。例如,要将 foodir的所有权更改为 visitor,同时将组更改为guests,可使用以下命令:

chown visitor:guests foodir

注意
除了使用 chown 外,部分用户通过 chgrp 命令更改组所有权;此命令的工作方式与通过chown 命令更改所有权完成相同,也是使用 -R 选项来作用于整个目录树。

管理默认权限和文件访问

特殊权限

对可执行文件的 setuid (或 setgid) 权限表示将以文件的用户(或组)身份运行命令,而不是以运行命令的用户身份。



在长列表中,您可以通过小写的s辨别出setuid权限,该处通常是x(所有者执行权限)。如果所有者不具有执行权限,这将由大写的S取代。

目录的粘滞位可以为文件删除设置特殊权限:仅文件所有者(和root用户)可以删除目录中的文件。



在长列表中,您可以通过小写的t辨别出 sticky权限,该处通常是x(其他执行权限),如果其他用户不具有执行权限,这将会由大写的T取代。



设置特殊权限

  • 用符号表示:setuid = u + s;setgit = g + s;sticky = o+t

  • 用数值表示(第四位):setuid = 4;setgid = 2; sticky = 1

默认文件权限

文件的默认权限由创建它们的进程设置。



系统的每个进程都具有umask,它是一个八进制位掩码,用于清除由该进程创建的新文件和目录的权限。如果在umask中设置了一个位,则新文件中的对应的权限将被清除。0表示未限制,7表示无权限。

注:下一讲《RSCHA认证第九讲监控和管理LINUX进程(一)

关于作者

任职拉勾网,是运维开发部的负责人,长期从事运维开发工作,有多年的运维技能培训经验,培训了多批运维同学,至今大致有300人左右;

发现一问题,好多内容好多年都在重复得讲,没有一个产物直接输出给大家。计划利用空闲时间将多年的知识(分享的内容,包括技能,心得,管理和爱好)沉淀到我的公众号: 北漂悟道之路

感兴趣的同学可以关注一下我的公众号。

技能:擅长python开发,django框架开发,Kubernetes架构、运维开发架构,Linux运维,Hadoop运维和流行监控;了解golang开发和C++开发。

爱好:美食,自驾和旅游

希望了解作者的同学可以加我微信号:XiaoJiaQingShi





文章转载自北漂悟道之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论