Linux权限(二)

Linux的文件类型

文件类型

  • 普通文件 (-):常规文件,可能是文本、二进制数据等。
  • 目录 (d):文件夹,包含其他文件或目录。
  • 符号链接 (l):指向另一个文件或目录的快捷方式。
  • 块设备文件 (b):用于存储数据的块设备,如硬盘。
  • 字符设备文件 (c):用于按字符流操作的设备,如键盘、终端。
  • 管道文件 (p):用于进程间通信的命名管道。
  • 套接字 (s):用于网络通信的文件。

Linux的默认权限

在 Linux 系统中,文件和目录的默认权限取决于 umask(用户文件创建模式掩码)的值。默认情况下,umask 设置会影响新创建的文件和目录的权限。

文件和目录的默认权限

  1. 文件

    • 通常情况下,新创建的文件默认权限为 666(即:rw-rw-rw-)。
    • 这是因为一般情况下,普通文件不应该具有执行权限。
  2. 目录

    • 通常情况下,新创建的目录默认权限为 777(即:rwxrwxrwx)。
    • 这是因为用户通常希望具有完全的权限来访问目录,包括执行权限(进入目录)。

使用 umask 调整默认权限

umask 是一个三位或四位八进制数,它指定了新文件或目录应当剔除的权限位。通过设置 umask,可以控制新文件或目录的默认权限。

例如:

  • 默认 umask 值为 022

    • 新文件的默认权限将是 644666 - 022),即:rw-r--r--
    • 新目录的默认权限将是 755777 - 022),即:rwxr-xr-x
  • 默认 umask 值为 027

    • 新文件的默认权限将是 640666 - 027),即:rw-r-----
    • 新目录的 default permissions will be 750777 - 027),即:rwxr-x---

检查和设置 umask

可以使用 umask 命令来查看当前 umask 的值

umask

可以使用 umask 命令来设置新的 umask

umask 027

Linux的目录权限

  1. 读权限 (r)

    • 目录的读权限允许用户列出目录中的文件和子目录。
    • 对应的八进制数值为 4
  2. 写权限 (w)

    • 目录的写权限允许用户在目录中创建、删除和重命名文件或子目录。
    • 对应的八进制数值为 2
  3. 执行权限 (x)

    • 目录的执行权限允许用户进入目录(即改变当前工作目录到此目录)。
    • 对应的八进制数值为 1

删除文件或目录的权限与文件本身的权限无关,而是与包含该文件或目录的父目录的权限相关。这是因为删除操作实际上是对父目录结构的修改。

删除文件的权限

  1. 目录的写权限 (w)

    • 要删除一个文件,用户需要对其所在的目录拥有写权限。
    • 写权限允许用户修改目录内容,例如添加或删除文件。
  2. 目录的执行权限 (x)

    • 要删除一个文件,用户还需要对其所在的目录拥有执行权限。
    • 执行权限允许用户进入该目录。

所以,要删除一个文件,用户需要对文件所在目录同时拥有写权限和执行权限。文件本身的权限则没有直接影响。

粘滞位

在 Linux 文件系统中,粘滞位(Sticky Bit)是一种特殊的权限位,用于目录上的时候,可以限制非目录拥有者删除目录中的文件或子目录。粘滞位在共享目录中非常有用,例如 /tmp 目录。

粘滞位的作用

  • 当目录设置了粘滞位时,只有以下用户可以删除或重命名该目录中的文件或子目录:

    1. 文件或子目录的所有者。
    2. 目录的所有者。
    3. 超级用户(root)。
  • 对于普通用户来说,如果没有设置粘滞位,任何拥有写权限的用户都可以删除或重命名目录中的文件或子目录,即使他们不是文件或子目录的所有者。

设置粘滞位

粘滞位可以通过以下方式设置:

  1. 八进制表示

    在权限设置的最前面加 1。例如:
    chmod 1777 directory_name
    

    这会设置 directory_name 目录的权限为 rwxrwxrwt,其中最后一个 t 表示粘滞位。

  2. 符号表示

    使用符号 +t。例如:
    chmod +t directory_name
    

    这会添加粘滞位到 directory_name

检查粘滞位

粘滞位在目录的权限表示中显示为 tT

t:表示其他用户对目录拥有执行权限。例如 drwxrwxrwt

T:表示其他用户对目录没有执行权限。例如 drwxrwxrwT

示例

以下是一些实际的例子:

共享目录 /tmp

典型的粘滞位应用是 /tmp 目录,通常权限为 drwxrwxrwt

这确保了任何用户都可以在 /tmp 中创建文件,但只有文件的所有者、目录的所有者或超级用户才能删除或重命名这些文件。

自定义共享目录

假设你有一个共享目录 shared,你希望用户能够在该目录中创建文件,但不允许删除其他人的文件:

mkdir shared
chmod 1777 shared

这将设置 shared 目录的权限为 drwxrwxrwt

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值