日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8 权限管理

發布時間:2023/11/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8 权限管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

8.1 ACL權限

8.1.1 簡介與開啟

用于解決身份不夠用的問題

ACL(access control list)??訪問控制表?

ACL是存在于計算機中的一張表,它使操作系統明白每個用戶對特定系統對象,例如文件目錄或單個文件的存取權限。

這張表對于每個系統用戶有擁有一個訪問權限。

最一般的訪問權限包括讀文件(包括所有目錄中的文件),寫一個或多個文件和執行一個文件(如果它是一個可執行文件或者是程序的時候)。

?

ACL權限是對分區而言的。

查看分區ACL權限是否開啟

1、查看分區情況 ?report file system disk space usage

df -h ?

2、查看分區是否開啟ACL權限

dumpe2fs -h /dev/sda3 ???????dump ext2/ext3/ext4 filesystem information

#dumpe2fs命令是查詢指定分區詳細文件系統的命令

-h ?僅顯示超級塊中信息,而不顯示磁盤塊組的詳細信息

3Default mount options: ???user_xattr acl

分區默認開啟ACL權限

?

臨時開啟分區ACL權限

mount -o remount,acl /

#重新掛載根分區,并掛載加入acl權限

?

永久開啟分區ACL權限 分兩步

1vi /etc/fstab ??#系統的開機自動掛載文件

UUID=ec77....af ?/ ?ext4 ?defaults,acl??1 ?1 ?#加入acldefaults默認開啟acl權限。

2mount -o remount /

#重新掛載文件系統或重啟動系統,使修改生效

?

8.1.2 查看與設定ACL權限

getfacl 文件名

#查看acl權限 ???get file access control lists

?

setfacl 選項 文件名

-m 設定ACL權限 modify

-x 刪除指定的ACL權限 remove

-b 刪除所有的ACL權限 remove all

-d 設定默認ACL權限 default

-k 刪除默認ACL權限 remove default

-R 遞歸設定ACL權限 recursive

?

實驗步驟:

mkdir /project

useradd user1

useradd user2

useradd st

groupadd tgroup

gpasswd -a user1 tgroup

gpasswd -a user2 tgroup

chown root:tgroup /project

chmod 770 /project

setfacl -m u:st:rx /project/

#給用戶st賦予rx權限,使用“u:用戶名:權限”格式

?

給用戶組設定ACL權限

groupadd tgroup2

setfacl -m g:tgroup2:rwx /project/

#為組tgroup2分配ACL權限。使用“g:組名:權限”格式

?

8.1.3 最大有效權限與刪除ACL權限

最大有效權限mask:

mask是用來指定最大有效權限的。

如果給用戶賦予了ACL權限,是需要和mask的權限“相與”才能得到用戶的真正權限

影響ACL權限和所屬組的權限,所有者權限不受影響。

user::rwx

user:st:rwx #真正權限是r-x

group::rwx #真正權限是r-x

mask::r-x

?

setfacl -m m:rx /project/ #設定mask權限為rx。使用“m:權限”格式

?

?

刪除ACL權限:

setfacl -x u:用戶名 文件名

#刪除指定用戶的ACL權限

?

setfacl -x g:組名 文件名

#刪除指定用戶組的ACL權限

?

setfacl -b 文件名

#刪除文件的所有ACl權限

?

8.1.4 默認與遞歸ACL權限?

遞歸ACL權限:

遞歸是父目錄在設定ACL權限時,所有的子文件和子目錄也會擁有相同的ACL權限

setfacl -m u:用戶名:權限 -R 目錄名

?

默認ACL權限:

默認ACL權限的作用是

如果給父目錄設定了默認ACL權限,那么父目錄中所有新建的子文件都會繼承父目錄的ACL權限

setfacl -m d:u:用戶名:權限 目錄名

?

8.2 文件特殊權限

8.2.1 SetUID

SetUID ????#普通用戶在執行此程序時獲得文件所有者身份

只有可執行的二進制程序才能設定SUID權限

命令執行者要對該程序擁有x(執行)權限

命令執行者在執行該程序時獲得該程序文件屬主的身份(在執行程序的過程中靈魂附體的文件的屬主)

SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效

?

passwd命令擁有SetUID權限,普通用戶執行時,變成root,所以普通用戶可以修改自己的密碼

cat命令沒有SetUID權限,所以普通用戶不能查看/etc/shadow文件內容

?

設定SetUID的方法:

chmod 4755 文件名 ?#4代表SUID

chmod u+s

?

取消SetUID的方法:

chmod 755 文件名

chmod u-s 文件名

?

危險的SetUID

紅色代表權限不合理的危險文件

不建議用戶自己設定SUID權限

關鍵目錄應嚴格控制寫權限。比如/”、“/usr”等

用戶的密碼設置要嚴格遵守密碼三原則

應該對系統中默認應該具有SetUID權限的文件作一列表,用shell腳本定時檢查有沒有這之外的文件被設置了SetUID權限

?

8.2.2 SetGID

針對文件的作用:

只有可執行的二進制程序才能設置SGID權限

命令執行者要對該程序擁有x(執行)權限

命令執行在執行程序的時候,組身份升級為該程序文件的屬組

SetGID權限同樣只在該程序執行過程中有效,也就是說組身份改變只在程序執行過程中有效

?

例子

/usr/bin/locate

-rwx--s--x ?root slocate ...

/var/lib/mlocate/mlocate.db

-rw-r----- ?root slocate ...

?

/usr/bin/locate是可執行二進制程序,可以賦予SGID

執行用戶lamp/usr/bin/locate命令擁有執行權限

執行/usr/bin/locate命令時,組身份會升級為slocate組,而slocate組對/var/lib/mlocate/mlocate.db數據庫擁有r權限,所以普通用戶可以使用locate命令查詢mlocate.db數據庫

命令結束,lamp用戶的組身份返回為lamp

?

針對目錄的作用:

普通用戶必須對此目錄擁有rx權限,才能進入此目錄

普通用戶在此目錄中的有效組會變成此目錄的屬組

若普通用戶對此目錄擁有w權限時,新建的文件的默認屬組是這個目錄的屬組

?

設定SetGID

2代表SGID

chmod 2755 文件名

chmod g+s 文件名

?

取消SetGID

chmod 755 文件名

chmod g-s 文件名

?

8.2.3 Sticky BIT

SBIT粘著位作用:

粘著位目前只對目錄有效

普通用戶對該目錄擁有wx權限,即普通用戶可以在此目錄擁有寫入權限

如果沒有粘著位,因為普通用戶擁有w權限,所以可以刪除此目錄下所有文件,包括其他用戶建立的文件。

一旦賦予了粘著位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件,但是不能刪除其他用戶建立的文件。

?

例子

/tmp

drwxrwxrwt?root root

?

設置粘著位:

chmod 1755 目錄名

chmod o+t 目錄名

?

取消粘著位:

chmod 777 目錄名

chmod o-t 目錄名

?

8.3 文件系統屬性chattr權限

change file attributes on a Linux file system

修改文件系統屬性:

chattr +-= 選項 文件或目錄名

+ 增加權限

- 刪除權限

= 等于某權限

?

選項

i:(防止誤操作)鎖定命令

如果對文件設置i屬性,那么不允許對文件進行刪除、改名,也不能添加和修改數據,針對root生效

如果對目錄設置i屬性,那么只能修改目錄下文件的數據,但不允許建立和刪除文件

?

a

如果對文件設置a屬性,那么只能在文件中增加數據,但是不能刪除也不能修改數據

如果對目錄設置a屬性,那么只允許在目錄中建立和修改文件,但是不允許刪除

?

?

查看文件系統屬性:

lsattr 選項 文件名

-a 顯示所有文件和目錄

-d 若目標是目錄,僅列出目錄本身的屬性,而不是子文件

?

8.4 系統命令sudo權限

sudo權限:

root把本來只能超級用戶執行的命令賦予普通用戶執行

sudo的操作對象是系統命令

?

sudo使用:

visudo ?#實際修改的是/etc/sudoers文件,即命令vi /etc/sudoers

?

root ALL=(ALL) ALL

#用戶名 被管理主機的地址=(可使用的身份) 授權命令(絕對路徑)

#ALL)可以省略

?

%wheel ALL=(ALL) ALL

#%wheel組名 被管理主機的地址=(可使用的身份) 授權命令(絕對路徑)

?

例子:

賦予user1用戶重啟服務器權限

user1 ALL= /sbin/shutdown -r now

?

普通用戶執行sudo賦予的命令

sudo -l? ? ? #查看可用的sudo命令

sudo /sbin/shutdown -r now? ? ? ?#普通用戶執行sudo賦予的命令

?

?

總結

以上是生活随笔為你收集整理的8 权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。