在上篇文章中我們向您展示了如何在 linux 上建立一個共享目錄。這次,我們會為您介紹如何将 linux 上指定目錄的讀寫權限賦予使用者。
有兩種方法可以實作這個目标:第一種是 使用 acl (通路控制清單) ,第二種是建立使用者組來管理檔案權限,下面會一一介紹。
為了完成這個教程,我們将使用以下設定。
作業系統:centos 7
測試目錄:/shares/project1/reports
測試使用者:tecmint
檔案系統類型:ext4
請确認所有的指令都是使用 root 使用者執行的,或者使用 sudo 指令 來享受與之同樣的權限。
讓我們開始吧!下面,先使用 mkdir 指令來建立一個名為 reports 的目錄。
# mkdir -p /shares/project1/reports
使用 acl 來為使用者賦予目錄的讀寫權限
重要提示:打算使用此方法的話,您需要确認您的 linux 檔案系統類型(如 ext3 和 ext4, ntfs, btrfs)支援 acl。
1、 首先, 依照以下指令在您的系統中檢查目前檔案系統類型,并且檢視核心是否支援 acl:
# df -t | awk '{print $1,$2,$nf}' | grep "^/dev"
# grep -i acl /boot/config*
從下方的截屏可以看到,檔案系統類型是 ext4,并且從 config_ext4_fs_posix_acl=y 選項可以發現核心是支援 posix acl 的。
檢視檔案系統類型和核心的 acl 支援。
2、 接下來,檢視檔案系統(分區)挂載時是否使用了 acl 選項。
# tune2fs -l /dev/sda1 | grep acl
檢視分區是否支援 acl
通過上邊的輸出可以發現,預設的挂載項目中已經對 acl 進行了支援。如果發現結果不如所願,你可以通過以下指令對指定分區(此例中使用 /dev/sda3)開啟 acl 的支援。
# mount -o remount,acl /
# tune2fs -o acl /dev/sda3
3、 現在是時候指定目錄 reports 的讀寫權限配置設定給名為 tecmint 的使用者了,依照以下指令執行即可。
# getfacl /shares/project1/reports # check the default acl settings for the directory
# setfacl -m user:tecmint:rw /shares/project1/reports # give rw access to user tecmint
# getfacl /shares/project1/reports # check new acl settings for the directory
通過 acl 對指定目錄賦予讀寫權限
在上方的截屏中,通過輸出結果的第二行 getfacl 指令可以發現,使用者 tecmint 已經成功的被賦予了 /shares/project1/reports 目錄的讀寫權限。
如果想要擷取 acl 清單的更多資訊。可以在下方檢視我們的其他指南。
如何使用通路控制清單(acl)為使用者/組設定磁盤配額
如何使用通路控制清單(acl)挂載網絡共享
現在我們來看看如何使用第二種方法來為目錄賦予讀寫權限。
使用使用者組來為使用者賦予指定目錄的讀寫權限
1、 如果使用者已經擁有了預設的使用者組(通常組名與使用者名相同),就可以簡單的通過變更檔案夾的所屬使用者組來完成。
# chgrp tecmint /shares/project1/reports
另外,我們也可以通過以下方法為多個使用者(需要賦予指定目錄讀寫權限的)建立一個使用者組。如此一來,也就建立了一個共享目錄。
# groupadd projects
2、 接下來将使用者 tecmint 添加到 projects 組中:
# usermod -ag projects tecmint
# add user to projects# groups tecmint # check users groups
3、 将目錄的所屬使用者組變更為 projects:
# chgrp projects /shares/project1/reports
4、 現在,給組成員設定讀寫權限。
# chmod -r 0760 /shares/projects/reports
# ls -l /shares/projects/ #check new permissions
好了!這篇教程中,我們向您展示了如何在 linux 中将指定目錄的讀寫權限賦予使用者。若有疑問,請在留言區中提問。
作者:aaron kili
來源:51cto