38. 【Linux教程】Linux 修改文件权限

简介: 38. 【Linux教程】Linux 修改文件权限

前面小节介绍了用户权限相关的知识,从这一小节开始我们将要开始学习文件权限相关的知识,如何给文件修改权限,之前小节介绍过 ls 命令展示出来的一些文件相关的信息,这里面就有和文件权限相关的信息。


在 Linux 系统中,有时候某些文件内容不能修改,只能拥有只读权限,某些文件需要读写权限,即可以读,又可以写,某些文件需要可执行权限,这个时候若文件的相关权限不正确,就可能报错业务出错,因此需要对文件权限进行修改。

1. Linux 文件权限值

在上述权限中的文件读、写、执行权限信息中,对应着二进制数值,对应关系如下表: image.png

2. umask 命令

在 Linux 系统中创建一个新的文件或者目录的时候,它们都会有默认的访问权限,umask 命令则可以修改这些文件默认的访问权限。例如用户创建一个文件的默认访问权限为 rw-rw-rw-(八进制值666) ,创建目录的默认权限 rwxrwxrwx(八进制值777) ,而 umask 值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。

2.1 umask 命令查看默认权限去除值

使用 umask 命令可以查看一个默认的权限信息,命令如下:

umask

执行结果如下图:

如上图所示,当前文件或目录权限相关的是默认去除值是 0022,其中第一位 0 表示的是一项特殊安全权限,暂且不讨论。


后面三位 022 则和普通权限 rwx 有关,其中后三位中的第一位 0 表示创建者/所有者相关的权限,表示从用户权限去掉 0 对应的权限 ---(不变),后三位中的第二位 2 表示用户组相关的权限,表示从用户组权限去掉 2 对应的权限-w-(写权限),后三位中的第三位 2 表示和其他用户的权限有关,表示其他用户的权限去掉 2 对应的权限 -w-(写权限)。


所以创建 文件 的默认八进制值 666(rw-rw-rw-) 去掉 022(----w--w-) 对应的相关权限之后为 644(rw-r--r--),创建 目录 的默认八进制值 777(rwxrwxrwx) 去掉 022(----w--w-) 对应的相关权限之后为 755(rwxr-xr-x),下面通过示例来验证一下:

umask
 
touch testfile
 
ls -l testfile
 
mkdir testdir
 
ls -l

执行结果如下图:

Tipsumask 命令展示出来表示从原来的默认值去除的权限值,新建文件默认的权限值是 666,新建目录的权限值是 777umask 命令展示的值是在这个基础之上去除的。

2.2 umask 命令修改默认去除权限

若想要新建的文件有指定的初始默认权限,可以使用 umask 命令,命令如下:

umask 226
 
umask

执行结果如下图:

新建文件默认的权限值是 666,新建目录的权限值是 777226 表示在这个基础上去除

-w--w-rw- 之后的权限。

3. chmod 命令

3.1 修改文件权限

新建一个文件 newfile,然后使用 chmod 命令修改文件权限,新建和修改文件权限命令如下:

touch newfile
 
ls -l newfile
 
chmod 777 newfile
 
ls -l newfile

执行结果如下图:

3.2 修改目录权限

使用 chmod 命令修改目录的权限,修改目录权限命令如下:

ls -l
 
chmod -R 755 study
 
ls -l

执行结果如下图:

3.3 chmod 命令限定权限

chmod 命令可以修改已经存在的文件或目录的权限,可以分别修改它们用户的权限、用户组的权限、其他用户的权限,也可以修改上述全部的权限,下图表示 chmod 权限相关的操作:

下面以新增文件其他用户写权限为例,命令如下:

ls -l testfile
 
chmod o+w testfile
 
ls -l testfile

执行结果如下图:

3.4 chmod 权限作用对象

  • u 表示用户;
  • g 表示用户组;
  • o 表示其他用户;
  • a 表示全部。

3.5 权限操作相关符号

  • + 表示在现有权限基础上增加权限;
  • - 表示在现有权限基础上移除权限;
  • = 表示在现有权限基础上设置成等号后的权限。

3.6 权限设置值

  • r 表示读权限;
  • w 表示写权限;
  • x 表示执行权限。

4. 小结

本小节介绍了文件或目录权限相关的命令,新建的文件权限默认是 rw-rw-rw-,新建目录权限默认是 rwxrwxrwx,使用 umask 命令可以对新建的文件或目录的权限去除某些特定的权限。还介绍了 chmod 命令直接配合八进制权限值修改文件或目录的权限,也可以使用限定符在原来权限基础上增加、移除、设定某些权限。


相关文章
|
9月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
700 3
|
4月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
5月前
|
NoSQL 关系型数据库 Linux
ERPNext 搭建教程:Linux 一键部署与维护
ERPNext 是一款开源免费的企业资源计划系统,适用于中小企业信息化管理。基于 Python 和 Frappe 框架开发,支持财务、销售、人力、库存等模块,具备高度可定制性。本文介绍如何通过 Websoft9 在 Linux 下快速部署 ERPNext,并提供环境配置、系统维护等实用建议,适合开发者和企业用户快速上手。
902 7
ERPNext 搭建教程:Linux 一键部署与维护
|
5月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
617 13
|
4月前
|
Ubuntu 网络协议 Unix
Linux教程(Ubuntu为蓝本)之Linux介绍篇
SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。[1-2]
|
4月前
|
Ubuntu Linux 数据安全/隐私保护
Win10安装Linux子系统教程!如何在Win10系统中安装Ubuntu!
登录系统后,输入cd /返回上一级,然后再输入“ls”查看一下系统文件目录,看看对不对!
|
8月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
1601 64
|
6月前
|
关系型数据库 Linux 数据库
Linux系统安装Postgre和Postgis教程
本文详细介绍了PostgreSQL/PostGIS的卸载与安装步骤。卸载部分涵盖Docker、Yum/RPM及源码编译安装的清理方法,包括停止服务、删除容器/包、清理残留文件和环境变量等操作,并强调卸载前需备份数据库数据。安装部分提供在线yum安装和离线源码编译两种方式,前者简单快捷,后者需准备依赖(如gcc、readline-devel等)、创建用户组、初始化数据库及配置访问规则。每步均附带命令示例,确保操作清晰明确。
993 0
|
9月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
989 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
10月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
823 32