背景:朋友在使用php进行mv操作时,出现了权限被拒绝的问题.查看之后,发现目录设置了sticky权限,取消此权限后,文件可以正常mv及删除.

Sticky:对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件(马哥语录,见 马哥Linux base学习笔记)

如下图所示,这是一个加了sticky权限的目录

# mkdir sticky_test
# chmod 1777 sticky_test
# ll -d sticky_test
drwxrwxrwt. 2 root root 4096 Jun 29 17:06 sticky_test

使用redheat用户进入sticky_test目录,touch一个文件,并对该文件添加777权限

$ whoami
redheat
$ touch redheat_file
$ chmod 777 redheat_file
$ ll
total 0
-rwxrwxrwx. 1 redheat redheat 0 Jun 29 17:10 redheat_file

正常来说,添加了777权限的文件,任何用户可以对其执行读,写,执行的操作

现在使用myuser用户进入该目录,执行删除操作

$ whoami
myuser
$ ll
total 0
-rwxrwxrwx. 1 redheat redheat 0 Jun 29 17:10 redheat_file
$ rm -rf redheat_file
rm: cannot remove `redheat_file': Operation not permitted

可以发现,系统给出了权限被拒绝的提示.

换回redheat用户,执行删除操作

$ rm -rf redheat_file
$ ll
total 0

命令可以正常执行.

再次创建该文件,并使用root用户将文件的属组更改为myuser

# chown .myuser redheat_file
# ll
total 0
-rwxrwxrwx. 1 redheat myuser 0 Jun 29 17:18 redheat_file

再次使用myuser用户执行删除命令

$ ll
total 0
-rwxrwxrwx. 1 redheat myuser 0 Jun 29 17:18 redheat_file
$ rm -rf redheat_file
rm: cannot remove `redheat_file': Operation not permitted

仍然是不可以删除的.

使用root用户,将目录的sticky权限去掉,同时将redheat_file文件的所属组改回redheat用户

# chmod o-t sticky_test
# ll -d sticky_test
drwxrwxrwx. 2 root root 4096 Jun 29 17:18 sticky_test
# chown redheat.redheat sticky_test/redheat_file
# ll sticky_test/redheat_file
-rwxrwxrwx. 1 redheat redheat 0 Jun 29 17:18 sticky_test/redheat_file

使用myuser用户可以成功删除该文件

$ rm redheat_file
$ ll
total 0

总结:当目录设置了sticky权限之后,属组或其他用户,即使对该目录下的文件拥有权限,也无法对该文件执行删除操作.

命令:

对目录设置777权限,同时增加sticky权限
# chmod 1777 sticky_test
对目录设置sticky权限
# chmod o+t sticky_test
删除目录sticky权限
# chmod o-t sticky_test

Linux权限问题(1)-Sticky的更多相关文章

  1. Linux权限扩展

    在LINUX中我们创建文件或文件夹的时候系统总会为我们创建的对象分配一个默认的权限,那么今天我们就了解一下这个默认权限是怎么得来的?以及我们如何来改变系统的默认权限设置? 在LINUX系统中我们打开每 ...

  2. linux权限---【600,644,700,755,711,666,777】 - - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  3. linux权限相关操作

    Linux权限管理是Linux中一个十分重要的概念,也是系统安全性的重要保障.这里主要介绍Linux的基本权限和默认权限,通过理论讲解与实验演示,可以详细了解到权限的相关操作及其重要性. 文件权限 [ ...

  4. Linux权限详解 命令之 chmod:修改权限

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...

  5. linux权限详解

    一个用户.一个组 我们来看一看 Linux 权限和所有权模型.我们已经看到每个文件属于一个用户和一个组.这正是 Linux 中权限模型的核心.您可以在 ls -l 清单中查看用户和组: $ ls -l ...

  6. linux权限管理-特殊权限

    目录 linux权限管理-特殊权限 一,特殊权限 Linux权限属性chattr概述 linux进程掩码umask linux权限管理-特殊权限 一,特殊权限 1.suid(4000) SetUID( ...

  7. linux 权限笔记

    权限模型 linux权限模型,指的是对文件.文件夹同的读写权限,同用户之间的权限管理模型 三种角色 user 文件.文件夹的创建者,所有人 group 一个group对应多个user,user自动具有 ...

  8. Linux—权限管理

    Linux 权限管理 1.权限简介 Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读.写.执行.系统中每个文件都拥有特定的权限:属主.属组以及其他人,通过这样的机制来限制哪些用户或用户 ...

  9. linux权限系统

    Linux权限分为 r(4):可读 , w(2)可写 , x(1)可执行 , -无权限 , 可以通过ls -l 文件名查看权限 , 如 ls -l 文件名 输出: -rwxrw---x. root r ...

随机推荐

  1. 学习笔记-angular 使用uuid

    import { UUID } from 'angular2-uuid'; let uuid = UUID.UUID().replace(/-/g, '').toLocaleUpperCase(); ...

  2. 【Java】7.0 进制转换

    [二进制转十进制] public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.p ...

  3. sunny图表——NABCD分析

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队选题 我在这个课程的目标是 初步获得软件工程师的能力 这个作业在哪个具体方面帮助我实现目标 选 ...

  4. Ray Tracing in one Weekend 阅读笔记

    目录 一.创建Ray类,实现背景 二.加入一个球 三.让球的颜色和其法线信息相关 四.多种形状,多个碰撞体 五.封装相机类 六.抗锯齿 七.漫发射 八.抽象出材料类(编写metal类) 九.介质材料( ...

  5. leetcode 刷题(数组篇)15题 三数之和 (双指针)

    很有意思的一道题,值得好好思考,虽然难度只有Mid,但是个人觉得不比Hard简单 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b ...

  6. Spring(五)Spring与Web环境集成

    MVC 是 Model.View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责. 模型:用于存储数据以及处理用户请求的业务逻辑. 视图:向控制器提交数据,显示模型中的数 ...

  7. SimpleDateFormat一定是线程不安全吗?

    今天一位优秀的架构师告诉我,下面这段代码SimpleDateFormat是线程不安全的. /** * 将Date按格式转化成String * * @param date Date对象 * @param ...

  8. 【Nginx(二)】Nginx目录结构和常用的命令以及核心配置文件

    Nginx的目录结构: 默认的安装路径 : /usr/local/nginx 安装完成后,Nginx的目录结构如下: conf:   #所有配置文件的目录 nginx.conf  #默认的主要配置文件 ...

  9. poj 2472

    题意:      给你一个无向图,然后每条边的权值就是不被抓的概率,有个货要从1逃到n,问你他的最安全概率是多少? 思路:       水题,直接跑就行了,一开始自己想多了,还转换了一下log,后来发 ...

  10. Day002 编译型和解释型语言

    编译型和解释型语言 原文链接 编译型(Compile) 用编译型语言写的程序执行之前,需要一个专门的编译过程,针对特定的平台,使用专门的编译器,把高级语言翻译成机器语言,以后直接运行而不需要再编译了, ...