Linux ————​文件权限

 (一)文件权限

基础补充

        文件基本属性(Linux中万物皆是文件)文件是操作系统用来存储信息的基本结构,是一组信息的集合。文件通过文件名来唯一标识。Linux中的文件名称最长允许255个字符,这些字符可用A~Z、0~9、. _ -等符号表示。与其他操作系统相比,Linux最大的不同点是没有“扩展名”的概念,即文件的名称和该文件的种类并没有直接的关联,例如,sample.txt可能是一个运行文件,而sample.exe也有可能是文本文件,甚至可以不使用扩展名。另一个特性是Linux文件名区分大小写。例如,sample.txt、Sample.txt、SAMPLE.txt、samplE.txt在Linux系统中代表不同的文件,但在DOS和Windows平台却是指同一个文件。在Linux系统中,如果文件名以“.”开始,表示该文件为隐藏文件,需要使用Is-a命令才能显示。
        在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
        通过设定权限可以用以下3种访问方式限制访问权限?只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件或目录可能有读、写及执行权限。当创建一个文件时,系统会自动赋予文件所有者读和写的权限,这样,可以允许文件所有者查看文件内容和修改文件。文件所有者可以将这些权限改变为任何他想指定的权限。一个文件也许只有读权限,禁止任何修改。文件也可能只有执行权限,允许它像一个程序一样执行。
        3种不同的用户类型能够访问一个目录或者文件:所有者、用户组或其他用户。所有者是创建文件的用户,文件的所有者能够授予所在用户组的其他成员及系统中除所属组之外的其他用户的文件访问权限。
        每一个用户针对系统中的所有文件都有它自身的读、写和执行权限。第一套权限控制访问自己的文件权限,即所有者权限。第二套权限控制用户组访问其中一个用户的文件的权限第三套权限控制其他所有用户访问一个用户的文件的权限。这3套权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限,就构成了一个有9种类型的权限组。
 

Linux权限的最大用途就是安全性

 权限

如何查看文件属性:

ls命令:

文件权限 

        所谓的文件权限,是指对文件访问权限,包括对文件的读、写、删除、执行操作。Linux是一个多用户操作系统,它运行多个用户同时登陆和工作,因此,Linux将一个文件或者目录与一个用户与组联系起来的。

   查看文件的权限

        drw-r-xr-x 9 n1 m1                 4096 Nov 13 00:30 apache-tomcat-7.0.61

三组权限,每组3个字母

r :读取权限

w :写入权限

x :执行权限

-:没有权限

root :所属用户(属主)

root:所属的组(属组)

权限的UGO模型

三组权限

属主的权限:属组的权限:其他的权限

所有说:将来修改文件的权限 可以从rwx和ugo两个方面进行修改

修改文件的权限

        修改文件所属

                chown n1 /var/lucky1

                chown n1:m1 /var/lucky2

       修改文件夹时,让子目录迭代修改

                chown -R n1:m1 school chgrp m2 lucky3

        当用户的组被修改之后,需要重新登录才能获取新组的权限

修改文件的rwx

chmod o+w lucky4

chmod ug+rw lucky4

chmod ugo-rw lucky4

(权限RWX分别对应数字 4 2 1 5= 4+0+1 r-x)

         chmod 664 lucky4 ->(rw- rw-r--)

 权限赋予

        我们可以将管理用的权限分配给普通用户

        文件位置在 vim /etc/sudoers 但是修改这个文件需要使用命令

                visudo

               修改 Line 99

               n1 ALL=(root) /sbin/useradd

               n1 ALL=(root) /sbin/*

如何使用

su n1

sudo chkconfig iptables off

一般权限:

 

特殊权限:

         特殊权限在文件和目录上具有特定的功能,但由于它们带有特定的权力,若无实际需求,不建议随意开启,以防安全风险或被恶意攻击者利用。以下是这些特殊权限的详细说明:

1)s 或 S(SUID,Set UID)

        当为可执行文件设置此权限时,运行该文件的用户将获得文件所有者的权限来执行它。需要特别注意的是,带有SUID权限且以root为所有者的文件可能会被恶意利用。攻击者可能会寻找具有此权限的文件,试图创建系统内的后门。

2)s 或 S(SGID,Set GID)

         当在文件上设置此权限时,其效果与SUID类似,但此时运行文件的用户将获得文件所属的用户组的权限。这意味着该文件可以存取其所属用户组所能使用的全部系统资源。

3)T 或 t(Sticky)

        此权限通常用于目录,如/tmp或/var/tmp。这些目录可供所有用户创建和存储文件,但只有文件的创建者或root才能删除或移动这些文件。这是为了保护用户之间的数据不被其他用户随意删除。

        由于SUID、SGID和Sticky权限在显示时占据执行权限x的位置,因此大小写有所不同。当执行权限与SUID、SGID、Sticky同时开启时,将使用小写字符表示:

-rwsr-sr-t 1 root root 4096 6月 23 08:17 conf

而当关闭执行权限时,则使用大写字符表示:

-rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf


 

(二)权限字和权限操作

改变所属群组chgrp:

改变文件拥有者chown:

改变文件属性chmod:

文字设定法:

数字设定法: 

        我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将具相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(0)
        例如,如果想让某个文件的属主有"读/写"两种权限,需要把4(可读)+2.(可写)=6(读/写)

举例说明:文件的权限字符为:rwxrwxrwx,这九个权限是三个、三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4                         w:2                      x:1 


        每种身份((owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限
为:rwx    r--r-x分数则是  owner= rWx= 4+2+1=7  group=rwx=4+0+0=4  others=---=4+0+1=5
 

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

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

相关文章

【JAVA学习笔记】46 - (43)第十一章作业

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter11/src/com/yinhai/homework11 1.枚举类 1.创建一个Color枚举类 2.有RED,BLUE,BL ACK,YELLOW,GREEN这个五个枚举值/对象: 3. Color有三 个属性redValue, greenValue, blueValue, 4.创建构…

点击弹出实现模拟百度那样子

<uni-section title"输入框示例" type"line" padding><view class"dialog-box"><text class"dialog-text">输入内容&#xff1a;{{ value }}</text></view><button class"button" type&qu…

PL/SQL工具下载地址

https://www.allroundautomations.com/registered-plsqldev/ 选择需要下载的版本即可

LuaTable转C#的列表List和字典Dictionary

LuaTable转C#的列表List和字典Dictionaty 介绍lua中创建表测试lua中list表表转成List表转成Dictionary 键值对表表转成Dictionary 多类型键值对表表转成Dictionary 总结 介绍 之前基本都是从C#中的List或者Dictionary转成luaTable&#xff0c;很少会把LuaTable转成C#的List或者…

深入浅出排序算法之简单选择排序

目录 1. 原理和执行流程 2. 代码实现 3. 性能分析 4. 双向选择排序&#xff08;了解&#xff09; 1. 原理和执行流程 选择排序包含了堆排序和简单选择排序。 每一次从无序区间选出最大&#xff08;或最小&#xff09;的一个元素&#xff0c;存放在无序区间的最后&#xff0…

道路数据汇总,全国(2021年+2022年)+重点城市(深圳、上海、武汉、杭州、广州、南京、东莞),格式有shp+xlsx

昨天推了上海道路数据&#xff0c;今天把已收集到的道路数据打包推给大家&#xff0c;后续有新数据会持续更新&#xff01; 废话不多说&#xff0c;先给数据地址再介绍数据情况&#xff1a; 2021年全国道路数据&#xff1a; 2021年全国道路数据https://www.xcitybox.com/dat…

uni-app医院智能导诊系统源码

随着科技的迅速发展&#xff0c;人工智能已经逐渐渗透到我们生活的各个领域。在医疗行业中&#xff0c;智能导诊系统成为了一个备受关注的应用。本文将详细介绍智能导诊系统的概念、技术原理以及在医疗领域中的应用&#xff0c;分析其优势和未来发展趋势。 智能导诊系统通过人工…

迭代器的封装与反向迭代器

一、反向迭代器 在list模拟实现的过程中&#xff0c;第一次接触了迭代器的封装&#xff0c;将list的指针封装成了一个新的类型&#xff0c;并且以迭代器的基本功能对其进行了运算符重载 反向迭代器是对正向迭代器的封装&#xff0c;并且体现了泛型编程的思想&#xff0c;任意…

如何在 openSUSE 中使用 Zypper Configuration 设置代理

如何在 openSUSE 中使用 Zypper Configuration 设置代理 首先&#xff0c;确定问题&#xff1a;设置代理服务器以便 Zypper 能够访问互联网并下载软件包。 亲身经验&#xff1a;我曾在使用 openSUSE 时遇到过类似问题&#xff0c;通过设置代理服务器成功解决。 数据和引证&…

C++初阶:C/C++内存管理

一.C/C内存分布 先来回顾一下C语言内存分区示意图如下&#xff1a; 代码区&#xff1a; 程序执行代码一般存放在代码区&#xff0c;字符串常量以及define定义的常量也可能存放在代码区。 常量区&#xff1a; 字符串&#xff0c;数字等常量以及const修饰的全局变量往往存放在…

day51 --动态规划10

121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 第一题&#xff1a;买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出…

员工福利平台设计方案

需求背景&#xff1a; 1、杭州行政希望给员工有一个福利平台&#xff0c;可以通过该福利平台&#xff0c;一方面可以结合公司周围的实体店&#xff0c;给到员工一些福利的商品&#xff0c;员工可以自行去这些商家进行消费。 2、公司可以通过福利平台&#xff0c;给员工账户进…

K8s 部署 CNI 网络组件+k8s 多master集群部署+负载均衡

------------------------------ 部署 CNI 网络组件 ------------------------------ ---------- 部署 flannel ---------- K8S 中 Pod 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容器是不会跨宿主机的&#xff09;共享同一…

实验六:DHCP、DNS、Apache、FTP服务器的安装和配置

1. (其它) 掌握Linux下DHCP、DNS、Apache、FTP服务器的安装和配置&#xff0c;在Linux服务器上部署JavaWeb应用 完成单元八的实训内容。 1、安装 JDK 2、安装 MySQL 3、部署JavaWeb应用 安装jdk 教程连接&#xff1a;linux安装jdk8详细步骤-CSDN博客 Jdk来源&#xff1a;linu…

【Django 05】Django-DRF(ModelViewSet)、路由组件、自定义函数

1. Django-DRF&#xff08;ModelViewSet&#xff09; 1.1 DRF是什么&#xff1f; ModelViewSet 是 Django REST framework 提供的一个视图集类&#xff0c;它封装了常见的模型操作方法。 模型类提供了默认的增删改查功能。 它继承自 GenericViewSet、ListModelMixin、Retri…

基于pyenv和virtualenv搭建python多版本虚拟环境

pyenv简介 由于Python的依赖是基于site的&#xff0c;这对于生产环境来说&#xff0c;是一种简单而正确的方式&#xff0c;然而&#xff0c;对于我们的开发环境&#xff0c;基于这样的管理方式&#xff0c;带来了可怕的第三方依赖管理的难题&#xff0c;virtualenv适时出现了&a…

Altium Designer布局技巧

资料 快捷键 PCB导入原理图 验证工程 导入原理图 进入PCB编辑界面&#xff0c;设计→Import Changes from xxxx 多原理图多PCB 创建多个原理图、PCB 略反键点击原理图 勾选高级 选择原理图及目标PCB&#xff0c;点击确定 右键点击列表项&#xff0c;更新原理图&#xff0…

手机桌面待办事项APP推荐

每天&#xff0c;我们每个人都面临着繁琐的事务和任务&#xff0c;而手机成了我们日常生活中不可或缺的伙伴。手机上的待办事项工具像一个可靠的助手&#xff0c;可以帮助我们更好地记录、管理和完成任务。在手机桌面上使用的待办事项APP推荐用哪一个呢&#xff1f; 手机是我们…

服务容错框架Sentinel入门

概述 Sentinel&#xff0c;阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。分布式系统的流量防卫兵。 特征: 丰富的应用场景&#xff1a;秒杀&#xff08;即突发流量控制在系统…

更加轻松处理相同文件名!覆盖复制操作全新升级,避免重复命名!

亲爱的用户&#xff0c;您是否在进行覆盖复制操作时&#xff0c;常常因为相同的文件名而无法正常完成任务&#xff1f;现在&#xff0c;我们为您推出了全新的覆盖复制升级版&#xff0c;让您更加轻松处理相同文件名&#xff0c;避免重复命名的尴尬局面&#xff01; 首先第一步…