当前位置:首页 > 技术文章 > 正文内容

linux chmod命令设置目录/文件权限详解

douba31个月前 (07-24)技术文章9

linux中chmod命令用于改变系统文件或目录的访问权限,用数字设定法或者文字设定法去控制文件或目录的访问权限。linux系统每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。

参数

chmod [-cfvR] [--help] [--version] mode file

选择参数:

--reference=<目录或者文件> 设置成具有指定目录或者文件具有相同的权限

--version 显示版本信息

<权限范围>+<权限设置> 使权限范围内的目录或者文件具有指定的权限

<权限范围>-<权限设置> 删除权限范围的目录或者文件的指定权限

<权限范围>=<权限设置> 设置权限范围内的目录或者文件的权限为指定的值

-c 若该文件权限确实已经更改,才显示其更改动作

-f 若该文件权限无法被更改也不要显示错误讯息

-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

-v 运行时显示详细处理信息

mode 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]

u : 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

+ : 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r : 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

权限解读

ls -al java.txt

-rw-r--r-- 1 root root  61 10-13 08:23 java.txt   //表示java.txt是文件不是目录,属主有读写权限,属主同组的用户只有读权限,其他用户也只有读权限

第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。

文字设定法

1. 语法

chmod [who] [+ | - | =] [mode] 文件名

2. 实例

ls -al tomcat001.log //查看原来文件的权限
-rw-r--r-- 1 root root 302108 10-13 10:03 tomcat001.log
chmod a+x tomcat001.log //增加文件所有用户组可执行权限
ls -al tomcat001.log  //查看新的文件权限
-rwxr-xr-x 1 root root 302108 10-13 10:03 tomcat001.log

数字设定法

1. 语法

chmod abc 文件名     //其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

第一个数字表示文件所有者的权限

第二个数字表示与文件所有者同属一个用户组的其他用户的权限

第三个数字表示其它用户组的权限。

权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。

2. 实例

chmod 755 abc.log

chmod 4755 abc.log

1.文件所有者可读可写可执行

2.与文件所有者同属一个用户组的其他用户可读可执行

3.其它用户组可读可执行

chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。

实例

chmod 751 test.conf
chmod u=rwx,g=rx,o=x test.conf

2种方式效果一样,给test.conf的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

chmod =r ccc.log
chmod 444 ccc.log

相关文章

Linux下免交互模式的远程管理实现

通过linux脚本及expect可以不交互进行linux服务器的批量管理。一、远程传输文件cat send_file.sh#!/usr/local/bin/expect -f## 输入两个参数set...

Linux 系统中的 SSH 是什么?如何使用 SSH 进行远程登录和文件传输?

SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络上安全地进行远程登录和文件传输。它提供了一种安全的通信渠道,使用户能够通过一个加密的连接与远程主机进行交互。首先,让我们来了解一...

如何在 Linux 中查找大文件和目录?这些命令直接起飞!

在 Linux 系统中,磁盘空间管理是一项至关重要的任务。随着时间的推移,系统可能会积累大量文件和目录,导致磁盘空间不足。无论是清理无用文件、释放空间,还是定位占用大量磁盘空间的“罪魁祸首”,掌握查找...

Linux如何查看文件(linux如何查看文件夹创建时间)

Linux如何查看目录下的所有文件?用ls(list)查看当前目录下的所有文件和子目录。Ls查看目录下的文件,怎么区分是目录还是文件呢?第一种方式,我们可以通过颜色来区分目录和文件。默认情况下,目录显...

Linux 的这几种搜索方式,你都会了吗?

1.find 命令find 命令是用来在给定的目录下查找符合给定条件的文件语法格式:find [查找起始路径] [查找条件] [处理动作](1)根据名称查找:find [查找起始路径] -name 文...

linux系统日志查看命令(linux系统查看日志的详细信息)

cattail -f日 志 文 件 说 明/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure 与安全相关的日志信...