跟着老万学linux运维(4)-文件权限

简介: 跟着老万学linux运维(4)-文件权限

关于文件权限


由于Linux的设备和文档都是以文件的形式存在,因此Linux最基本的安全控制就是对文件的访问控制。Linux文件或文件夹权限是用来控制用户访问文件、文件夹或执行程序的一套机制。


三种基本权限:

根据用户对文件或目录操作种类的不同,linux定义了三种基本的权限:

读,用r标识,对文件来说,表示可以查看文件内容,对文件夹来说,表示可以查看文件夹下的文件,可以用数值4来表示;

写,用w标识,对文件来说,表示可以向文件中写入或者插入内容,对文件夹来说,表示可以在文件夹下删除、添加或者修改文件名称,可以用数值2来表示;

执行,用x标识,对文件来说,表示文件可以以程序来执行,对文件夹来说,表示可以访问子目录及文件及shell中cd到此目录,可以用数值1来表示。


三种权限范围控制:

同时,用户和文件存在以下关系:

文件所有者(owner):拥有文件的用户。创建文件时是创建文件的用户(可用whoami命令查看)。

所属组(group):文件所属的组。创建文件时用户的组(可用id命令查看)。

其他用户(other):既不是文件所有者,也不是文件所属的组的成员的其他用户。

一个文件或文件夹的权限,其实就是对这三种关系的用户规定是否具有可读,可写,可执行的权限,通常文件或文件夹的权限可以通过ls -l命令来查看:

10.png


mode:标识了owner、group及other用户对该文件的操作权限;

owner:规定文件的拥有者;

group:规定文件归属的用户组。

mode用长度为10的字符串来表示 “-rw-rw-r–”,第一位字符表示类型“-”表示文件,“d”表示目录,“l”表示链接文件。后面9位需要每三位为一组来理解:

9.png


如上图所示,每一组的第一位标识是否具有读权限,‘r’表示具有读权限,‘-’表示禁止读权限,第二位标识是否具有写权限,‘w’表示具有写权限,‘-’表示禁止写权限,第三位标识是否具有可执行权限,‘x’表示具有可执行权限,‘-’表示禁止可执行权限。从左往右分为三组,第一组标识owner的权限,第二组表示group的权限,第三组标识其他用户的权限。


举个例子,如上图所示的文件 public_excutable权限为”-rwxr-xr-x”, 怎么理解呢?首先拆开来看,owner的权限是”rwx”,表示对文件具有可读可写可执行的权限,group的权限是”r-x”,表示对该文件只有可读和可执行的权限,other用户的权限也是”r-x”,表示对该文件只有可读和可执行的权限。


文件权限除了用字符串表示外,也可使用八进制数来表示权限,即用一个四位八进制数来表示,其中最高位表示特殊权限,随后的三位依次是所有者权限、组权限和其他人权限。每一个八进制位的权限数值是文件具有的相应权限所对应的数值之和,还是以文件public_excutable为例子:


0755 = rwxr-xr-x = 0(4 + 2 + 1)(4 + 1)(4 + 1)


权限

字符 数值
读权限 r 4
写权限 w

2

执行权限 x

1

如果要查看文件的数值权限,可以通过stat命令进行查看:


root@d076cf119be7:/ $ stat test_file
File: test_file
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 29h/41d Inode: 13429 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-07-26 02:26:26.723187697 +0000
Modify: 2018-07-26 02:26:26.723187697 +0000
Change: 2018-07-26 02:26:26.723187697 +0000
Birth: -


系统默认的文档权限控制?


umask

当我们登录系统,创建一个新的文件或者目录时,会被分配一个默认权限,这个最初的权限是如何被分配的呢?在Linux系统中,通常管理员通过设置umask值来定义创建目录和文件时的默认权限。


什么是umask?系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile或.bashrc文件中。


umask值类似于文件的权限值,使用三位八进制数来表示,比如002,设置范围(000~777),以掩码的形式,定义需要禁止那些用户的何种权限,第一位表示禁止owner的权限值,第二位表示禁止group用户的权限值,第三位表示禁止other用户的权限值。


以umask值为002为例,翻译成权限字符串 “— — -w-“,表示禁止other用户使用写权限


使用umask命令:

root $ umask
0022
设置umask
root $ umask 033
root $ umask
0033


修改文件或文件夹权限


核心命令chmod,chown


上文讲述了如何通过umask来定义文件或者文件夹的默认权限,那文件创建后,权限如何变更呢?Linux提供了chmod命令来修改文件权限,chmod可以给文件或者目录的指定用户增加或者降低权限,比如给owner和group增加执行权限:


chmod ug+x test_file

以上的例子中u和g分别表示user,group,是用户类型:


u – user

g – group

o – other

a – all

‘+’ 表示增加权限,是执行的动作:


+ 增加权限

– 降低权限

‘x’ 表示要增加的文件权限:


r 读

w 写

x 可执行

一些常见的例子:


给所有用户增加写权限:

chmod a+w test_file

给other用户增加执行权限:

chmod o+x test_file


禁止group和other用户的执行权限:

chmod go-x test_file


禁止所有用户的执行权限:


chmod a-x test_file


也可以直接修改文件的权限值:


chmod 644 test_file


修改文件或文件夹的归属


文件的归属可以被root账户修改,chown 命令修改文件的owner,chgrp 修改文件归属的group,

root:/home/user5 $ chown user4 test
root:/home/user5 $ ls -la
-rw------- 1 user4 user5 0 Aug 2 01:11 test
root:/home/user5 $ chgrp user2 test
root:/home/user5 $ ls -la
-rw------- 1 user4 user2 0 Aug 2 01:11 test
#通过chown命令同时分配所属用户和属组
root:/home/user5 $ chown user2:user2 test
root:/home/user5 $ ls -la
-rw------- 1 user2 user2 0 Aug 2 01:11 test

至此,基本介绍完了文件权限,我自己也从头到尾又梳理了一遍,Linux文件权限的控制相对松散,要保证系统的安全性,系统管理员必须制订严格复杂的策略,同时需要控制对root权限的使用范围,尤其是对一些系统服务或进程,要避免使用root账户。


参考:


https://ithorseman.wordpress.com/2018/07/09/linux-账户及安全管理(二)/


目录
相关文章
|
运维 安全 Linux
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化、简单化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权内容与执行内容,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行细节工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
|
数据采集 运维 安全
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
|
Linux
Linux 文件权限详解
Linux 文件权限用于控制文件和目录的访问,分为读、写、执行三种权限,并针对文件所有者、所属组和其他用户分别设置。使用 `ls -l` 查看权限信息,`chmod` 修改权限。符号方式(如 `u+rwx`)和数字方式(如 755)均可设置权限。例如,`chmod +x filename` 添加执行权限给所有用户,`chmod 644 filename` 设置所有者读写、其他用户只读权限。
511 13
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
489 6
|
运维 安全 BI
【运维有小邓】如何进行AD域文件权限管理?
在网络资源管理中,谁可访问资源及访问级别至关重要。Active Directory环境下,管理文件服务器权限耗时且繁琐。ADManager Plus提供批量管理用户NTFS和共享权限的功能,简化权限分配、修改与撤销流程,提升管理效率,确保资源安全。通过集中式界面,管理员能快速准确地控制资源访问,优化环境管理。
434 1
【运维有小邓】如何进行AD域文件权限管理?
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
2283 3
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
1167 3
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
运维 Linux Docker
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题