第二章 文件、目录管理
2.14 文件或目录属性、权限及chmod命令
- 属性
用ls命令查看文件信息的时候共显示了9列内容(用空格划分),其代表的含义如下图:

文件类型在前面章节讲到,有:d,-,l,c,s,b等。
补充:
# ls -l /etc/
总用量 1088
-rw-r--r--. 1 root root 16 5月 22 01:29 adjtime
-rw-r--r--. 1 root root 1518 6月 7 2013 aliases
-rw-r--r--. 1 root root 12288 5月 22 01:38 aliases.db "."表示该文件受SELinux控制(SELinux防火墙未完全关闭时显示)
- 权限
上图中‘rwxr-xr-x’即为文件或目录的权限,分别代表所有者(user)权限——前三位,所属组(group)权限——中间三位,其他非本群组(others)权限——最后三位。其中,r(read)代表可读,w(write)代表可写,x(execute)代表可执行。
- chmod命令
Linux中可以用数字代替rwx来更改权限,具体规则:r=4,w=2,x=1,-=0,eg:‘-rwxrwxrw-’用数字表示就是770,计算规则:rwx=4+2+1=7,rwx=4+2+1=7,---=0+0+0=0。
语法: chmod [-R] xyz [filename] (在此xyz代表数字)
-R 选项作用表示级联更改。
注: 在Linux系统中,root用户默认一个目录的权限为755,而一个文件的权限为644。
eg1:
[root@adai002 ~]# mkdir test
[root@adai002 ~]# touch ./test/test2
[root@adai002 ~]# ls -ld test
drwxr-xr-x 2 root root 19 6月 6 21:22 test
[root@adai002 ~]# ls -l test
总用量 0
-rw-r--r-- 1 root root 0 6月 6 21:22 test2
[root@adai002 ~]# chmod 750 test 更改test的权限为750
[root@adai002 ~]# ls -ld test
drwxr-x--- 2 root root 19 6月 6 21:22 test
[root@adai002 ~]# ls -l test/test2 查看test2的权限,未发生改变
-rw-r--r-- 1 root root 0 6月 6 21:22 test/test2
[root@adai002 ~]# chmod 755 test/test2 更改test2 的权限为755
[root@adai002 ~]# ls -l test/test2
-rwxr-xr-x 1 root root 0 6月 6 21:22 test/test2
[root@adai002 ~]# chmod -R 700 test 级联更改test、test2的权限为700
[root@adai002 ~]# ls -ld test
drwx------ 2 root root 19 6月 6 21:22 test
[root@adai002 ~]# ls -l !$
ls -l test
总用量 0
-rwx------ 1 root root 0 6月 6 21:22 test2
!!! test和test2的权限均改为700
eg2:
[root@adai002 ~]# ls -ld test
drwx------ 2 root root 19 6月 6 21:22 test
[root@adai002 ~]# ls -l test
总用量 0
-rwx------ 1 root root 0 6月 6 21:22 test2
[root@adai002 ~]# chmod u=rwx,g=rx,o=rw test 更改test的所有者权限u=rwx,所属组权限g=rx,其他非群组权限o=rw
[root@adai002 ~]# ls -ld test
drwxr-xrw- 2 root root 19 6月 6 21:22 test
[root@adai002 ~]# chmod a+x test/test2 更改test2所有权限(包含u,g,o)增加x权限(此处a=all)
[root@adai002 ~]# ls -l test
总用量 0
-rwx--x--x 1 root root 0 6月 6 21:22 test2
2.15 chown命令、chgrp命令
- chown命令
更改目录或文件的所有者以及所属组。
chown=change owner
语法:
chown [-R] 账户名 filename 更改所有者
chown [-R] 账户名:组名 filename 更改所属组
选项: -R的作用是级联更改
eg:
[root@adai001 tmp]# ls -l
总用量 0
drwxr-xr-x 2 root root 22 6月 7 07:23 adai001
drwx------ 3 root root 17 6月 7 07:16 systemd-private-bd8a94da330a4bc1984e8c95d8651460-vmtoolsd.service-ewuptl
[root@adai001 tmp]# ls -l adai001
总用量 0
-rw-r--r-- 1 root root 0 6月 7 07:21 adai.txt
[root@adai001 tmp]# chown adai adai001/adai.txt 更改所有者(user)
[root@adai001 tmp]# ls -l adai001
总用量 0
-rw-r--r-- 1 adai root 0 6月 7 07:21 adai.txt
[root@adai001 tmp]# chown :user1 adai001/adai.txt 更改所属组(group)
[root@adai001 tmp]# ls -l adai001
总用量 0
-rw-r--r-- 1 adai user1 0 6月 7 07:21 adai.txt
[root@adai001 tmp]# chown root:root adai001/adai.txt 同时更改所有者(user)和所属组(group),该命令还可以写成‘chown root.root adai001/adai.txt’
[root@adai001 tmp]# ls -l adai001
总用量 0
-rw-r--r-- 1 root root 0 6月 7 07:21 adai.txt
- chgrp命令
更改文件或目录的所属组。
chgrp=change group
语法: chgrp [-R] [组名] filename (-R表示级联更改,只针对目录文件)
eg1: 更改文件的所属组
[root@adai001 ~]# groupadd testgroup 添加组testgroup
[root@adai001 ~]# touch test1 创建文件test1
[root@adai001 ~]# ls -l test1
-rw-r--r-- 1 root root 0 6月 7 10:39 test1
[root@adai001 ~]# chgrp testgroup test1 更改文件test1的所属组为testgroup
[root@adai001 ~]# ls -l test1
-rw-r--r-- 1 root testgroup 0 6月 7 10:39 test1
eg2: 更改目录的所属组
[root@adai001 ~]# ls -l dirb/
总用量 0
drwxr-xr-x 2 root root 6 6月 7 10:51 adai
drwxr-xr-x 2 root root 6 6月 7 10:50 dirc
[root@adai001 ~]# ls -ld !$
ls -ld dirb/
drwxr-xr-x 4 root root 30 6月 7 10:51 dirb/
[root@adai001 ~]# chgrp testgroup dirb/ 更改目录dirb的所属组为testgroup
[root@adai001 ~]# ls -ld !$
ls -ld dirb/
drwxr-xr-x 4 root testgroup 30 6月 7 10:51 dirb/
[root@adai001 ~]# ls -l !$
ls -l dirb/
总用量 0
drwxr-xr-x 2 root root 6 6月 7 10:51 adai
drwxr-xr-x 2 root root 6 6月 7 10:50 dirc
[root@adai001 ~]# chgrp -R testgroup dirb/ 级联更改目录的所属组(目录下内容的所属组同时跟着改变)
[root@adai001 ~]# ls -l !$
ls -l dirb/
总用量 0
drwxr-xr-x 2 root testgroup 6 6月 7 10:51 adai
drwxr-xr-x 2 root testgroup 6 6月 7 10:50 dirc
注: 因为chown命令可以替代chgrp命令,所以chgrp命令使用的并不多。
2.16 umask命令
>当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限"补码",而chmod设置的是文件权限码。umask的默认值可以更改,但是只有在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值,否则只是临时更改。
语法: umask xxx (此处xxx代表三个数字)
[root@adai002 ~]# umask 查看umask值
0022 即:umask的预设是0022
[root@adai002 ~]# umask 020 预设umask值为020
[root@adai002 ~]# umask
0020
[root@adai002 ~]# umask 022
[root@adai002 ~]# umask
0022
注: 默认状态下,文件umask+chmod=666;目录umask+chmod=777(限于权限位加减法)。
2.17 chattr命令、lsattr命令
>只有超级权限的用户才具有使用该命令的权限,这项指令可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性。
- chattr命令
chattr=change attribute(属性)
语法: chattr [+-=][选项] [文件或者目录名称]
+、-、=:分别为增加、减少、设定
选项:
A 增加该属性后,文件或目录的atime将不能被修改
S 增加该属性后,会将数据同步写入磁盘中
a 增加该属性后,只能追加不能删除,非root用户不能设定该属性
c 自动压缩该文件,读取时会自动解压
i 增加该属性后,使文件不能被删除、重命名、设定链接、写入、新增数据
- lsattr命令
该命令用于查看文件或者目录的特殊权限。
语法: lsattr [-aR] [文件/目录名]
选项:
-a =all,即连同隐藏文件一同列出
-R 连同子目录的数据一同列出
相关推荐
使用 `chmod`、`chattr`、`chown`、`chgrp`、`touch` 和 `umask` 命令修改文件属性。 ### 七、文件比较及文件查找命令 #### 文件比较 1. **文件的比较**: 使用 `cmp` 命令比较两个文件的不同之处,包括行号和字节...
Linux命令大全(CHM格式离线版) Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio ...
- `chgrp` 命令用于更改文件的群组所有权。 - 示例:`chgrp newgroup filename`(将文件`filename`的群组所有权更改为`newgroup`) 10. **改变文件拥有者:chown** - `chown` 命令用于更改文件的所有权。 - ...
- `chattr`和`lsattr`分别用于改变和查看文件的扩展属性。 - `chgrp`命令改变文件或目录的所属群组。 - `chmod`命令修改文件的访问权限。 - `chown`用于改变文件所有者。 - `cksum`提供文件的校验和和字节数,`cmp`...
- `chattr` 和 `lsattr`:设置和查看文件的特殊属性。 - `rev`:反转文本文件中的字符顺序。 - `vim`:高级文本编辑器。 3. **文件打包压缩命令**: - `gzip`:压缩文件。 - `tar`:打包文件和目录,可与其他...
### 初学Linux必须要掌握的150个命令 #### 概述 这份文档由Linux运维学院精心制作,旨在为初学者提供一个全面且实用的学习指南。文档详细介绍了150个基本且重要的Linux命令,这些命令对于日常的系统管理和运维工作...
这些命令包括cat cp echo head ls paste rmdir tail umask who chattr cut expand join mkdir pwd sed tee uniq chgrp date find last mkfifo reboot sort wc chmod df ln mv rename split touch which chown du ...
### Linux基本命令参数详解 #### 1. `ls` 命令 - **`ls -a /root`**: 此命令用于列出 `/root` 目录下的所有文件,包括那些隐藏文件。在 Linux 中,文件名以`.`开头的被视为隐藏文件。 - **示例**: 如果你想查看 `/...
**lsattr**:此命令用于显示文件或目录的特殊属性,这些属性可能会影响文件的行为方式。 **locate**:快速查找文件位置的有效工具,预先建立索引,因此查找速度快。 **od**:用于输出文件的内容,常用于查看或分析...
### Linux基础命令详解 随着Linux系统的广泛应用,掌握其基本命令对于任何从事IT行业的人来说变得尤为重要。本文将基于“150个常用Linux命令”的内容,详细介绍其中的关键知识点,特别是那些对于初学者而言至关重要...
Linux运维必备命令 Linux运维是一个庞大的领域,需要熟悉大量的命令来完成各种任务。本文档总结了150个常用的Linux运维命令,涵盖了文件和目录操作、文件处理、信息显示、搜索文件、用户管理、网络操作、磁盘文件...
"150个常用的Linux命令汇总" Linux 命令是 Linux 操作系统的核心组件之一,它们提供了对系统的控制和管理能力。以下是 150 个常用的 Linux 命令汇总,涵盖了文件和目录操作、查看文件及内容处理、文件压缩及解压缩...
- `chattr` 和 `lsattr`:设置和查看文件属性。 13. **系统用户登录信息**: - `whoami`:显示当前用户名。 - `who`:显示当前登录用户。 - `w`:显示当前登录用户及其活动。 - `last`:查看最近的登录和登出...
17. **chattr和lsattr命令**:用于设置和查看文件的特殊权限,如禁止修改(`i`)、防止意外删除(`a`)等。 理解并熟练掌握这些基本的Linux文件和目录管理命令,是成为Linux系统管理员或开发者的关键技能。通过这些...
### Linux常用命令手册知识点 #### 文件传输 - **bye**:在`ftp`会话中使用,用于退出当前的FTP连接。 - **ftp (file transfer protocol)**:用于在计算机网络中进行文件传输的标准协议。 - **ftp count**:未详述...
linux命令大全,中文版本 Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio dump ...
Linux 命令大全 Linux 命令大全 1、文件管理 cat chattr chgrp chmod chown cksum cmp diff diffstat file find git gitview indent cut ln less locate lsattr mattrib mc mdel mdir mktemp ...
此外,还可以使用`chown`和`chgrp`命令改变文件或目录的所有者和组。`chown`仅允许root用户操作,`chgrp`允许文件所有者或root用户操作。递归修改权限或归属可以使用`-R`选项。 文件的特殊权限包括SUID(Set-User-...
### Linux常用命令速查手册知识点解析 #### 文件管理命令 - **`which`**:用于查找用户可执行命令的完整路径。这对于理解一个命令实际指向哪个可执行文件非常有用,尤其是在有同名命令存在不同目录时。 - **`where...
改变文件或目录的属主和属组,我们可以使用`chown`和`chgrp`命令。例如,`chown user file`将文件的所有权更改为用户user,`chgrp group file`将文件的属组更改为group。如果要递归改变目录及其所有内容,可以添加`-...