2.10 文件和文件夹

2.10 文件和文件夹 #

2.10.1 文件类型 #

  • - 普通文件
  • d 目录文件
  • b 块特殊文件
  • c 字符特殊文件
  • l 符号链接
  • f 命名管道
  • s 套接字文件

创建新文件有默认权限,根据 umask 值计算,属主和属组根据当前进程的用户来设定。

在 linux 中创建文件默认是 (0)666 权限,需要减去 umask 的值。如:

2.10.2 权限表示 #

普通文件 #

  • r=4 读
  • w=2 写
  • x=1 执行

目录 #

  • x 进入目录
  • rx 显示目录内的文件名
  • wx 修改目录内的文件名

x 权限只能进入目录

rx 权限能进入并目录,显示目录内容,也可以读取文件,但是不能对文件进行操作

wx 权限能进入目录,但是不能显示目录内容,可以读取/修改/删除文件

2.10.3 修改权限 #

chmod #

chmod 可以修改文件和目录权限。

u 表示用户,g 表示用户组,o 表示其他用户,a 表示所有。

chmod u+x /tmp/testfile
chmod u-wx /tmp/testfile
chmod u=rwx /tmp/testfile
chmod 755 /tmp/testfile

chown #

更改文件或目录的所属用户和用户组。

chown 用户 文件
chown :用户组 文件
chown 用户:用户组 文件

chgrp #

可以单独更新用户组,不常用。

chgrp 用户组 文件

2.10.4 特殊权限 #

  • SUID 用于二进制可执行文件,执行命令时取得文件属主权限,如/usr/bin/passwd
  • SGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组
  • SBIT 用于目录,该目录下新建的文件和目录,仅 root 和自己可以删除,如/tmp

SUID #

说明 #

可以看到/etc/passwd除了 root 用户其实没有其他可以修改的,但是其他人也可以修改自己的密码,所以/usr/bin/passwd的权限就是 SUID,也就是任何人在执行 passwd 命令时自动获取到属主权限也就是 root 权限。

添加方式 #

以 chmod 在原始权限加 4,比如原始权限是 744,那么就修改后的就是 4744,示例如下

SBIT #

以 chmod 在原始权限加 1,比如原始权限是 744,那么就修改后的就是 1744,示例如下