Linux系统中文件权限详解

一、Linux文件权限设计

        Linux系统中任何内容都可以用文件表示,其对文件设计了一套权限进行管理;文件权限共有11个字符,从左向右共分为5段(每段的具体说明如下表Linux权限设计说明所示):

Linux权限设计说明
字符说明

第1个字符

第1个字符表示【文件类型】(其中【-】表示文件、【d】表示目录、【l】表示软链接(也就是windows里面的快捷方式)、【b】表示设备)
第2、3、4个字符第2、3、4个字符表示文件【所属用户的权限】(user)
第5、6、7个字符第5、6、7个字符表示文件【所属用户组的权限】(group)
第8、9、10个字符第8、9、10个字符表示文件【所属其他用户的权限】(other)
第11个字符第11个字符表示【开启selinux的状态下创建的;即这个文件受到selinux的保护】

二、文件权限说明和操作

2.1、文件权限说明

        Linux是采用用户、用户组、其他用户组成的权限体系(简称:ugo);每个用户权限使用三个字符表示,共9个字符,一位都不能少,没有权限的字符使用空权限(-)表示,如下图所示:

权限字符串值表示内容说明
序号权限字符串值说明
r4全称(read)表示拥有文件的读取权限
w2全称(write)表示拥有文件的写入权限
x1全称(executable)表示拥有文件的可执行权限
-0表示空权限,表示没有文件的任何操作权限
ugo权限字符串值组合对照表
ugo权限字符串值组合ugo权限字符串组合值ugo权限说明
---0空权限
--x1执行权限
-w-2写入权限
--wx3写入和执行权限
r--4读取权限
r-x5读取和执行权限
rw-6读取和写入权限
rwx7读取、写入和执行权限

2.2、禁用SElinux权限

一文带你看懂 SELinux 是什么? - 红帽安全增强型 Linux(SELinux)由美国国家安全局(NSA)利用 Linux 安全模块(LSM)开发而成,是一种采用安全架构的 Linux 系统,能够让管理员更好地管控哪些人可以访问系统。icon-default.png?t=N7T8https://www.redhat.com/zh/topics/linux/what-is-selinux

        安全增强型 Linux(SELinux)是一种采用安全架构的 Linux® 系统,它能够让管理员更好地管控哪些人可以访问系统。它最初是作为 Linux 内核的一系列补丁,由美国国家安全局(NSA)利用 Linux 安全模块(LSM)开发而成。SELinux 于 2000 年发布到开源社区,并于 2003 年集成到上游 Linux 内核中。

        SELinux 定义了每个人对系统上的应用、进程和文件的访问控制。利用安全策略(一组告知 SELinux 哪些能访问,哪些不能访问的规则)来强制执行策略所允许的访问。 

        SElinux是负责Linux系统安全的,但是启用它后会变得很麻烦,安全和便利是冲突的;红帽系的系统(redhat、centos等)都默认都有这个机制且是启用的;一般来说这个内容我们是关闭的,有关安全方面的控制可以通过其他方法来控制。

 1、先查看Linux的SELinux权限

# 查看Linux的Selinux状态命令:
sestatus

 2、禁用Linux系统的SELinux

使用具有超级管理员权限的账户登录Linux,一般是root用户,使用如下命令进行打开修改:

# 1、打开SELinux配置文件命令:
vi /etc/selinux/config

# 2、SELinux修改完成后重启Linux系统(只有重启系统后才会生效)重启系统命令是:
reboot

# 3、Linux重启完成后再查看一下SELinux的状态是否为禁用命令:
sestatus

 

 

2.3、文件权限的修改

        我们在自己的账户下创建一个文件,默认权限是【-rw-r--r--.】(表示创建该文件的用户拥有文件的读取和写入权限,而该文件属于的用户组和其他用户只拥有读取权限,且该文件受selinux保护),如下图所示(创建一个名为newfile.txt的文件):

注意:我这里创建的文件权限没有最后的.是因为我已经把selinux禁用了。

文件权限的修改命令
序号文件权限修改命令示例
1chmod -权限字母 文件名称
# 示例1、移除所有人读取newfile.txt文件的权限
chmod -r newfile.txt     

# 示例2、移除所有人写newfile.txt文件的权限
chmod -w newfile.txt

# 示例3、移除所有人执行newfile.txt文件的权限
chmod -x newfile.txt     
     
2chmod +权限字母 文件名称
# 示例1、添加所有人读取newfile.txt文件的权限
chmod +r newfile.txt     

# 示例2、添加所有人写newfile.txt文件的权限
chmod +w newfile.txt

# 示例3、添加所有人执行newfile.txt文件的权限
chmod +x newfile.txt     
     
3chmod u±权限字母 文件名称
# 示例1、添加文件所有者读取newfile.txt文件的权限
chmod u+r newfile.txt   
  
# 示例2、移除文件所有者读取newfile.txt文件的权限
chmod u-r newfile.txt  

# 示例3、添加文件所有者读取和写入newfile.txt文件的权限
chmod u+rw newfile.txt       
     
# 示例4、移除文件所有者读取和写入newfile.txt文件的权限
chmod u-rw newfile.txt   
4chmod g±权限字母 文件名称
# 示例1、添加文件所属组读取newfile.txt文件的权限
chmod g+r newfile.txt   
  
# 示例2、移除文件所属读取newfile.txt文件的权限
chmod g-r newfile.txt  

# 示例3、添加文件所属读取和写入newfile.txt文件的权限
chmod g+rw newfile.txt       
     
# 示例4、移除文件所属读取和写入newfile.txt文件的权限
chmod g-rw newfile.txt   
5chmod o±权限字母 文件名称
# 示例1、添加其他用户读取newfile.txt文件的权限
chmod o+r newfile.txt   
  
# 示例2、移除其他用户读取newfile.txt文件的权限
chmod o-r newfile.txt  

# 示例3、添加其他用户读取和写入newfile.txt文件的权限
chmod o+rw newfile.txt       
     
# 示例4、移除其他用户读取和写入newfile.txt文件的权限
chmod o-rw newfile.txt   
6chmod 权限字母值 文件名称
# 也可以直接使用权限数值设置文件访问权限

# 示例1、给文件newfile.txt所有者添加读写权限、文件所属组添加读权限、其他用户添加读权限(-rw-r--r--	644)
chmod 644 newfile.txt 

# 示例2、给文件newfile.txt所有者添加读写权限、文件所属组添加读权限、其他用户添加读权限(-rw-rw--r--	664)
chmod 664 newfile.txt

# 示例3、给目录testdir所有者添加读写执行权限、文件所属组添加读和执行权限、其他用户添加读和执行权限(-rwxr-xr-x	755)
chmod 755 testdir

三、文件的用户和用户组

        Linux系统也是具有用户和用户组的概念,用户和用户组可以有三种关系【一对一、一对多、多对多】(即:一个用户对应一个用户组;一个用户可以对应多个用户组,同样一个用户组也可以对应多个用户)

3.1、用户管理

Linux中的用户
序号操作用户命令说明
1useradd 用户名称【useradd coffeemilk】表示创建coffeemilk用户
2passwd 用户名称【passwd coffeemilk】表示给coffeemilk用户设置或修改密码
3id 用户名称【id coffeemilk】表示查看coffeemilk用户是否存在
4lchage -l 用户名称

【lchage -l coffeemilk】表示查看coffeemilk用户状态信息

(注意:这里命令中的是小写字母l,不是数字1或者字母i)

5usermod -L 用户名称

【usermod -L coffeemilk】表示锁定用户coffeemilk,不允许登录系统

注意:如果该用户在执行锁定命令前已经登录,那么已经登录的还是可以正常操作;但是退出后就无法登录了

6usermod -U 用户名称【usermod -U coffeemilk】表示解除用户coffeemilk的锁定状态,可以登录系统
7userdel -r 用户名称【userdel -r coffeemilk】表示删除用户及其对应相关的配置内容

3.2、用户组管理

Linux中的用户组
序号操作用户组命令说明
1groupadd 用户组名称【groupadd testgroup】表示添加testgroup用户组
2cat /etc/group表示查看当前有哪些用户组,最新添加的用户组在该文件的最下面
3usermod -g 用户组名称 用户名称

【usermod -g testgroup coffeemilk】表示将用户coffeemilk的主组coffeemilk强制修改为testgroup

(注意:如果该用户拥有多个组,只需要使用该命令即可指定为一个主组)

4usermod -G 用户组名称 用户名称【usermod -G devgroup coffeemilk】表示给用户coffeemilk在添加一个用户组devgroup
5useradd -g 用户组名称 用户名称【useradd -g devgroup testuser】表示在创建用户testuser时指定用户组为devgroup
6groupmod -n 新用户组名称 旧用户组名称【groupmod -n dev devgroup】表示将旧用户名称devgroup修改为新的名称dev
7groupdel 用户组名称

【groupdel testgroup】表示删除用户组testgroup

(注意:删除用户组的时候需要先将使用了该用户组的用户修改到其他用户组,才能够删除成功)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/745688.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM+Jsp的雅博书城在线系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

基于FreeRTOS+STM32CubeMX+LCD1602+MCP4141(SPI接口)的数字电位器Proteus仿真

一、仿真原理图: 二、运行效果: 三、软件部分: 1)、SPI读写: 2)、初始化部分: void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the CPU, AHB and APB busses clocks …

STM32存储左右互搏 模拟U盘桥接QSPI总线FATS读写FLASH W25QXX

STM32存储左右互搏 模拟U盘桥接QSPI总线FATS读写FLASH W25QXX STM32的USB接口可以模拟成为U盘,通过FATS文件系统对连接的存储单元进行U盘方式的读写。 这里介绍STM32CUBEIDE开发平台HAL库模拟U盘桥接Quad SPI总线FATS读写W25Q各型号FLASH的例程。 FLASH是常用的一种…

Pikachu靶场--SSRF

参考借鉴:pikachu靶场练习——SSRF详解_pikachu ssrf-CSDN博客 SSRF(curl) 先了解一下curl curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, PO…

C语言——链表专题

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…

【算法专题--链表】旋转链表 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐解题思路---闭合为环 🍍 案例图解 四、总结与提炼 五、共勉 一、前言 旋转链表 这道题,可以说是--链表专题--,最经典的一道题,也是在面试中频率最高的一道题目&#x…

Kotlin 中的内联函数

1 inline 内联函数:消除 Lambda 带来的运行时开销。 举例来说: fun main() {val num1 100val num2 80val result num1AndNum2(num1, num2) { n1, n2 ->n1 n2} }fun num1AndNum2(num1: Int, num2: Int, operation: (Int, Int) -> Int): Int …

APT 组织也在利用云存储进行攻击

研究人员发现,各类攻击者都在攻击行动中将恶意脚本、远控木马和诱饵文档等恶意文件上传到云服务器上,各种恶意文件组合起来完成恶意攻击。 某个攻击组织从发送钓鱼邮件到植入远控木马的过程如下所示: 攻击链 多个恶意文件串联起了整个攻击行…

跑路代码已上线,坐等删库中~

前言 或许大家会认为删库跑路都是运维或者DBA的事情,或许认为我没有线上数据库权限就不可能删库跑路。但是事实并非如此,建议大家仔细阅读此文章,赶紧排查下您的代码,很可能隐藏着这种删库程序。还是要呼吁大家,这个案…

三级医院智慧医院信息化规划方案(65页PPT)

方案介绍: 该方案通过信息化手段实现医院信息化全覆盖,优化诊疗流程、提高诊疗效率和准确性;同时实现医疗资源的合理配置和共享,提升医疗服务质量。通过优化患者就医流程、提供便捷的服务和宣传健康知识等方式提高患者满意度。通…

苏州大学气膜综合馆成为师生活动新中心—轻空间

苏州大学应用技术学院的气膜综合馆自建成以来,已成为校园内的热门活动场所。由轻空间(江苏)膜科技有限公司(以下简称“轻空间”)全力打造,这座现代化、环保的多功能运动场馆,不仅为师生提供了一…

代码随想录第35天|动态规划

理论基础 动态规划是由前一个状态推导出来的, 而贪心是局部直接选取最优 五部曲: 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 debug过程 : dp数组打印查看 509. 斐波那契数 参考 //动态规划的方法 …

Python基础教程——常用的36个经典案例!

Python 的简洁和强大使其成为许多开发者的首选语言。本文将介绍36个常用的Python经典代码案例。这些示例覆盖了基础语法、常见任务、以及一些高级功能。(文末附带精品学习资料) 1. 列表推导式 fizz_buzz_list [ "FizzBuzz" if i % 15 0 else "Fizz&qu…

陪玩系统源码,陪玩平台源码,陪玩app源码搭建

游戏陪玩app开发,软件搭建,程序制作、系统设计 目前,中国约有五到六亿游戏玩家,其中大约有两亿人选择付费游戏。这显示了绝大多数玩家都愿意为他们喜欢的游戏付费。随着游戏体验的不断改善,越来越多的玩家更倾向于找到…

基于Java的汽车租赁系统【附源码】

论文题目 设计(论文)综述(1000字) 当今社会,汽车租赁已成为一种受欢迎的出行方式。本文旨在探讨汽车租赁行业的发展趋势、市场规模及其对环境的影响。目前,汽车租赁行业正在经历着快速的发展。随着经济的发…

3D资产爆发,轻量化需求再度冲高,见证下一代3D崛起!

数字经济不断发展,3D资产和实体经济迎来深度融合的窗口期,3D资产应用外延催生大量新场景、新业态,一个3D资产构建的数字世界正出现在我们眼前。 数字经济不断发展,3D资产和实体经济迎来深度融合的窗口期,3D资产应用外…

【TB作品】MSP430,G2533单片机,红外发射,红外接收,红外通信,IR发射

文章目录 题目红外NEC协议介绍基本概述数据帧结构位表示数据传输示例重复码(Repeat Code)实现细节发送端接收端 典型应用结论 最终效果代码 题目 遥控器 硬件:msp430g2553、oled显示器、ds18b20温度传感器、红外发射器、按键 软件功能&#…

OpenAI用GPT-4o打造癌症筛查AI助手;手机就能检测中风,准确率达 82%!中国气象局发布AI气象大模型...

AI for Science 企业动态速览—— * 皇家墨尔本大学用 AI 检测患者中风,准确率达 82% * OpenAI 用 GPT-4o 模型打造癌症筛查 AI 助手 * 中国气象局发布 AI 气象大模型风清、风雷、风顺 * AI 药企英矽智能:小分子抑制剂已完成中国 IIa 期临床试验全部患者…

Socket——向FTP服务器发送消息并获得响应

1、简介 Socket(套接字)是网络编程中用于描述IP地址和端口的一个抽象概念,通过它可以实现不同主机间的通信。套接字可以分为几种不同的类型,每种类型对应不同的协议和传输模式。 1.1、基本概念 IP地址:用于标识网络…

厂区滴漏智能识别摄像机

当今,随着智能技术的迅猛发展,智能识别摄像机正逐步应用于各个行业,特别是在工业生产环境中,其作用愈发凸显。其中,厂区滴漏智能识别摄像机的应用成为了保障生产安全和环境保护的重要手段之一。厂区滴漏智能识别摄像机…