美文网首页
Linux 中的 sticky 权限位

Linux 中的 sticky 权限位

作者: 追风骚年 | 来源:发表于2022-01-07 15:15 被阅读0次

如果存在这样的一个需求,如果在一个目录下每个用户可以互相查看文件,但是不允许 a 用户去删除 b 用户的文件,反之 b 用户也不允许去删除 a 用户的文件。不仅指删除,也不允许对文件重命名之类的操作。Linux 中如果 sticky 权限位置于文件夹上,则恰好覆盖这个场景。

示例操作

创建目录并设置权限

$ pwd 
/home/jake/Desktop/workspace/tmp

$ su root

$ mkdir tdir

$ ls  -la
drwxr-xr-x. 2 root root 4096 Jan  7 14:30 tdir


$ chmod +t tdir

$ chmod o+w tdir

$ ls  -la
drwxr-xrwt. 2 root root 4096 Jan  7 14:30 tdir

$ cd tdir

可以看到这边的文件权限位有个 t 的标志。

切换用户,分别创建文件。

$ su jake

$ echo "aa" > aa

$ su jake2

$ echo "bb" > bb

$ ls -la
-rw-rw-r--. 1 jake  jake     3 Jan  7 14:39 aa
-rw-rw-r--. 1 jake2 jake2    3 Jan  7 14:42 bb

jake2 尝试读取文件

$ cat aa
aa

jake2 尝试编辑文件

$ echo "update" >> aa
bash: aa: Permission denied

jake2 尝试去删除文件

$ rm -rf aa
rm: cannot remove ‘aa’: Operation not permitted

$ mv aa aa1
mv: cannot move ‘aa’ to ‘aa1’: Operation not permitted

操作系统中的实践

这个功能在操作系统中其中的一个实践在于临时文件夹,可以这样查看

$ ls /
...
drwxrwxrwt.  31 root root  4096 Jan  7 14:49 tmp
...
``

各个用户创建自己的临时文件,其他用户可以查看,但是不能进行删除和重命名,因为文件路径不正确可能会带来异常错误,譬如 `go build` 中间会产生很多临时文件。

相关文章

  • Linux 中的 sticky 权限位

    如果存在这样的一个需求,如果在一个目录下每个用户可以互相查看文件,但是不允许 a 用户去删除 b 用户的文件,反之...

  • 特殊权限 SUID、SGID、Sticky

    [特殊权限 SUID、SGID、Sticky] 一. 前提 本篇主要讲解SUID, SGID, Sticky三个权...

  • day15 预习笔记

    Linux系统权限知识 文件权限为说明: 前三位是用户权限位 中三位表示用户组权限位 ...

  • day16-Linux系统权限

    文件权限介绍 Linux基础权限位是9个字符,每三个为一组,前三位表示用户权限位、中间三位表示用户组权限位、后三位...

  • chmod 和大写的 X ?

    chmod(1) 手册页中对权限位的描述中提及到 rwxXst 六个权限标记, rwx 是几乎所有 Linux 初...

  • 用户权限,特殊权限,ACL

    用户权限 在Linux系统中,一个用户对文件所能执行的权力称为用户权限 文件属性 权限位 rwx rwx rwx从...

  • 课堂笔记day16(linux文件权限)

    1.Linux文件权限 1.1分组: 1.1.1前三个字符是表示用户(属主)权限位user(用户) 1.1.2中三...

  • Linux中权限位中的三个特殊位

    在Linux的stat结构体中,st_mode成员包含16位,其中4位用作文件类型,9位用作权限,剩下3位用作文件...

  • day16课堂笔记

    第12章Linux系统的权限知识 Linux文件或目录的基础权限位是由9个字符控制的,为3位为一组 普通文件对应 ...

  • Linux提权

    0x00 Linux提权基础命令 0x01 Linux提权工具 Linux内核CVE提权(github):可能会导...

网友评论

      本文标题:Linux 中的 sticky 权限位

      本文链接:https://www.haomeiwen.com/subject/vimjcrtx.html