Linux中chmod权限设置方式
设置基本权限命令: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)
将所有者、所属组和其他用户的权限分别加起来,形成一个三位数。
符号模式:
使用符号来表示权限的增加或减少。符号模式包括以下符号:
+
:添加权限-
:移除权限=
:设置精确权限
可以结合以下字符来表示权限:
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)具有读写权限。 r-- 表示所属组(root)具有读权限。 r-- 表示其他人具有读权限。 1: 这是链接数,表示指向该文件的硬链接数量。 root: 这是所有者的用户名。 root: 这是所属组的组名。 0: 这是文件的大小(以字节为单位)。 Jan 29 14:27: 这是文件的最后修改日期。 1.txt: 这是文件的名称。
如果使用普通用户去编辑这个文件,则会显示权限不足,如下
[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 19 09:49 test.txt [root@test1 ~]#
4、chmod通过字符添加权限
以下是常用的字符表示法:
r
表示读取权限w
表示写入权限x
表示执行权限
在这些字母之前,你可以使用以下字母中的一个来指定要添加权限的用户组:
u
表示文件所有者g
表示文件所属组o
表示其他用户a
表示所有用户
例如:
4.1、将文件1.txt的所有者和所属组添加执行权限,如下权限前后变化
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 31 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:~#
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解CentOS升级Python2.6到Python2.7并安装pip
本篇文章主要介绍了CentOS升级Python2.6到Python2.7并安装pip,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-03-03红帽RHEL8和7的区别对比分享(Centos8与7参照redhat)
这篇文章主要介绍了红帽RHEL8和7有什么区别(Centos8与7参照redhat),包括红帽RHEL8和RHEL7功能区别对比和RHEL8额外新功能新特性,对红帽RHEL8和7相关知识感兴趣的朋友跟随小编一起看看吧2023-01-01
最新评论