Linux操作系统之chmod命令详细用法:Linux中的Chmod命令用于更改或分配文件和目录的权限
前言
①chmod(change mode改变模式)命令用于改变Linux操作系统文件或目录的访问权限。用它控制文件或目录的访问权限。
②chmod命令有两种用法
- 一种是包含字母和操作符表达式的文字设定法。
- 一种是包含数字的数字设定法。
③文件或目录的访问权限分为:只读,只写和可执行三种。
④有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
⑤在Linux操作系统中,文件和文件夹都有自己的属性和权限,分别为 文件所有者(u)、文件所属组(g)、其他用户(o)的读访问、写访问、执行访问权限,简称为 r、w、x 或者 4,2,1 表示。
⑥在Linux操作系统中,文件的基本权限由3类用户9个字符组成,每个用户身份分别包含同样的 r、w、x 3个权限,通过将3个权限对应的数字相加来确定文件所具备的权限。当前,只有文件所有者和root用户才可以修改文件或者文件夹的权限。
⑦Linux操作系统中权限对于文件的作用:
- 读访问权限:表示可读取对应文件的实际内容,比如我们使用之前的tail命令来查看内容
- 写访问权限:表示可新增、编辑以及修改文件中的内容
- 执行访问权限:表示文件具有被系统执行的权限,只要文件具备执行访问权限(可执行文件)
⑧Linux操作系统中权限对于文件的作用:
- 读访问:表示具有读取文件夹结构的权限,也就是说可以看到文件夹中有哪些文件和子文件夹,一旦具备读权限,就可以使用 ls 命令来查看文件夹中的内容信息。
- 写权限:可以对文件夹进行创建(新建文件或者文件夹)、删除(已存在文件或者文件夹)、修改(已存在文件或者文件夹修改名称)、移动的权限(可以移动此文件夹下的文件和文件夹的位置),比如我们使用 rm、mv 等命令。
- 执行权限:我们知道,文件夹是不能够直接被运行的,对其赋予执行权限表示可进入此文件夹下,比如常用的 cd 命令的作用。
chmod命令格式
chmod [-cfvR] [--help] [--version] mode 文件路径/目录
chmod命令含义
mode : 权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...]
- u:表示该文件的拥有者(owner);g 表示与该文件的拥有者属于同一个群体(group);o 表示其他以外的人(other);a 表示这三者皆是(all)。
- +:表示增加权限;- 表示取消权限;= 表示唯一设定权限。
- r :表示可读取(read);w 表示可写入(write);x 表示可执行()。
chmod命令参数
-c : 若该文件权限确实已经更改,才显示其更改动作。(-c 或 --changes 文件权限已修改后,显示其更改动作)
-f : 若该文件权限无法被更改也不要显示错误讯息。(-f 文件权限无法修改时,不显示错误信息)
-v : 显示权限变更的详细资料。(-v 或 --verbose 显示每个文件或文件夹权限变更的执行流程资料)
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)(-R 或 --recursive 递归修改文件和目录)
--help : 显示chmod命令的辅助说明
--version : 显示chmod命令的版本
如下:
实例
一、包含字母和操作符表达式的文字设定法
1、将文件 file1.txt 设为所有人皆可读取:
chmod ugo+r file1.txt
2、将文件 file1.txt 设为所有人皆可读取:
chmod a+r file1.txt
3、将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmod ug+w,o-w file1.txt file2.txt
4、将 文件ex1.py 设定为只有该文件拥有者可以执行 :
chmod u+x ex1.py
5、将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
二、一种是包含数字的数字设定法
Linux操作系统中各权限所对应的数字:
r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=7。
Linux操作系统中对于文件权限的数字举例:
-rw------- (600) -- 只有属主有读写权限。 -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。 -rwx------ (700) -- 只有属主有读、写、执行权限。 -rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。 -rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。 -rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。 -rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
Linux操作系统中对于目录权限的数字举例:
drwx------ (700) - 只有属主可在目录中读、写。 drwxr-xr-x (755) - 所有用户可读该目录,但只有属主才能改变目录中的内容。
1、将hh.c文件修改为所有人皆可写可读可执行:
chmod 777 hh.c
2、修改某目录下所有的文件属性为所有人可写可读可执行:
chmod 777 *.*
3、修改某目录下所有的htm文件属性为所有人可写可读可执行:
chmod 777 *.htm
4、将目录 /tmp/sco修改为所有人皆可写可读可执行:
chmod 777 /tmp/sco
5、修改某目录下所有的文件夹属性为所有人可写可读可执行:
1、首先需要先进入该目录下 2、执行下面的命令 chmod 777 *
6、修改/tmp/sco目录下所有的文件和文件夹及其子文件夹属性为所有人可写可读可执行:
chmod -R 777 /tmp/sco