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.pswp.cn/news/254840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254840.shtml
英文地址,請注明出處:http://en.pswp.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毫秒。 每種媒體的時間是不一樣。比如&#…