Linux系列之文件和目录权限
前言
我们知道,root
用户基本上可以在系统中做任何事。其他用户有更多的限制,并且通常被收集到组中。你把有类似需求的用户放入一个被授予相关权限的组,每个成员都继承组的权限。
让我们看一下:
- 查看权限(Checking permissions)
- 更改权限(Changing permissions)
- 默认权限(Default permissions)
- 特殊权限(Special permissions)
授予权限
权限有三个级别,分别是:
r
:读取权限。w
:写入权限。x
:执行权限。
当一个文件被创建时,通常创建它的用户是它的所有者,而拥有组是用户当前的组。我们可以通过使用chown
命令,来将文件的所有权转移到不同的用户。
chown gps /tmp/file.txt
这里,我们把/tmp
目录下的file.txt
的所有权授予用户gps
。
我们也可以转移文件的所有权从一个组到另一个组,使用chgrp
命令来达到目的。
chgrp cloudadmins newIDS
假设我们有一个名为newIDS
的应用程序,这里我们把组的所有权交给newIDS
的cloudadmins
组。
查看权限
ls -l
带有-l
(long)开关的ls
命令将显示目录的内容,包括权限在内。让我们把这个问题再细分一下。
drwxr-xr-x 2 azureuser azureuser 4096 Feb 14 22:31 Videos
第一个字符表示文件类型,例子当中是d
,意味着它是一个目录。这个字符可以是:
- (-) 常规文件。
- (d) 目录。
- (c) 特殊字符。
- (b) 特殊块。
- (p) fifo(命令管道)。
- (l) 符号链接。
- (s) 套接字。
通常情况下,你会看到d
、-
、l
。在本文中我们将重点关注-
和d
。符号链接有点类似于文件链接。
然后我们可以看到:
rwxr-xr-x
共有9个字符,头三个表示用户的权限;中间三个表示组的权限;后面三个表示其他用户的权限。
- 在该示例中,组用户拥有
rwx
(读、写、执行)权限。 - 组拥有
r-x
(读、不可写、执行)权限,-
表示没有授予相应的权限。 - 其他用户拥有
r-x
(读、不可写、执行)权限。
2 azureuser azureuser 4096 Feb 14 22:31 Videos
剩余的列包括:链接的数量、用户、大小、创建日期以及名称。
如有需要,可以更改权限。
更改权限
只有root
用户或者文件的所有者才可以更改权限,我们使用chmod
命令来处理,并且我们可以使用十进制符号或者UGO(User, Group, Other),让我们先看看十进制符号。
使用十进制符号更改权限
该表包含所有可能的权限组合及其八进制和二进制表示。
二进制 | 八进制 | rwx |
---|---|---|
000 | 0 | --- |
001 | 1 | --x |
010 | 2 | -w- |
011 | 3 | -wx |
100 | 4 | r-- |
101 | 5 | r-x |
110 | 6 | rw- |
111 | 7 | rwx |
如果我们想表示所有者、组、其他用户的所有权限,我们可以使用
777
该示例中,每个数字都是7
,表示所有者、组、其他用户的权限。在表格中,我们发现八进制中的7
对应rwx
,也就是所有的(读、写、执行)权限。那么应该如何使用chmod
呢?
chmod 777 sample.txt
这会给予所有者所有权限、组所有权限、所有其他用户所有权限。
chmod 700 sample.txt
chmod 774 sample.txt
chmod 755 sample.txt
- 第一行将会给予所有者所有权限、组没有权限、其他用户没有权限。
- 第二行将会给予所有者所有权限、组所有权限、其他用户只读权限。
- 第三行将会给予所有者所有权限、组读和执行的权限、其他用户读和执行的权限。
使用UGO更改权限
用来更改权限的数字方法是最常用的,但我们仍可以使用符号方法:UGO(User, Group, Other)。
-
移除权限。+
添加权限。=
设置权限。
让我们移除拥有sample.txt
的用户的写权限。
chmod u-w sample.txt
我们可以一次更改多个权限。
chmod u-rw sample.txt
chmod u+rwx,o+rwx sample.txt
默认权限
Linux自动赋予了所有文件和目录默认权限。文件的默认权限为666
,目录的默认权限是777
。默认情况下,下载文件后不能立即执行它。
可以使用umask
(user file-creation mask)方法更改默认权限。这个方法表示你想从一个文件或目录的基本权限中删除的权限。
umask
是一个三位数的八进制数字,对应三个权限数字。在大多数 Debian 系统中,umask
被设置为 022。它被减去权限数后,就会得到新的权限状态。
新文件 | 新目录 | 权限 |
---|---|---|
666 | 777 | Linux基本权限 |
-022 | -022 | umask |
644 | 755 | 结果权限 |
每位用户可以在个人的.profile
文件中,为文件和目录设置个人的默认umask
值。
查看umask
的当前值:
umask
特殊权限
set user ID (SUID)
set group ID (SGUID)
sticky bit
SUID
SUID位表示任何用户都可以用所有者的权限来执行文件,但这些权限并不超出使用该文件的范围。要改变这个位,你要把chmod
后的第一个值改为4,通常你只用3个数字,因为第一个数字被默认为0。 如果你在一个文件的所有者权限中看到一个s
代替x
,这意味着SUID位被设置。
chmod 4644 sample.txt
SGID
SGID将组的所有权分配给文件。对共享组目录很有用。你可以将SGID应用于目录和文件。
在一个文件上设置了SGID位,如果所有者属于具有执行该文件权限的组,那么没有执行权限的人也可以执行该文件。
在一个目录上设置了SGID位,在该目录中创建的新文件的所有权就归属该目录创建者的组,而不是文件创建者的组。
SGID位在常规权限前表示为2。如果你在一个文件或目录的组权限中看到一个s
代替x
,这意味着SGID位被设置。
chmod 2644 sample.txt
Sticky Bit(粘滞位)
这种权限在其他用户中由t
代替x
。当你在一个目录上设置粘滞位时,人们只能删除该目录中属于他们的文件。他们不能删除属于其他人的文件,无论文件权限的组合是什么。你只能对目录应用粘滞位。如果你在一个目录的其他用户的权限中看到一个t
代替x
,这意味着粘滞位被设置。
chmod 1777 sample.txt
粘滞位被现代Linux系统所忽略,但你至少应该熟悉这个术语。
原文链接:https://www.madebygps.com/an-intro-to-linux-file-and-directory-permission/
Linux系列之文件和目录权限的更多相关文章
- Linux CentOS7 VMware 文件和目录权限chmod、更改所有者和所属组chown、umask、隐藏权限lsattr/chattr
一.文件和目录权限chmod u User,即文件或目录的拥有者:g Group,即文件或目录的所属群组:o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围:a All,即全部 ...
- Linux下的文件与目录权限
一.用户(User).群组(Group)和其他人(Others) linux是多用户多任务的操作系统,同一时刻可能会有多个用户登录系统,考虑到文件的安全性等问题,所以Linux下的文件都属于一个特定的 ...
- 【Linux安全】文件或目录权限设置
实例演示: 要求:新建文件夹,名称为secure,要求改文件夹只能被创建者deadmin以及与deadmin同组用户进行读.写.执行的权限, 其他用户均只有读的权限. 查看 一下secure原本的权限 ...
- Linux文件和目录权限详细讲解
转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
- Linux文件及目录权限解析
Linux系统9位基础权限体系 文件权限 * r权限 可读 对文件具有读取及查看文件内容的全新啊 * w权限 可写 对文件具有新增.修改文件内容的权限 ...
- [转]linux如何修改文件或目录的权限(chmod)
linux如何修改文件或目录的权限(chmod) chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符.777,第一个7代表文件所属者的权限,第二个 ...
- linux文件或目录权限修改后如何恢复(备份了权限就能恢复)
操作系统 RHEL5 如果你在linux上执行了如下操作chmod -R 777 / 或者 chmod -R 700 /那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不来 ...
- 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装
Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...
- Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理
一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...
随机推荐
- MySQL按照日期查询
MySQL按时间查询 今天 select * from 表名 where TO_DAYS(时间字段名) = TO_DAYS(now()); 昨天 SELECT * FROM 表名 WHERE TO_D ...
- 使用gradle的方式进行Springboot3的web开发(微服务版)
简要: 最近看了很多的Springboot3的项目,但是发现很多都是用maven来进行版本管理的,很少有用gradle来管理的,通过网上查找资料,看视频,终于自己写一个gradle管理的Springb ...
- Python中的协程、线程和进程
一.协程与多线程和多进程一起使用有什么不同 协程.多线程和多进程都是实现程序并发执行的方法,不过它们在工作方式和适合的应用场景上存在一些区别. 1.协程(Coroutine) 协程是在单一线程 ...
- DVWA File Upload(文件上传)全等级
File Upload(文件上传) 目录: File Upload(文件上传) 一句话木马的构成 1. Low 1.上传一句话木马1.php 2.中国蚁剑 2.Medium 3. High 4.Imp ...
- Golang 命名返回值和普通返回值
1.概述 在Go语言中,函数可以有命名返回值和普通(匿名)返回值.命名返回值会被视为定义在函数顶部的变量,并且在使用 return 语句返回时,不再必须在其后面指定参数名,也就是支持"裸&q ...
- 快速入门Mybatis完成基本CURD(注解实现)
一.什么是Mybatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyB ...
- .NET技术分享日活动-202110
2021年10月15日下午,个人组织举办了山东地区的第三次.NET技术分享日活动.围绕.NET.低代码Low Code.云原生 Cloud Native.大数据.算法等方向进行创新技术的实践分享. 本 ...
- EDS从小白到专家丨打造数据交换的六边形卫士,让你的数据你做主
本文分享自华为云社区<[EDS从小白到专家]第4期:打造数据交换的六边形卫士,让你的数据你做主>,作者: 开天aPaaS小助手 . 你还在担心数据共享后一旦"失控"将爆 ...
- Sechunter移动应用隐私合规检测详解
摘要:本文简要介绍Sechunter移动应用隐私合规检测的方法步骤,以及目标检测技术在其中的应用. 本文分享自华为云社区<移动应用隐私合规检测简介及目标检测技术的应用>,作者:wolfre ...
- 火山引擎DataLeap的Data Catalog系统公有云实践 (上)
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前言 Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业 ...