Linux中chmod权限设置方式

2025-01-10 16:50
文章标签 linux chmod 权限 设置 方式

本文主要是介绍Linux中chmod权限设置方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活...

设置基本权限命令:chmod

1、权限介绍

linux中,文件和目录的权限由三个部分构成:所有者(user)、所属组(group)和其他用户(others)。

每个用户组有读取(r)、写入(w)和执行(x)的权限。文件和目录的权限可以使用 ls -l 命令查看。

chmod命令语法:

chmod [选项] [模式] 文件或目录

在 Linux 中,可以使用以下命令设置文件或目录的权限:

  • chmod 命令:用于修改文件或目录的权限。常用的权限模式包括数字模式、符号模式和符号模式的简略写法。
  • chown 命令:用于修改文件或目录的所有者和所属组。可以将文件或目录的所有权从一个用户转移到另一个用户。常用的格式为 chown user:group file.txt,其中 user 是所有者的用户名,group 是所属组的组名。
  • chgrp 命令:用于修改文件或目录的所属组。可以将文件或目录的所属组从一个组转移到另一个组。常用的格式为 chgrp group file.txt,其中 group 是所属组的组名。

2、chmod命令常见用法和示例

  • r:读取权限,可以查看文件内容或列出目录中的文件列表。
  • w:写入权限,可以修改文件内容或创建、删除文件。
  • x:执行权限,对于文件表示可执行文件,对于目录表示可以进入该目录。
  • s:设置了 SUID 或 SGID 权限,用于特殊权限设置。当文件被执行时,以文件所有者或所属组的身份运行。
  • t:设置粘贴位权限,用于目录。只有目录所有者才能删除或重命名此目录中的文件。

数字模式(八进制):

使用数字来表示权限,每个权限用三位数字表示。其中,每一位的含义如下:

  • 4:读取权限(r)
  • 2:写入权限(w)
  • 1:执行权限(x)

将所有者、所属组和其他用户的权限分别加起来,形成一个三位数。

符号模式:

使用符号来表示权限的增加或减少。符号模式包括以下符号:

  • +:添加权限
  • -:移除权限
  • =:设置精确权限

可以结合以下字符来www.chinasem.cn表示权限:

  • r:读取权限
  • w:写入权限
  • x:执行权限
  • u:所有者
  • g:所属组
  • o:其他用户
  • a:所有用户

符号模式的简略写法:

  • 使用 u、g、o 和 a 分别表示所有者、所属组、其他用户和所有用户。
  • 使用 +、- 和 = 来添加、移除和设置权限。
  • 使用 r、w 和 x 来表示读取、写入和执行权限。
  • 例如,chmod u=rw,go=r file.txt 将文件的所有者设置为读写权限,所属组和其他用户设置为只读权限。

3、文件权限详解

以下是ls -l 输出定义:

root@VM-12-3-Ubuntu:~# ls -l 1.txt
-rw-r--r-- 1 root root 0 Jan 29 14:27 1.txt
root@VM-12-3-ubuntu:~#


第一个字符 - 表示这是一个普通文件。
rw- 表示所有者(root)具有读android写权限。
r-- 表示所属组(root)具有读权限。
r-- 表示其他人具有读权限。
1: 这是链接数,表示指向该文件的硬链接数量。

root: 这是所有者的用户名。

root: 这是所属组的组名。

0: 这是文件的大小(以字节为单位)。

Jan 29 14:27: 这是文件的最后修改日期。

1.txt: 这是文件的名称。

如果使用普通用户去编辑这个文件,则会显示权限不足,如下

Linux中chmod权限设置方式

[root@test1 ~]# touch test.txt
[root@test1 ~]# ls -l test.txt
-rw-r--r--. 1 root root 0 Jan 19 09:49 test.txt
[root@test1 ~]# chmod ugo+r test.txt
[root@test1 ~]# ls -l test.txt
-rw-r--r--. 1 root root 0 Jan 19 09:49 test.txt
[root@test1 ~]# chmod u+rwx test.txt
[root@test1 ~]# ls -l test.txt
-rwxr--r--. 1 root root 0 Jan 1编程9 09:49 test.txt
[root@test1 ~]#

4、chmod通过字符添加权限

以下是常用的字符表示法:

  • r 表示读取权限
  • w 表示写入权限
  • x 表示执行权限

在这些字母之前,你可以使用以下字母中的一个来指定要添加权限的用户组:

  • u 表示文件所有者
  • g 表示文件所属组
  • o 表示其他用户
  • a 表示所有用户

例如:

4.1、将文件1.txt的所有者和所属组添加China编程执行权限,如下权限前后变化

root@VM-12-3-ubuntu:~# ls -l 1.txt
-rw-r--r-- 1 root root 0 Jan 29 14:27 1.txt
root@VM-12-3-ubuntu:~# chmod u+x,g+x 1.txt
root@VM-12-3-ubuntu:~# ls -l 1.txt
-rwxr-xr-- 1 root root 0 Jan 29 14:27 1.txt
root@VM-12-3-ubuntu:~#

4.2、将所有用户的读取、写入和执行权限添加到目录test_dir中

root@VM-12-3-ubuntu:~# ls -l
total 8
-rwxr-xr-- 1 root root    0 Jan 29 14:27 1.txt
drwx------ 4 root root 4096 Nov 14 22:47 snap
drwxr-xr-x 2 root root 4096 Jan 30 10:00 test_dir

#a+rwx 表示将所有用户的读取、写入和执行权限添加到目录中
root@VM-12-3-ubuntu:~# chmod a+rwx test_dir
root@VM-12-3-ubuntu:~# ls -l
total 8
-rwxr-xr-- 1 root root    0 Jan 29 14:27 1.txt
drwx------ 4 root root 4096 Nov 14 22:47 snap
drwxrwxrwx 2 root root 4096 Jan 30 10:00 test_dir
root@VM-12-3-ubuntu:~#

4.3、将所有用户的写权限添加到目录test_dir中,并递归地更改其所有子目录和文件的权限

root@VM-12-3-ubuntu:~# ls -l
total 8
-rwxr-xr-- 1 root root    0 Jan 29 14:27 1.txt
drwx------ 4 root root 4096 Nov 14 22:47 snap
drwxrwxrwx 2 root root 4096 Jan 30 10:00 test_dir


#在这个命令中,-R 参数表示递归地更改目录及其所有子目录和文件的权限。a+w 表示将所有用户的写权限都添加到了目录及其所有子目录和文件上
root@VM-12-3-ubuntu:~# chmod -R a+w test_dir
root@VM-12-3-ubuntu:~# ls -l
total 8
-rwxr-xr-- 1 root root    0 Jan 29 14:27 1.txt
drwx------ 4 root root 4096 Nov 14 22:47 snap
drwxrwxrwx 2 root root 4096 Jan 30 10:00 test_dir
root@VM-12-3-ubuntu:~#

4.4、将文件所有者和所属组的只读权限添加到test.txt 文件中

#root用户默认创建文件的权限就是所有者和所属组只读权限
root@VM-12-3-ubuntu:~# touch test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan 30 11:00 test.txt

#ug+r 表示将文件所有者和所属组的读取权限添加到了文件上
root@VM-12-3-ubuntu:~# chmod ug+r test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan 30 11:00 test.txt
root@VM-12-3-ubuntu:~#

4.5、将文件所有者和其他用户执行权限添加到test.txt文件中,而不影响其所属组的权限

root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan 30 11:16 test.txt

#uo+x 表示将文件所有者和其他用户的执行权限添加到了文件上,而不影响其所属组的权限
root@VM-12-3-ubuntu:~# chmod uo+x test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rwxr--r-x 1 root root 0 Jan 30 11:16 test.txt
root@VM-12-3-ubuntu:~#

5、chmod以数字添加权限

  • 4:读权限,表示可以读取文件内容或查看目录中的文件列表。
  • 2:写权限,表示可以修改文件内容或在目录中创建、删除文件。
  • 1:执行权限,对于文件来说表示可以执行,对于目录来说表示可以进入该目录。

这些数字可以通过相加来表示不同的权限组合,例如:

  • 7:表示拥有读、写和执行权限(4 + 2 + 1)。
  • 6:表示拥有读和写权限,但没有执行权限(4 + 2)。
  • 5:表示拥有读和执行权限,但没有写权限(4 + 1)。
  • 4:表示只有读权限,没有写和执行权限。

常用添加数字权限例子:

5.1、将文件所有者的读、写和执行权限加到test.txt文件中

root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan 31 08:43 test.txt

# 700 表示文件所有者获得读、写和执行权限,而其它用户没有任何权限
root@VM-12-3-ubuntu:~# chmod 700 test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rwx------ 1 root root 0 Jan 31 08:43 test.txt
root@VM-12-3-ubuntu:~#

5.2、将文件所有者的读和写权限,所属组的读权限,其他用户的读权限添加到test.txt文件中

#一开始的权限是700
root@VM-12-3-ubuntu:~# ls -l test.txt
-rwx------ 1 root root 0 Jan 31 08:43 test.txt

# 644 表示文件所有者获得读和写权限,所属组和其他用户获得只读权限
root@VM-12-3-ubuntu:~# chmod 644 test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan 31 08:43 test.txt
root@VM-12-3-ubuntu:~#

5.3、将目录 test_dir 的所有者的读、写和执行权限,所属组的读和执行权限,其他用户的执行权限添加到了目录上

#开始的权限是:文件所有者和所属组的读、写和执行权限都添加到了目录及其所有子目录和文件上
root@VM-12-3-ubuntu:~# ls -l
total 8
drwxrwxrwx 2 root root 4096 Jan 30 10:00 test_dir

#现在的权限是:750 表示文件所有者获得读、写和执行权限,所属组获得读和执行权限,其他用户获取执行权限
root@VM-12-3-ubuntu:~# chmod 750 test_dir
root@VM-12-3-ubuntu:~# ls -l
total 8
drwxr-x--- 2 root root 4096 Jan 30 10:00 test_dir
root@VM-12-3-ubuntu:~#

5.4、使文件所有者具有读、写和执行权限,而所属组和其他用户只有读和执行权限

root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan 31 08:43 test.txt

# 755 表示文件所有者具有读、写和执行权限,而所属组和其他用户只有读和执行权限
root@VM-12-3-ubuntu:~# chmod 755 test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rwxr-xr-x 1 root root 0 Jan 31 08:43 test.txt
root@VM-12-3-ubuntu:~#

5.5、使文件所有者具有读和写权限,所属组具有读权限,其他用户没有任何权限

root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Jan www.chinasem.cn31 10:05 test.txt

# 640 表示使文件所有者具有读和写权限,所属组具有读权限,其他用户没有任何权限
root@VM-12-3-ubuntu:~# chmod 640 test.txt
root@VM-12-3-ubuntu:~# ls -l test.txt
-rw-r----- 1 root root 0 Jan 31 10:05 test.txt
root@VM-12-3-ubuntu:~#

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持China编程(www.chinasem.cn)。

这篇关于Linux中chmod权限设置方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153017

相关文章

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初