Linux 下实现普通用户只能写入某个目录

今天老婆问了我一个问题:如何在linux 下实现某个目录普通用户能够写入文件,但是不能删除或修改(只能由root 删除或修改)。开始的两分钟里,我初步判断这是做不到的,因为linux 下能 写入(w) 就代表着同时能 修改删除,命题是矛盾的。后面我又想到 粘滞位和 facl,幸好没有放弃,最后还是想到如何做到这个效果。下面是实验过程

首先起个目录用来做实验

[root@node1 data]# pwd
/data[root@node1 data]# mkdir sample

接着我们设置好目录的属组和权限


# 修改 sample 目录属组
[root@node1 data]# chown -R root:root sample# 修改 sample 目录权限,让组和用户都没有任何权限,也就是说
# 只有 root 能
# 1. 进入该目录
# 2. 向该目录写入文件
# 3. 修改或删除该目录中的文件
# 4. 执行该目录中的文件
# 其他组和用户什么都干不了
[root@node1 data]# chmod 700 sample
[root@node1 data]# 
[root@node1 data]# ll
total 0
drwx------ 2 root    root    6 Apr 20 12:14 sample

做完上面一步,普通用户是不能向进入 sample 目录,也不能修改或执行 sample 目录中的文件。如果有一个程序能够向该目录添加文件,那我们就通过粘滞位来提升一下普通用户的权限,并保证该程序对普通用户可用。程序需要自己编写,这里为了实验就直接用 mv 来替代,为了不影响系统,这里换了个名字叫 add

[root@node1 data]# cp /usr/bin/mv /usr/bin/add# 给 add 添加粘滞位,这样,其他用户使用 add 的时候就能提升为 root 权限,而 root 可以向 sample 目录写入文件
[root@node1 data]# chmod u+s /usr/bin/add
[root@node1 data]# ll /usr/bin/add
-rwsr-xr-x. 1 root root 130344 Nov  6  2016 /usr/bin/add

好了,到最后了,我们切换到普通用户,进行检验。看看对该目录的查改删是不是都可以(通过mv),看看通过 add(提升为root) 能不能向 sample 目录添加文件。

# 切到普通用户,如 kafka,创建一个文件
[kafka@node1 ~]$ touch file
[kafka@node1 ~]$ ll
total 0
-rw-rw-r-- 1 kafka kafka 0 Apr 20 12:28 file# 通过mv 添加文件到 sample 目录,失败了,因为普通用户没有权限写入
[kafka@node1 ~]$ mv file /data/sample/
mv: cannot stat ‘/data/sample/file’: Permission denied# 通过应用程序 add 添加文件到 sample 目录,执行成功了。因为执行时,权限会临时提升为 root
[kafka@node1 ~]$ add file /data/sample/# 查看和删除也都失败了
[kafka@node1 ~]$ ll /data/sample/
ls: cannot open directory /data/sample/: Permission denied
[kafka@node1 ~]$ rm -f /data/sample/file
rm: cannot remove ‘/data/sample/file’: Permission denied

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

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

相关文章

CCD和CMOS摄像头成像原理以及其他区别

CCD的第二层是分色滤色片,目前有两种分色方式,一是RGB原色分色法,另一个则是CMYG补色分色法,这两种方法各有利弊。不过以产量来看,原色和补色CCD的比例大约在2:1左右。原色CCD的优…

FFMPEG分析比较细的文章

http://blog.csdn.net/ym012/article/details/6538301

恢复Ext3下被删除的文件(转)

前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。 删除文件 假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt15 -rw-rw-r– 2 root root 20 Apr 17 12:08 test.txt 注意:: “-il” 选项表示显示文件的i-node号(15)…

halcon trainf_ocr_class_svm 训练OCR分类器

目录trainf_ocr_class_svm(算子)描述参数trainf_ocr_class_svm(算子) trainf_ocr_class_svm - 训练OCR分类器。 trainf_ocr_class_svm(:: OCRHandle,TrainingFile,Epsilon,TrainMo…

Javascript之全局变量和局部变量部分讲解

以此文作为自己学习的一个总结。 关于全局变量和局部变量的一句简单的定义:在函数外声明的变量都为全局变量,在函数内声明的为局部变量。 一、局部变量和全局变量重名会覆盖全局变量 1 var a 1; 2 function test1() { 3 var a 2; 4 ale…

XML-RPC使用手册

内容列表 Preface: About This Manual Introduction to XML-RPC for C/C What is XML-RPC? How Does XML-RPC For C/C Help? More Information On XML-RPC For C/CThe Xmlrpc-c Function Libraries C Libraries C LibrariesUtility Programs xmlrpc xmlrpc_dumpserverAlterna…

利用ffmpeg来进行视频解码的完整示例代码(H.264)

Decode() { FILE * inpf; int nWrite; int i,p; int nalLen; unsigned char* Buf; int got_picture, consumed_bytes; unsigned char *DisplayBuf; DisplayBuf(unsigned char *)malloc(60000); char outfile[] "test.pgm"; //1.打开输入文件 inpf fopen("test…

如何成为非标行业的大拿

1,选一个好的舞台(工作环境),有个广告词叫:‘心有多大,舞台就有多大’,我想变个说法叫‘舞台越大,心就越大’。决定你表演效果的舞台,你如果选择…

TCP UDP HTTP 的关系和区别

TCP UDP HTTP 三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有HTTP、FTP、TELNET、SMTP、DNS等协议。 TCP…

微信开放平台全网发布时,检测失败 —— C#

主要就是三个:返回API文本消息,返回普通文本消息,发送事件消息 --会出现失败的情况 (后续补充说明:出现检测出错,不一定是代码出现了问题,也有可能是1.微信方面检测时出现服务器请求失败&…

halcon reduce_ocr_class_svm 缩减基于SVM的OCR分类器。

目录reduce_ocr_class_svm(算子)描述参数reduce_ocr_class_svm(算子) reduce_ocr_class_svm - 缩减基于SVM的OCR分类器。 reduce_ocr_class_svm(:: OCRHandle,Method,MinRemainingSV&#xff…

Zabbix 钉钉报警

话不多说,咱们直接进入正题钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用1、 我做的钉钉报警是基于钉钉自定义应用进行推送的所以需要登录钉钉管理后台进行创建(zabbix自定义应…

七大因素阻碍非标自动化行业发展,那么应对的策略是什么呢?

 非标自动化机械相对于标准机械而言,是可以根据企业需要量身定做的设备,可以实现标准机械所不能实现的一些功能,实现标准件不可能达到的产量。例如在注塑行业中,众多注塑企业根据自身实际情况通过制造业自…

单播、多播(组播)和广播的区别

单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在?1.单播&am…

数据库资源博客---小麦苗BEST

http://blog.csdn.net/lihuarongaini/article/details/60584577 http://blog.csdn.net/lihuarongaini/article/details/68485838转载于:https://www.cnblogs.com/zengkefu/p/6718754.html

halcon write_ocr_class_svm 将OCR分类器写入文件

目录write_ocr_class_svm(运算符)描述参数write_ocr_class_svm(运算符) write_ocr_class_svm - 将OCR分类器写入文件。 write_ocr_class_svm(:: OCRHandle,FileName ? 描述 write_ocr_class_svm将OCR分…

jQuery插件备忘

jQuery BlockUI Plugin 遮罩插件 http://malsup.com/jquery/block/ artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口 …

于敦德:途牛五大战略纵深不惧同质化竞争

于敦德说,途牛已经在目的地、出发地、产品系列、客户和品牌五个领域建立起了纵深壁垒,不担心任何局部竞争,将坚决把局部同质化战争打到底。 一个行业的两种公司 包括旅游在内的很多行业通常都有两种公司:…

活在当下吧

‘’你得为你自己而活,想要什么就去争取,不要干等着以为别人会施舍给你,也不要在意别人的眼光和看法,你首先得考虑的是你自己。” “你要明白,只有当你自己在乎自己的时候,别人才会用正眼看你,才…

ptime概述

官方给出的ptime的定义是:ptime gives the length of time in milliseconds represented by themedia in a packet。简单来讲就是一个数据包中媒体的时长,以毫秒为单位。比如:ptime:20就是定义为20毫秒。 每种媒体的时间是不一样。比如&#…