2.18 特殊權限set_uid 2.19 特殊權限set_gid 2.20 特殊權限stick_bit 2.21 軟鏈接文件 2.22 硬連接文件...

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

特殊權限set_uid


set_uid:該權限針對二進制可執行文件,使文件在執行階段具有文件所有者的權限; 通俗一點講就是,普通用戶想要訪問一個沒有其他用戶可執行權限的目錄時,暫時借助二進制文件的所屬主權限去訪問這個目錄,如果沒有s權限,就不能訪問; 注意:普通用戶要有這個二進制文件的可執行權限。如果沒有,那也是不能訪問的。 我們系統中passwd命令就具有s權限。當普通用戶執行passwd命令的時候,可以臨時獲得root權限,從而可以更改密碼;

系統修改密碼命令:passwd

    [root@linux-128 ~]# which passwd/usr/bin/passwd[root@linux-128 ~]# ls -l /usr/bin/passwd-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd  //顏色變成紅色

系統密碼文件:/etc/shadow

    [root@linux-128 ~]# ls -l /etc/shadow---------- 1 root root 663 10月 20 15:14 /etc/shadow

注意:這里所有者,所屬組,其他用戶都沒有執行權限,但是root是超級用戶,它具有至高無上的權限,所以root用戶是可以修改密碼的;按理說普通用戶沒有執行權限是沒辦法去修改密碼的,但是我們passwd命令具有s權限,普通用戶在使用命令passwd時,可以臨時獲取到passwd所屬主的root權限,所以能修改密碼。

例子:使用普通用戶查看/root/目錄:

    [root@linux-128 ~]# ls -ld /root/     //root目錄沒有其他用戶可執行權限;dr-xr-x---. 3 root root 163 10月 25 00:45 /root/[root@linux-128 ~]# su - wuzhou     //切換用戶上一次登錄:一 10月 23 21:56:30 CST 2017pts/0 上[wuzhou@linux-128 ~]$ ls /root/ls: 無法打開目錄/root/: 權限不夠      //沒有權限

我們怎樣才能讓普通用戶wuzhou打開/root/目錄呢? 解:我們給ls命令加上一個s權限,讓用戶wuzhou臨時擁有ls的所有者權限;例如:

    [root@linux-128 ~]# which lsalias ls='ls --color=auto'/usr/bin/ls[root@linux-128 ~]# chmod u+s /usr/bin/ls[root@linux-128 ~]# ls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls[root@linux-128 ~]# su - wuzhou上一次登錄:五 10月 27 00:18:52 CST 2017pts/0 上[wuzhou@linux-128 ~]$ ls /root/anaconda-ks.cfg

設置s權限:

  • chmod u+s 二進制文件名
  • chmod u=rws 二進制文件名
  • chmod 4755 二進制文件名 這個4是這樣得出來的:
    suid = 4
    sgid = 2
    stick_bit = 1

取消s權限:

  • chmod u-s
  • chmod u=rws
  • chmod 755

特殊權限set_gid

set_gid:該權限可以作用在二進制可執行文件上,也可以作用在目錄上。當作用在文件上時,其功能和set_uid一樣,它會使文件在執行階段具有該文件所屬組的權限。作用在目錄上時,任務用戶在此目錄下創建的文件和目錄都具有和該目錄所屬組相同的組。

設置s權限:

  • chmod g+s 二進制文件名或目錄
  • chmod g=rws 二進制文件名或目錄
  • chmod 2755 二進制文件名或目錄

例子:作用在二進制文件上

[root@linux ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 112664 10月 15 2014 /bin/ls
[root@linux ~]# chmod g+s /bin/ls                \\/bin/ls 加上sgid
[root@linux ~]# !ls
ls -l /bin/ls
-rwxr-sr-x. 1 root root 112664 10月 15 2014 /bin/ls     \\顏色會變成黃色
[root@linux ~]# su - wzzhan       
[wzzhan@linux ~]$ ls /root             \\wzzhan用戶會調用命令ls屬組的權限去訪問/root目錄
111.bak  444    5.txt  777              install.log         prem
222      4.txx  6.txt  anaconda-ks.cfg  install.log.syslog  test

例子:作用于目錄上

[root@linux tmp]# mkdir 555            \\創建目錄555
[root@linux tmp]# chmod 777 555        \\設置權限所有人可讀可寫可執行
[root@linux tmp]# su - wzzhan          \\切換用戶 wzzhan下
[wzzhan@linux ~]$ cd /tmp/555          
[wzzhan@linux 555]$ mkdir dir          \\創建目錄dir
[wzzhan@linux 555]$ touch file         \\創建文件file
[wzzhan@linux 555]$ logout             \\退出用戶到root下
[root@linux tmp]# chmod g+s 555        \\將目錄555添加sgid權限
[root@linux tmp]# su - wzzhan          \\切換用到wzzhan下[wzzhan@linux tmp]$ cd 555
[wzzhan@linux 555]$ mkdir dir1          \\創建目錄dir1
[wzzhan@linux 555]$ touch file1         \\創建文件file1
[wzzhan@linux 555]$ ls -l
總用量 8
drwxrwxr-x. 2 wzzhan wzzhan 4096 10月 27 15:04 dir
drwxrwsr-x. 2 wzzhan root   4096 10月 27 15:06 dir1    \\創建的目錄的屬組是調用的目錄的屬組
-rw-rw-r--. 1 wzzhan wzzhan    0 10月 27 15:04 file
-rw-rw-r--. 1 wzzhan root      0 10月 27 15:06 file1   \\創建的文件的屬組也是調用的目錄的屬組

特殊權限stick_bit


sticky_bit:防刪除位。一個目錄下的文件嫩不能被刪除,不是取決于文件本身的屬組屬組還有其他權限, 而是在于這個文件所在目錄的權限是否可讀可寫可執行,如果目錄可寫,那就意味著我們可以刪除目錄下的任何文件。當一個目錄的權限為其他人可讀可寫可執行的時候,那么其他用戶都可以刪除這個目錄下的文件,包括root文件,為了防止文件被其他用戶刪除,我們給這這個目錄增加一種特殊權限:sticky,防刪除位,要用root用戶操作。這樣一個用戶就不能刪除另一個用戶創建的文件了。只有root和創建文件本人才能夠刪除。

設置t權限:

  • chmod o+t 目錄
  • chmod o=rwt 目錄
  • chmod 1755 目錄

例子:

root@linux ~]# cd /tmp
[root@linux tmp]# chmod o+t 666
[root@linux tmp]# ls -ld 666
drwxrwxrwt. 3 root root 4096 10月 27 15:42 666
[root@linux tmp]# su - user1
[user1@linux ~]$ cd /tmp/666
[user1@linux 666]$ ls -l
總用量 8
drwxrwxr-x. 2 wzzhan wzzhan 4096 10月 27 15:42 11
-rw-r--r--. 1 root   root    337 10月 27 15:22 1.txt
-rw-r--r--. 1 root   root      0 10月 27 15:22 1.xt
-rw-rw-r--. 1 wzzhan wzzhan    0 10月 27 15:42 2.txt
[user1@linux 666]$ rm -r 111
rm: 無法刪除"111": 沒有那個文件或目錄
[user1@linux 666]$ rm -r 11
rm:是否刪除有寫保護的目錄 "11"?y
rm: 無法刪除"11": 不允許的操作
[user1@linux 666]$ rm -r 1.txt
rm:是否刪除有寫保護的普通文件 "1.txt"?y
rm: 無法刪除"1.txt": 不允許的操作
[user1@linux 666]$ rm -rf 2.txt
rm: 無法刪除"2.txt": 不允許的操作
[user1@linux 666]$ logout
[root@linux tmp]# ls
1      22.txt  3      555  6.txt  file1  test1
1.txt  2.txt   3.txt  666  dir1   test   yum.log
[root@linux tmp]# cd 666
[root@linux 666]# ls
11  1.txt  1.xt  2.txt
[root@linux 666]# rm -rf 11
[root@linux 666]# ls
1.txt  1.xt  2.txt
[root@linux 666]# su - wzzhan
[wzzhan@linux ~]$ cd /tmp/666      
[wzzhan@linux 666]$ ls -l
總用量 4
-rw-r--r--. 1 root   root   337 10月 27 15:22 1.txt
-rw-r--r--. 1 root   root     0 10月 27 15:22 1.xt
-rw-rw-r--. 1 wzzhan wzzhan   0 10月 27 15:42 2.txt
[wzzhan@linux 666]$ rm 2.txt           用戶wzzhan才能刪除2。txt文件
[wzzhan@linux 666]$ ls -l
總用量 4
-rw-r--r--. 1 root root 337 10月 27 15:22 1.txt
-rw-r--r--. 1 root root   0 10月 27 15:22 1.xt

軟鏈接文件


軟鏈接:是建立一個獨立的文件,當讀取這個鏈接文件時,它會把讀取的行為轉發到該文件所鏈接的文件上。

  • 軟鏈接 相當于一個快捷方式
  • 軟鏈接的大小取決于軟鏈接源文件的路徑長短
  • 軟鏈接支持文件和目錄
  • 軟鏈接的源文件不能被刪除,如果刪除源文件,軟鏈接文件會失效;軟鏈接刪除,源文件不受影響。 創建軟鏈接格式:
  • 盡量使用絕對路徑來做軟鏈接 ln -s 源文件 目標文件
[root@linux-128 tmp]# ln -s /tmp/111/ /root/12
[root@linux-128 tmp]# ls -l /root
總用量 4
lrwxrwxrwx  1 root root    9 10月 27 01:12 12 -> /tmp/111/
-rw-------. 1 root root 1422 10月 17 03:51 anaconda-ks.cfg

比較源文件和軟鏈接的大小,軟連接的大小與源文件的長度有關

[root@linux-128 tmp]# du -sh /tmp/111/ /root/12
4.0K	/tmp/111/
0	/root/12
  • du -sh 文件 \查看文件大小
  • df -h \查看磁盤情況

硬連接文件


硬鏈接:當系統要讀取一個文件時,會先讀取inode信息,然后再根據inode的信息到塊區域將數據取出來。而硬鏈接就是直接在建立一個inode鏈接到文件放置的塊區域,即進行硬鏈接時,該文件的內容沒有任何變化,只是增加了一個指向這個文件的inode,并不會額外占用磁盤空間。

  • 硬鏈接不能夸文件系統,不同的文件系統有不同的inode table;
  • 硬鏈接不能鏈接目錄; 格式: ln 來源文件 目標文件
[root@linux-128 tmp]# ln /tmp/123.txt  /root/321.txt
[root@linux-128 tmp]# ls -lih /tmp/123.txt
8389029 -rw-r--r-- 2 root root 17K 10月 27 01:31 /tmp/123.txt
[root@linux-128 tmp]# ls -lih /root/321.txt
8389029 -rw-r--r-- 2 root root 17K 10月 27 01:31 /root/321.txt

注意:我們創建的硬鏈接和源文件的inode一樣,大小一樣。


刪除源文件,硬鏈接不受影響
[root@linux-128 tmp]# rm /tmp/123.txt
rm:是否刪除普通文件 "/tmp/123.txt"?y
[root@linux-128 tmp]# ls -l /root/321.txt
-rw-r--r-- 1 root root 16816 10月 27 01:31 /root/321.txt
硬鏈接不能鏈接目錄
[root@linux-128 tmp]# ln /tmp/222/ /root/23
ln: "/tmp/222/": 不允許將硬鏈接指向目錄

轉載于:https://my.oschina.net/u/3866516/blog/1826319

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390296.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

345. 反轉字符串中的元音字母

345. 反轉字符串中的元音字母 給你一個字符串 s ,僅反轉字符串中的所有元音字母,并返回結果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小寫兩種形式出現。 示例 1: 輸入:s “hello” 輸…

通過制作數字桌面游戲和Web應用程序學習JavaScript

Building 2D games can be a great way to learn JavaScript, especially when working through the basics of complex tabletop game logic.制作2D游戲可能是學習JavaScript的好方法,尤其是在研究復雜的桌面游戲邏輯基礎時。 In this series, I’m going to intr…

【HAVENT原創】Node Express API 通用配置

為什么80%的碼農都做不了架構師?>>> ( 基于 Express 4.x ) 啟動文件 /app.js: var express require(express); var bodyParser require(body-parser); var proxy require(http-proxy-middleware); var path require(path);var index re…

C#使用Json.NET解析Json

本文轉載自 http://xiaosheng.me/2016/10/01/article25/ 最近在 C# 項目中需要使用到 Json 格式的數據,我簡單上網搜索了一下,基本上有兩種操作 Json 數據的方法: 使用 Windows 系統自帶的類使用第三方的包本著“第三方包一定有比系統自帶類優…

現在JavaScript日期–如何在JavaScript中獲取當前日期

Many applications you build will have some sort of a date component, whether its the creation date of a resource, or the timestamp of an activity. 您構建的許多應用程序都將具有某種日期組件,無論是資源的創建日期還是活動的時間戳。 Dealing with date…

233. 數字 1 的個數

給定一個整數 n,計算所有小于等于 n 的非負整數中數字 1 出現的個數。 示例 1: 輸入:n 13 輸出:6 示例 2: 輸入:n 0 輸出:0 解題思路 正確性證明 例如:對于n3015&#xff0c…

Linux串口設置參數

為什么80%的碼農都做不了架構師?>>> 在Linux環境下,串口名從ttyS0開始依次是ttyS1、ttyS2等。在本程序中,使用ttyS0作為通信串口。在打開ttyS0的時候選項 O_NOCTTY 表示不能把本串口當成控制終端,否則用戶的鍵盤輸入信…

STM32F013 十元板

我大拇指般大小。STM32F103C8T6,64K Flash,20K RAM,m3的核。十元,應該是價格極限了吧。 通過USB供電(5V),也可以排針3.3V供電。可惜沒有引出5V排針。USB口可以供電和USB通訊,沒有USB…

如何在Python中建立和訓練K最近鄰和K-Means集群ML模型

One of machine learnings most popular applications is in solving classification problems.機器學習最流行的應用之一是解決分類問題。 Classification problems are situations where you have a data set, and you want to classify observations from that data set in…

552. 學生出勤記錄 II

552. 學生出勤記錄 II 可以用字符串表示一個學生的出勤記錄,其中的每個字符用來標記當天的出勤情況(缺勤、遲到、到場)。記錄中只含下面三種字符: ‘A’:Absent,缺勤 ‘L’:Late,遲…

C/C++中計算函數運行時間

#include<stdio.h> #include<time.h> clock_t start,stop;//clock_t 是clock&#xff08;&#xff09;函數返回變量的類型 double duration;//記錄被測函數的運行時間&#xff0c;以秒為單位 int main() { startclock();//開始計時 MyFunction();//把被測函數加在這…

作為一名前端開發工程師,你必須掌握的WEB模板引擎:Handlebars

為什么需要使用模板引擎&#xff1f; 關于為什么要使用模板引擎&#xff0c;按照我常說的一句話就是&#xff1a;不用重復造輪子了。 簡單來說&#xff0c;模板最本質的作用是“變靜為動”&#xff0c;一切利于這方面的都是優勢&#xff0c;不利于的都是劣勢。要想很好地實現“…

extjs 實用開發指南_如何提出有效問題:針對開發人員的實用指南

extjs 實用開發指南Learning is a journey that never ends. At every point in your career, you will keep learning, re-learning, and un-learning. 學習是一個永無止境的旅程。 在職業生涯的每個階段&#xff0c;您都會不斷學習&#xff0c;重新學習和不學習。 The abil…

LOJ 6270

最近&#xff08;一直&#xff09;有點&#xff08;很&#xff09;蠢 按照區間大小排序做區間包含多少區間的話 只用考慮 左端點比當前左端點小的和右端點比當前右端點大的&#xff0c;因為不可能同時滿足 關于K&#xff0c;就在做到K的時候減一下就好了&#xff0c;一直傻逼在…

Zabbix3.4安裝詳細步驟

Zabbix3.4安裝的詳細步驟一、zabbix介紹現在大多數公司都會用到監控軟件&#xff0c;主流的監控軟件就是Zabbix了&#xff0c;當然還會有Nagios等其他的軟件&#xff1a;zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種…

軟件自學成才到公司要學歷嗎_作為一名自學成才的移動開發人員,我在旅途中學到了什么

軟件自學成才到公司要學歷嗎In this post, Ill share my entire journey about how I became a professional mobile developer.在這篇文章中&#xff0c;我將分享我如何成為一名專業的移動開發人員的整個過程。 I hope that reading about my experience will help you refle…

cs231n---語義分割 物體定位 物體檢測 物體分割

1 語義分割 語義分割是對圖像中每個像素作分類&#xff0c;不區分物體&#xff0c;只關心像素。如下&#xff1a; &#xff08;1&#xff09;完全的卷積網絡架構 處理語義分割問題可以使用下面的模型&#xff1a; 其中我們經過多個卷積層處理&#xff0c;最終輸出體的維度是C*H…

http協議內容

前言&#xff1a; http協議&#xff1a; 對瀏覽器客戶端 和 服務器端 之間數據傳輸的格式規范http1.0&#xff1a;當前瀏覽器客戶端與服務器端建立連接之后&#xff0c; 只能發送一次請求&#xff0c;一次請求之后連接關閉。 http1.1&#xff1a;當前瀏覽器客戶端與服務器端建…

array_combine()

轉載于:https://www.cnblogs.com/xiaobiaomei/p/8392728.html

CSS外邊距(margin)重疊及防止方法

#css外邊距margin重疊及防止方法CSS外邊距(margin)重疊及防止方法 #1-什么是外邊距margin重疊1. 什么是外邊距(margin)重疊 外邊距重疊是指兩個或多個盒子(可能相鄰也可能嵌套)的相鄰邊界(其間沒有任何非空內容、補白、邊框)重合在一起而形成一個單一邊界。 #2-相鄰marign重疊的…