Linux下如何设置权限让用户只删除自己的文件(粘滞位)

之前我们知道如何针对用户和用户组来设置文件权限。通常是用三个八进制来设置权限的,这里我要说的是,其实是由四个八进制表示的。其中第一个八进制我们通常是忽略的。第二个到第四个是对应于SUID,SGID,sticky-bit。

SUID:设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了
SGID : 设置了SUID 位的文件被执行时,该文件将以具有所属组的特权
sticky-bit: sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源。该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。

SUID和SGID可以对文件的权限进行设置,比如rwx(可读可写可执行)

我们引入了chmod来修改文件权限,举例如下:

linux下文件类型

当我们要修改成user为可写,group为可写时,命令如下:

chmod u+w,g+w myfife

那么操作这些标志的权限是什么呢。和文件权限是一样的,都是用chmod来修改权限的。

这里写图片描述

chmod u+s myfife:为用户设置s权限,具有文件所有者的权限

chmod g+s Code:为用户组设置s权限,具有用户组的权限,可以对该目录下的文件执行权利,Code为目录

chmod o+t myfife:为其他用户设置t权限,说明其他用户不能对其进行删除操作

这里写图片描述

大家有没有看到myfife文件中的T呢,这是因为我们给sticky位设置了权限,这个有什么作用呢?就是为了防止删除。我们有时候会遇到A用户对其有写权限,写了之后,B用户觉得那个文件没用,就把文件给删了。这样的结果可想而知……

为了避免上述的事情发生,所以就有粘滞位的引入。就是为了防止other用户对其删除。只有用户自己可以对其添加、修改、删除等操作。


使用chmod 1777 myfife 即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS安装yum 镜像 举例阿里云镜像

如何安装yum 镜像 CentOS 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.r…

python在ubuntu执行sh脚本,提示权限不够的解决方法, 转载

https://blog.csdn.net/weixin_40320794/article/details/81772194

Vim简单配置

vim配置: (在Centos6.5下配置vim) 1.找到用户的主工作目录,ls看是否有.vimrc文件,有的话打开即可。没有的话自己touch一个。vim进入.vimrc中: set nu 设置行数 colorscheme desert syntax enabl…

运算符面试题(剑指offer,面试宝典,牛客网)

利用一个宏实现两个数的交换?不使用if,?,switch或者其他判断语句比较两个变量的大小?利用位运算实现加法?以下程序输出结果是?用位运算实现求平均数?不用循环判断一个数是不是2的N次方? 利用一个宏实现两个…

js 出现 replace 无法完全替换 指定字符串的时候的解决办法

/{/g 通过这种方式替换掉 replace( /这里填写需要被替换的字符串/g , "");

[WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)

今天做了一下WPS的笔试题,遇到了一道关于栈的题,觉得挺有意思的,就写篇博客分享一下吧~~ 题目要求:要求实现栈的数据结构,在该类型中实现一个能够得到栈的最大元素的max函数,在该栈中,调用max,…

MarkDown生成目录索引

123 在第一行开头写[TOC] 必须是第一行,不可以在前面加别的东西。 1 2 3

ubuntu 如何用root身份进行登录

公司有个小项目, 需要用python调用 sh脚本来执行一些东西, 执行脚本的时候需要输入密码 类似 sudo S paaswd 脚本, 但是给客户部署的话, 再让客户客户 保存密码到配置文件, 就显得麻烦, 就想到用root方式去登陆系统, 结果用了网上的方法, 还是登陆不进去, 最后结合简书的一个方…

[剑指Offer]替换空格

今天看题的时候,遇到一个替换空格的题目,分析一下哈。 题目要求:把字符串中的每个空格替换成“%20”。例如输入“we are happy”,则输出“we%20are%20happy”。 解题思路:我们首先想到的是:移位思想。遇到…

C语言关键字 ISO/ANSI C90 C99 C11

面试考点 https://blog.csdn.net/csdn_kou/article/details/81113215 * 有的常用的我们都不知道是关键字,比如sizeof.这是面试中的考点,要注意。 * 同时当回答C语言中有多少关键字时,要回答前题条件,时针对哪一个版本

vm15 安装 mac虚拟机的过程 转载的

https://blog.csdn.net/weixin_43299649/article/details/82881567

task_struct解析

task_struct是Linux内核的一种数据结构,它用task_struct结构体来描述进程的信息。下面来剖析一下进程中保存的主要的信息有哪些? struct task_struct {//进程的运行时状态volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */void …

ubuntu上有个小项目 ,需要调用xx.sh脚本, 出现无法识别 某些环境变量的解决办法,仅供参考

项目是用python 调用 同事写好的 xx.sh脚本, 在手动调用的时候 发现能正常调用, 当用python代码的时候, 就不行了, 通过日志发现, python调用的时候 不识别 ADNROID_NDK这个环境变量, 在python中 我是通过&…

关于sudo

之前,我们使用sudo的时候,是因为其用户本身具有root权限,所以可以sudo后执行相关操作,但是对于普通用户来说,它是既不具有sudo权限,又不在sudo用户组中,那么我们来研究一下如何将新创建的用户添…

在使用 python 封装的进程池 from concurrent.futures import ProcessPoolExecutor 遇到的问题

在ubuntu中,用的是python3.5 executeprebuildpath ExecutePrebuild()processpool ProcessPoolExecutor(1)processpool.submit(executeprebuildpath.run).add_done_callback(self.precallback)processpool.shutdown(waitFalse)self.runsign Trueself.runningprebu…

对pthread_create未定义的引用

pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,在编译中要加-lpthread [koulocalhost practive]$ gcc creat.c /tmp/ccPULtaF.o:在函数‘main’中: creat.c:(.text0x58):对‘pthread_create’未定义的引用 coll…

Bash入门

Bash简介: Bash(GNU Bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell。 shell是一个命令解释器,是介于操作系统内核与用户之间的一个绝缘层。准确地说,它也是能力…

ubuntu 设置分辨率 亲测可用 转载的

网上试了很多方法, 这家管用 https://blog.csdn.net/qq_35661436/article/details/72802040

线程之售票系统pthread_mutex,_lock,_unlock

先看一下这篇文章 https://blog.csdn.net/csdn_kou/article/details/81148268 四个人同时买票票,引出线程 #include "head.h" int ticket 100; void * route(void *arg) {char *id (char *)arg;while(1){if(ticket>0){usleep(1000);printf("…