LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Unix或者类Unix文件系统中的每个文件(或者目录)

2023年5月9日 161点热度

简介

在Unix或则类Unix文件系统中,每位文件(或则目录,目录也被视为文件)都有自己的所属对象和一个与之相关的Unix用户组关联,可以通过设置对应的文件的权限标记指定对于所属用户、所属组以及其他用户的、读、写和可执行权限。假若通过组的形式对文件权限进行更改linux操作系统简介,这么将会促使当前组内的所有用户都具有对应的文件权限;若果是通过其它用户进行文件的权限更改,这么这个更改后的权限对于所有的登入用户就会具有对应的权限

通过ls-l命令可以查看当前目录下具有的文件信息:

权限结构

从总体上看,权限结构的第一位表示文件的类型,‘-’表示通常文件,‘d’则表示这是一个目录文件等,具体如下所示:

总共存在十个比特位unix 改变文件权限,不仅第一个比特位之外,旁边的(9)个比特位每三个一组,分别组成不同用户的访问权限,具体结构如右图所示:

每位组中的权限位描述如下:

如上图所述,此时的文件对于所属用户来讲具备读写权限、对于所属组来讲具备读、写权限,对于其他用户来讲只具备读取权限

因为每位所属位都是一个二补码位,因而实际上每位组的权限可以通过一个八补码的数字来表示,如下表所示:

权限二补码值八机制值描述

---

000

0

没有任何权限

--x

001

1

只有执行权限

-w-

010

2

只有写入权限

-wx

011

3

具备写入和执行权限

r--

100

4

只有读取权限

r-x

101

5

具备读取和写入权限

rw-

110

6

具备读取和写入权限

rwx

111

7

具备读取、写入和执行权限

因而有时看到使用chmod更改文件权限时,通过‘777’的选项来将所有的权限赋给权限组,致使当前文件对所有用户来讲都具备读取、写入和执行权限,这实际上不是一种挺好的方法

更改文件权限umask

在Unix文件系统中,通常文件的默认权限都是‘666’(目录文件为‘777’),即每位用户都对文件具备读写的权限,然而在创建文件时,须要将该权限除以umask对应的值,最终得到的值就是当前文件对应的权限。

在我的系统上,通过umask得到的值为‘0002’(第一个位为黏着位,在此不做剖析),因而当我创建文件时,会将默认的文件权限‘666’减去mask码‘002’,为‘664’,因而我创建的文件应该是对当前用户以及所属组具有读写权限,而对其它用户则只具备读取权限

umask的值通常坐落/etc/profile文件中,在我的Ubuntu上什么是linux,它坐落/etc/login.defs文件中,并且通常可以直接通过umask命令更改这个默认值,如下所示:

# 修改默认的 umask 值
umask 022

chmod

更改文件权限最常用的命令就是chmod,具体的使用方法如下所示:

chmod[options]modefile

其中,mode表示我们更改后的文件权限,倘若是通过八补码的形式进行设置的,这么会直接根据前面表格中的权限进行文件的权限更改,例如说,你希望给当前文件加上读写和可执行权限,而且不想其它的用户具有可执行权限,可以执行如下的命令:

# 现在 file.txt 文件的权限结构就变成了 -rwxrw---
chmod 760 file.txt

然而若果使用通常的符号模式进行更改,这么都会复杂一些。

使用符号模式的通常格式如下所示:

[ugoa...][+-=][rwxXstugo.....]

首先,第一个位置的字符定义了权限所属作用的对象,如下所示:

unix 权限恢复_改变文件或文件夹的显示方式_unix 改变文件权限

第二个位置表示希望给当前的文件执行的操作,‘+’表示给文件加上对应的权限,‘-’表示将文件具有的权限进行移除,‘=’表示将权限设置为前面的值

最后一个位置的符号代表作用到设置上的权限,,不仅rws之外,主要有以下几个额外的选项:

比如,假如希望给其他用户为文件添加该文件的可执行文件:

chmod o+x file.txt

chown

chown(changefileownerandgroup)改变文件所属者和所属组。而通常来讲,chown用于更改文件所属者,而通过chgrp改变文件默认的所属组

chown命令的格式如下所示:

chownoptionsowner[group]file

可以通过登陆名或则UID来指定文件的新属主,比如,假如你希望将文件的所属主更改为‘tom’,可以执行如下的命令:

chown tom a.txt

这项操作可能须要sudo:)

注意:只有root用户才能更改文件的属主。任何属主都还能更改文件的属组,前提是该属主必须是原属组和目标属组的成员

其实,chown也可以同时更改文件所属者和所属组,比如:

# 将 1.txt 的所属组修改为 dev,将所属用户修改为 jack
chown jack.dev 1.txt
# 单纯地修改该文件的所属组为 dev
chown .dev 1.txt
# 将1.txt 的所属用户修改为 jack,将所属组修改为 jack 的所属组
chown jack. 1.txt

chgrp可以愈发直观地更改文件的属主,如下所示:

# 修改 1.txt 的属组为 master
chgrp master 1.txt

该操作可能也须要sudo

特殊文件权限

上文的umask命令中实际上存在四个位,并且我们只是讨论了后三位,在此讨论特殊文件权限

在Linux上,为每位文件和目录权限提供了(3)个额外的权限位置:

同样的,这三个额外的bit位也可以以八补码的方式进行设置,具体对应关系如下表所示:

二补码值八补码值描述

000

0

所有位都清零

001

1

黏着位

010

2

SGID位

011

3

SGID和黏着位

100

4

SUID位

101

5

SUID和黏着位

110

6

SUID和SGID位

111

7

SUID、SGID和黏着位

假如希望为某个文件添加额外的比特位,只须要将额外的比特位放在原本的通常权限的八补码组前即可,比如unix 改变文件权限,假如希望给‘1.txt’文件只添加setuid特殊权限位,可以执行如下的chmod命令

chmod 4644 1.txt

因为涉及到权限相关的操作,因而可能须要sudo:)

假如习惯于使用符号表示的权限来设置特殊权限位,可以使用如下的形式进行操作:

# 给 1.txt 文件加上 setuid 权限位
chmod u+s 1.txt
# 给 1.txt 文件加上 setgid 权限位
chmod g+s 1.txt
# 给 1.txt 文件加上 sticky 粘着位
chmod +t 1.txt

这种操作同样须要sudo

实际使用

参考:

[1]《Linux命令行与Shell脚本编程大全》

[2]

[3]

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: chown linux文件权限 unix unix命令 文件目录
最后更新:2023年5月9日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
用集群技术构建网络服务器的发展趋势提出了 搜狗输入法forlinux版本安装指南: Linux中常用的4种虚拟化方法以及它们相应的优缺点 如何在linux下安装搜狗输入法后怎么用的那些神秘传说? Linux虚拟服务器LVS自动化运维方法及运维系统介绍 时间戳和时区1Unix(/)接收的两个推测 安装Linux和Windows双系统的硬盘分区是什么意思? linux怎么安装输入法Linux系统可以通过以下步骤步骤安装 (Unix)Unix时间戳转换公式及Unix操作成时间公式 Linux计算机卸载文件系统的使用实例分析 史上最全的Linux系统设备文件系统类型汇总! AzureKubernetes启用自动节点映像升级解决方法升级 不懂这些硬盘分区的知识,怎么能够安装操作系统 Linux中进程间通信有多少方式,分别是什么? 系统备份和恢复:ISO文件的一些常见用途和用途 (扣丁学堂)进程通信的应用场景数据传输详解 Windows操作系统建立兼容Unix/Linux命令的命令行工具 小节知识架构学习目标了解掌握掌握了解早期进程间通信机制的原理 Unix系统下的安装在Unix平台下安装PHP的方法 Linux进程间通信(IPC)有几种方式
Linux桌面发行版的分类、如何选择?TinyCore3.1——世界上最小的Linux桌面发行版Linux生态系统开发工具总结环境开发的工具介绍Linux占用磁盘空间最小.lin的可定制性很高为什么有这么多Linux发行版,我们需要所有操作系统?kxJ红软基地软件说明(2014年10月更新)SSH安全加固的文字,网友点评通过密钥登录更加安全Linuxcentos7虚拟机装找Linux镜像找的!找了好多都是度盘!unix系统界面 没有最好的Linux发行版是什么样的?Part1linux修改文件夹权限:以上方法只能改变单个文件fedora 禁止root登录 如何在Linux上建立SSH安全连接的方法?安全快速实例学习:修改某个目录下的所有文件的权限bin是什么格式的文件怎么打开bin文件打开方法?科林·沃森:Ubuntu默认是关闭root帐户的,这样做(知识点)chmod系统控制用户对文件权限的命令如何在UbuntuLinux中启用和禁用root用户登录系统?Linux系统chmod命令使用数字修改文件权限的方式有哪些?关于Ubuntu修改密码及密码复杂度策略设置的文章!Ubuntu本地提权漏洞CVE-2017-16995程序员不输入密码进入Linux系统,孩子们永远不知道下一个bug
Linux系统的修改权限与默认权限的分类及处理方法 驱动开发:通过ReadFile与内核层通信详细介绍如何使用应用层 C语言教程-Qt.12安装教程05-27 linux删除raid需要重装系统吗?需不需要安装系统删除了 如何入门嵌入式开发是什么?华妹告诉你! 高效搭建Linux Android开发环境,轻松提升开发体验 变量置为昨天的日期,并将其转换为Unix时间戳 如何显示英语总是默认支持的是中文? Linux计算机的防火墙必需运行OpenSSH服务器软件 linux多线程编程详解教程提供线程通过信号量实现通信代码 启动第一步--加载BIOS当你打开计算机电源(组图) Ubuntu本地提权漏洞CVE-2017-16995 Linux内核层网络编程框架研究(1)_光明网 linux系统位数最简单的命令--linux 如何在Linux的命令行中使用speedtest-cli来测试宽带连接速度 如何用命令修改Linuxrename命令的用法?命令用法 proc的缩写与内核相关的文件-上海怡健医学 Linux入门学习教程:如何一次性执行多个Linux命令 Linux启动时添加自定义脚本、命令或服务怎么做? Linux下如何定时执行php脚本?
标签聚合
虚拟机 linux服务器 文件目录 软件 linux脚本 sudo linux系统 命令模式 电脑 命令
书籍
课程
技术群
技术干货大合集↓
  • 2023年5月 / 86篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.