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

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘:企业如何防盗版软件

在当前的数字化时代,软件盗版问题一直困扰着软件开发者和企业。为了维护软件的合法权益,保护创新成果,许多企业采取了各种技术手段来防止软件被非法复制和分发。其中,白名单机制作为一种有效的防盗版软件手段,被广泛采…

书酒共舞:品味文字之韵,沉醉酒香之境

在喧嚣的都市中,我们常常渴望找到一片宁静的角落,让心灵得到片刻的休憩。此刻,一杯雷盛红酒与一本心仪的书籍,便成了很好的伴侣,它们相互映衬,共同编织出一幅优雅的画卷,让我们在品味中感受文字…

数据处理神器Elasticsearch_Pipeline:原理、配置与实战指南

文章目录 📑引言一、Elasticsearch Pipeline的原理二、Elasticsearch Pipeline的使用2.1 创建 Pipeline2.2 使用 Pipeline 进行索引2.3 常用的 Processor 三、实际应用场景3.1 日志数据处理3.2 数据清洗和标准化3.3 数据增强 四、最佳实践4.1 性能优化4.2 错误处理4…

Fusion WAN:企业出海与全球组网的数字网络底座

众多中国企业与品牌正将目光投向海外市场,积极寻求发展新机遇,并且在这一过程中取得了显著的成果。"出海"战略已经成为一些企业转型升级的关键选择。 随着国内市场的竞争日益激烈,越来越多的企业开始寻求海外市场的拓展&#xff0c…

11年之约 聚焦上海 | 亚信科技邀您相约2024 MWC上海展

关于亚信安慧AntDB数据库 AntDB数据库始于2008年,在运营商的核心系统上,服务国内24个省市自治区的数亿用户,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行超十年&a…

深入理解PHP命名空间

在PHP项目中,命名空间(namespace)是一个非常重要的特性。它不仅帮助开发者组织代码,还能避免类、函数、常量等命名冲突问题。本文将详细介绍PHP命名空间的概念、使用方法和最佳实践。 一、什么是命名空间? 命名空间…

windows@局域网或蓝牙文件传输@共享文件夹@就近共享

文章目录 windows系统下的简单共享文件方案👺就近共享设置共享文件夹(推荐)方法1:使用shrpubw程序引导创建方法2:使用图形界面创建右键设置共享文件夹 查看所有已经共享的文件夹👺停止某个文件的共享 共享文件夹的访问控制补充匿名访问问题😊…

10个国内免费AI绘画网站汇总【2024最新】

迎战MidJourney和Stable Diffusion:10款国产AI绘画神器,让你轻松创作出超凡艺术品!不论你是初学者还是资深艺术家,这些AI绘画平台都能帮你轻松入门。快来探索这些AI绘画网站,释放你的创意潜能! 1、AI绘画创…

flex属性中的flex-grow、flex-shrink、flex-basis

flex-grow 属性 flex-grow 属性用于设置或检索弹性盒子的扩展比率。 默认值为0&#xff0c;表示不伸展。 flex-grow属性值为0时&#xff0c;不伸展&#xff1a; <!doctype html> <html lang"en"><head><style>.d-flex {display: flex;width…

C语言——链表专题

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 点击主页&#xff1a;optimistic_chen和专栏&#xff1a;c语言&#xff0c; 创作不易&#xff0c;大佬们点赞鼓…

IP地址定位技术的广泛应用

IP地址定位技术是一种通过分析网络设备所使用的IP地址来确定其地理位置的地址技术手段。 IP地址定位技术基于互联网服务提供商&#xff08;ISP&#xff09;所分配的IP地址范围以及相关的地理信息数据库。当一个设备连接到网络并使用特定的IP地址进行通信时&#xff0c;IP地址定…

上海慢病管理app开发的意义及功能

近年来&#xff0c;随着经济与科技的不断发展&#xff0c;人们对慢性疾病的重视程度也不断提高。大家不再满足于周期较长的定期检查&#xff0c;而是渴求能够进行短期、实时的病情预防与监测&#xff0c;为了满足人们的需求&#xff0c;帮助大家更好的干预病情&#xff0c;上海…

AI智能体的炒作与现实:GPT-4都撑不起,现实任务成功率不到15%

AI 智能体的宣传很好&#xff0c;现实不太妙。 随着大语言模型的不断进化与自我革新&#xff0c;性能、准确度、稳定性都有了大幅的提升&#xff0c;这已经被各个基准问题集验证过了。 但是&#xff0c;对于现有版本的 LLM 来说&#xff0c;它们的综合能力似乎并不能完全支撑得…

云原生技术峰会:引领智能算力时代的创新浪潮

云原生技术峰会&#xff1a;引领智能算力时代的创新浪潮 随着云计算技术的飞速发展和智能算力的不断提升&#xff0c;云原生架构已成为推动企业数字化转型的重要力量。近日&#xff0c;一场汇聚了业界顶尖专家和学者的云原生技术峰会成功举行&#xff0c;与会者共同探讨了云原…

【Linux】常用基本命令

wget网址用于直接从网上下载某个文件到服务器&#xff0c;当然也可以直接从网上先把东西下到本地然后用filezilla这个软件来传输到服务器上。 当遇到不会的命令时候&#xff0c;可以使用man “不会的命令”来查看这个命令的详细信息。比如我想要看看ls这个命令的详细用法&…

canvas : Cannot read properties of null (reading ‘getContext‘)

获取 canvas 元素的 getContext 方法时&#xff0c;canvas 元素尚未正确绑定。可以通过确保在渲染 PDF 文件之前&#xff0c;canvas 元素已经正确挂载到 DOM 来解决这个问题。 解决方法 确保 pdfCanvas 引用已经绑定到正确的 DOM 元素。确保在渲染 PDF 文件时&#xff0c;can…

【模型】5分钟了解决策树是一个什么模型

本站原创文章&#xff0c;转载请说明来自《老饼讲解-机器学习》[www.bbbdata.com(https://www.bbbdata.com/ml) 决策树模型是机器学习中不可不学的模型之一&#xff0c;本文简单直接地快速讲解决策树是什么&#xff0c;如何实现。 一、决策树模型 决策树一般包括ID3决策树&am…

记录一个笔误引发的bug导致生产环境报错,但是本地环境,测试环境运行正常

记录一个笔误引发的bug导致生产环境报错&#xff0c;但是本地环境&#xff0c;测试环境运行正常 因为headers请求头过长导致报错 在feign外调其他系统时候&#xff0c;是重新封装headers 问题在于 MultiValueMap 属于静态变量。这里讲userAgent的内容传递过去。是不断累加的…

Qt项目天气预报(8) - 绘制温度曲线 + 回车搜索(最终篇)

全部内容在专栏&#xff1a; Qt项目 天气预报_mx_jun的博客-CSDN博客 目录 绘制温度曲线 事件过滤器在子控件上绘图 子控件下载事件过滤器 事件过滤器进行绘图 - eventFilter 画初步高温曲线 画初步低温曲线 效果演示 画低温曲线 画高温曲线 效果演示 按下回车搜索: …

收银系统源码-千呼新零售2.0【宠物、养生、大健康行业解决方案】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物、中医养生、大健康等连锁店…