文件权限说明

Linux中的文件能否被访问和工具(程序)无关,和访问的用户身份有关(谁去运行这个程序)

进程的发起者(谁去运行这个程序)。

  • 进程的发起者若是文件的所有者: 拥有文件的属主权限
  • 进程的发起者若属于文件属组:拥有文件的属组权限
  • 应用文件“其它”权限

修改文件所有者、组

默认谁创建或传送的文件,所有者所属组默认是创建文件的时候从当前用户继承下来的

设置文件的所有者或所属组:chown

chown 命令可以修改属主也可以修改属组

选项:

-R:更改一个目录文件以及目录中的所有文件的属性

chown范例:

  • 只修改文件所有者: chown 所有者 file
  • 只修改文件所属组: chown (:)或(.)组名 file
  • 两者都修改: chown 所有者(:)或(.)所有组 file

设置文件所属组: chgrp

chgrp:只修改文件的属组

文件权限管理

将访问文件的用户分为三类:

  • owner 属主, u
  • group 属组, g
  • other 其他, o

    用户权限的匹配规则:从左到右匹配,匹配到了就不匹配了

三种权限类型:

  • r Readable
  • w Writable
  • x eXcutable

文件权限:

  • r:表示可以读取里面的内容
  • w:可以往文件里修改信息
  • x:可以执行这个文件(包括二进制程序、shell脚本等)

目录权限:

  • r:读取目录文件中的文件列表
  • w:能否在目录文件中删除和创建文件
  • x: 获取目录下文件的列表,和进入目录
  • X 只给目录x权限,不给无执行权限的文件x权限

    目录文件的最小权限: 执行权限x

    文件能否被删除和文件权限无关,而是和该文件所在目录文件的写(w)权限有关(因为目录文件的数据块部分是一个文件列表,这个文件列表记录该目录下的文件和该文件的inode number之间的映射关系)

目录的执行权限:可以获取目录中文件的列表,和进入目录。要对目录下存在的文件进行读取和修改,必须要进入目录,所以必须要目录有执行权限。

例如:要访问apache服务器上的某个目录下的文件,此目录必须要有执行权限。

1、目录的可执行权限是表示可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录。即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。

所以创建目录文件的时候给了x权限,也要给r权限

2、而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

目录可执行权限

实现获取文件列表和进入目录

进入目录: 要对目录中的文件进行读取和修改操作就必须要进入目录

可执行权限标识是否可以对目录执行命令或者在目录下执行命令

只有执行权限,没有可读权限 -- 可以进入目录但是无法读取文件列表

修改文件权限: chomod

文件的执行权限对root起作用,读和写对root用户无效

文件的所有者和文件所属组里面的用户、root用户可以修改文件的权限。

选项:

-R:同时更改目录文件以及目录文件下的所有文件的权限

X 只给目录x权限,不给无执行权限的文件x权限

方法一:模式法

who opt permission(谁对谁做什么操作)

who:u,g,o,a (a:all,所有)

opt:+,-,= (=:会修改用户的所有权限)

permission:r,w,x

例如:取消a文件的执行权限

chmod a-x file

方法二:数字法

数字法:用数字来描述文件的权限

chomod 数字 file

八进制数字:

  • --- 000 0
  • --x 001 1
  • -w- 010 2
  • -wx 011 3
  • r-- 100 4
  • r-x 101 5
  • rw- 110 6
  • rwx 111 7

    只要有奇数就肯定有执行权限

十进制数字法

范例:执行 cp /etc/issue /data/dir/ 所需要的最小权限?

/bin/cp 需要x权限

/etc/ 需要x权限

/etc/issue 需要r权限

/data 需要x权限

/data/dir 需要w,x权限

默认权限和特殊权限(root不受限)

新建文件的默认权限:

  • 文件:644
  • 目录文件:755

    默认权限是由 umask命令来影响的(显示的值是一个八进制)

非特权用户umask默认是 002



root的umask 默认是 022




最前面的0代表这是一个八进制数字

更改umask的值: umask number

文件默认权限的计算方法:

新建文件夹的默认权限: 666 - umask --- 得到的结果如果有执行权限(奇数),就将这一位+1

更改umask的值是临时生效的

使用666不使用777的原因:

使用666的原因是,如果使用777,umask设置成000,那么新建的文件就会有执行权限,默认带执行权限的文件很危险

加1的原因:

因为某一位是奇数的话就是带有执行权限了,默认创建的文件是要求不带执行权限的,所以要加1

目录文件默认权限计算方法:

新建目录文件的默认权限: 777- umask

Linux文件系统上的特殊权限

设置了特殊权限,可执行权限这个位置由x或者空变成s或S

  • SUID 作用于二进制可执行文件上,用户将继承此程序所有者的权限
  • SGID :

    若作用于二进制可执行文件上,用户将继承此程序所有组的权限

    若作于于目录上, 此目录中新建的文件的所属组将自动从此目录继承
  • STICKY 作用于目录上,此目录中的文件只能由所有者自已来删除

SUID

当我们的可执行文件具有suid权限以后,一个用户去运行这个可执行程序,他的身份就临时变成了这个可执行程序的所有者的身份

添加suid的方法:

  • 模式法:u+s

    chmod u+s filename
  • 数字法: 先写出传统权限 然后再加4

    比如: 传统权限是755 加suid权限后: 4755 --- rwsr-xr-x

    示例:chomod 4755 filename

SGID

作用一:用户运行这个程序的时候临时拥有所属组的权限

作用二: sgid加到一个目录文件上面,在这个目录文件里面创建的文件会继承这个目录文件得到所属组

添加SGID的方法:

  • 模式法:g+s

    chmod g+s filename
  • 数字法: 2

    chmod 2xxx filename

STICKY

此目录中的文件只能所有者来删除

添加STICKY的方法:

  • 模式法:o+t

    chmod o+t filename
  • 数字法: 1

    chmod 1xxx filename

    注意:一个文件能否访问和程序没有关系,和执行这个程序的用户身份有关系

Linux 文件权限相关知识的更多相关文章

  1. Linux文件权限基础知识

    一.文件权限概述 Linux中每个文件或目录都有一组一组9个基础权限位,每三位字符被分为一组,他们分别是属主权限位(占三个字符).用户组权限位(占三个字符).其他用户权限位(占三个字符).比如rwxr ...

  2. linux用户、文件权限相关命令

    root 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户在所 ...

  3. Linux系统用户/用户组/文件权限相关

    目录一.Linux系统用户/用户组权限相关二.Linux系统文件权限相关 一.Linux系统用户/用户组权限相关 .命令:usermod 用法:usermod [-agGus] user args ‘ ...

  4. Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  5. Linux:文件权限

    Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...

  6. Linux 文件权限于目录配置

    用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...

  7. Linux文件权限与属性详解 之 SUID、SGID & SBIT

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

  8. Linux 文件夹相关常用命令

    Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf  -r  就是向下递归,不管有多少级目录,一并删 ...

  9. 说说Linux文件权限那些事儿

    文件全部权 显示文件的全部权 更改文件的全部权 文件的权限 改动文件的权限 用符号表示法改动 用数字表示法改动 使用umask指定默认的文件权限 參考文献 首先我们要知道Linux的标准文件权限和安全 ...

随机推荐

  1. C. Tourist Problem 2021.3.29 晚vj拉题 cf 1600 纯数学题

    拉题链接  https://vjudge.net/contest/430219#overview 原题链接  https://codeforces.com/problemset/problem/340 ...

  2. ArcGIS使用技巧(四)——山体阴影

    新手,若有错误还请指正! 最近在制图的时候出现如下的情况(图1),怎么调整Display的三个参数都没用. 图 1 查看其信息,发现dem的像元大小为0.00027(图2),是未投影的 图 2 查看A ...

  3. docker基础_docker引擎内部原理

    docker引擎内部原理 docker主要由以下主要组件构成:docker客户端.docker守护进程(daemon).containerd.runc.shim daemon daemon的主要功能包 ...

  4. CVPR 2022数据集汇总|包含目标检测、多模态等方向

    前言 本文收集汇总了目前CVPR 2022已放出的一些数据集资源. 转载自极市平台 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读.CV招聘信息. M5Produc ...

  5. py文件加密打包成exe文件

    python的py.pyc.pyo.pyd文件区别 py是源文件: pyc是源文件编译后的文件: pyo是源文件优化编译后的文件: pyd是其他语言写的python库: 为什么选用Cpython .p ...

  6. 操作系统深度研究(75页PPT)

    上一篇:命令行版的斗地主你玩过没? 内容覆盖操作系统基本概念.分类.关键技术,体系架构,发展历程和主流国产操作系统厂商分析. 文中报告节选自兴业证券经济与金融研究院已公开发布研究报告,具体报告内容及相 ...

  7. 从旧金山到上海, HTTP/3 非常快!

    HTTP/3 是超文本传输协议 (HTTP) 的第三个版本,它对 Web 性能来说意义重大, 让我们看看HTTP/3 如何让网站的速度变得更快! 等等,HTTP/2 发生了什么? 不是几年前才开始推广 ...

  8. 北航内核操作系统-lab0

    1.lab0环境介绍. 2.进入实验界面. 3.进入实战测试. 任务要求: 3.1编写斐波那契数列. 3.2编写Makefile脚本. Makefile介绍: make命令执行时,需要一个 Makef ...

  9. 不要使用Java Executors 提供的默认线程池

    线程池构造方法 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUni ...

  10. jmeter 基础使用

    相关入门链接 JMeter 5.4.1 教程 插件安装 并发线程 ServerAgent 服务器监控 ServerAgent 下载 Ubuntu 20.04 install jdk/jre 服务器监控 ...