linux文件權限有幾種?Linux下一切皆文件, 是文件就要有權限,Linux中将文件面對的人分為三種:分别是擁有者,所屬組,其他(other)這三種人有不同的權限,其中other是除了擁有者和所屬組之外的人擁有者一般用u表示所屬組一般用g表示other就是用o表示對于一個文件,一般的權限就是讀(r),寫(w),執行(x),今天小編就來說說關于linux文件權限有幾種?下面更多詳細答案一起來看看吧!
linux文件權限有幾種
一、權限介紹Linux下一切皆文件, 是文件就要有權限,Linux中将文件面對的人分為三種:分别是擁有者,所屬組,其他(other)這三種人有不同的權限,其中other是除了擁有者和所屬組之外的人擁有者一般用u表示所屬組一般用g表示other就是用o表示對于一個文件,一般的權限就是讀(r),寫(w),執行(x)
然而除了這些常用的權限外,linux還有一種特殊的權限,s,t 這兩個權限很少使用,卻是很實用
二、特殊權限詳解當s權限在文件所有者 x 權限上時,例如:-rwsr-xr-x,此時稱為Set UID,簡稱為SUID的特殊權限,即當執行該文件時将具有該文件所有者的權限,注意該權限隻針對二進制文件生效
當s權限在文件組 x 權限上時,例如:-rwx--s--x,此時稱為Set GID,簡稱為SGID的特殊權限,即當執行該文件時将具有該文件所在組的權限。
還有一個t權限,隻針對目錄有效,為SBIT權限,當用戶對此目錄具有 w, x 權限,當用戶在該目錄下創建文件或目錄時,僅有自己與 root用戶才有權限删除該文件或目錄
二、特殊權限測試s權限測試
我用Python 寫了一個小程序用來測試,代碼如下
[root@localhost /usr/local/src/test -> ]# cat test.py
#!/bin/env python
#coding = "utf-8"
import time
with open("/tmp/tmp.txt","wb") as f:
f.write(str(time.time()))
print(time.time())
代碼很簡單,往tmp目錄下的tmp.txt文件寫入當前時間戳
當用戶為root時,給文件增加s權限
[root@localhost /usr/local/src/test -> ]# chmod s test.py
當已root用戶執行該文件執行時,該文件被順利執行
當将用戶切換到test用戶,用python執行 該程序時,提示錯誤
我們将test.py 文件轉換為二進制文件再次嘗試
可以使用pyinstaller對文件進行打包,打包後的二進制文件可以在當前目錄的dist目錄找到,添加s權限後再次嘗試
[root@localhost /usr/local/src/test -> ]# pyinstaller -F test.py
[root@localhost /usr/local/src/test/dist -> ]# ll
總用量 4.7M
-rwxr-xr-x 1 root root 4.7M 7月 13 21:21 test
這次嘗試可以看出,在root用戶和普通用戶下程序都執行成功,s權限隻能應用于二進制文件
那麼該權限有什麼用途呢,最典型的就是系統命令passwd了,任何用戶都可以通過passwd命令對自己進行密碼或者其他屬性修改,但是卻無法直接通過修改/etc/passwd進行權限修改
t權限測試
在/usr/local/src/test/目錄下創建一個dir 文件夾目錄權限設置為777,這樣所有的用戶都可以在該文件夾下進行操作
使用test1用戶在該目錄創建一個文件
使用test2用戶在該目錄可以将test1創建的文件删除
s權限測試
當我們給該目錄增加t權限再次測試,發現test創建的文件 test2用戶無法删除
t權限測試
linux系統/tmp 目錄默認就有t權限,任何用戶都可以創建用戶,但是除root外的其他普通用戶都無法删除其他用戶創建的文件,哪怕該文件權限是777
如果有對此文章比較有興趣的朋友,大家可以點個關注,歡迎大家收藏、點贊、轉發,我将經常發表一些比較實用的文章,請大家多多關照