使用ll (ls -l )查看該目錄的內容列表,如:d rwx r-x r-x ,代表的就是這個目錄或文件的權限。簡單來講,r表示可讀、w表示可寫、x表示可執行。
第一列表示這個文件的類型
d: 表示這個文件爲目錄
-: 表示這個文件爲文件
l: 表示這個文件爲連接文件
b: 表示設備文件裏面的可供存儲的藉口設備
c: 表示設備裏面的串行端口設備
第一組rwx表示文件所有者權限。
第二組rwx表示同用戶組權限,與文件所有者處於同一用戶組擁有的權限。
第三組rwx表示其他人權限,不是文件所有者也不在同意用戶組,則爲其他人。
查看文件的權限
# ls -l install.log
使用 crontab 命令
– 編輯:crontab -e -u 用戶名
– 查看:crontab -l -u 用戶名
– 清除:crontab -r -u 用戶名
# ls -l /etc/passwd
-rw-r–r--. 1 root root 2044 10月 30 19:08 /etc/passwd
權限位 硬連接數 屬主 屬組 大小 最後修改時間 文件/目錄名稱
# -rw-r--r--表示權限位
後面9個項分3個分別表示所有者(rw-),所屬組(r–),其他用戶(r–)的權限
以“-”開頭: 文件 例如:-rw-r–r--. 1 root root 2044 10月 30 19:08 /etc/passwd
以“l”開頭: 快捷方式
以“d”開頭: 目錄 例如:drwxr-xr-x. 2 root root 6 10月 30 19:45 /nsd01
使用 chmod 命令 修改權限
– chmod [-R] 歸屬關係±=權限類別 文檔…
[-R] 遞歸賦予權限
# chmod u-x /nsd01 #所屬主去掉x權限下
# chmod g+w /nsd01 #所屬組添加w權限
# chmod o=rwx /nsd01 #其他用戶全都改爲rwx權限
設置文檔歸屬:
使用 chown 命令
– chown [-R] 屬主 文檔…
– chown [-R] :屬組 文檔…
– chown [-R] 屬主:屬組 文檔…
# useradd dc #添加用戶dc
# mkdir /nsd05 #創建目錄nsd05
# ls -ld /nsd05 #查看目錄的詳細屬性
# groupadd tedu #創建組tedu
# chown dc:tedu /nsd05 #將dc用戶設置屬主,tedu組爲屬組
# ls -ld /nsd05
# chown student /nsd05 #設置student爲屬主
# chown :root /nsd05/ #設置root爲屬組
5.實例:
實例1.
公司技術部有一臺Linux開發服務器,根據部門內項目組的構成情況,需要建立相應的用戶賬號,並對開發數據相關目錄配置訪問權限。
1.文件夾/tech/nsdhome、/tech/jsdhome,分別歸屬於nsd組、jsd組,禁止其他用戶進入。
2.創建部門公共目錄/public,技術部的所有員工(tech組)對其擁有可讀、可寫、可執行,其他用戶禁止訪問此目錄。
[root@localhost /]# mkdir -p /tech/nsdhome
[root@localhost /]# mkdir -p /tech/jsdhome
[root@localhost /]# mkdir /public
[root@localhost /]# groupadd nsd
[root@localhost /]# groupadd jsd
[root@localhost /]# groupadd tech
[root@localhost /]# useradd -g nsd nsd01
[root@localhost /]# useradd -g nsd nsd02
[root@localhost /]# useradd -g jsd jsd01
[root@localhost /]# useradd -g jsd jsd02
[root@localhost /]# useradd -g tech yg01
[root@localhost /]# useradd yg02
[root@localhost /]# chown :nsd /tech/nsdhome
[root@localhost /]# ls -l /tech/nsdhome
總計 0
[root@localhost /]# ls -ld /tech/nsdhome
drwxr-xr-x 2 root nsd 4096 07-30 11:36 /tech/nsdhome
[root@localhost /]# chmod o-rx /tech/nsdhome
[root@localhost /]# chown :jsd /tech/jsdhome
[root@localhost /]# ls -ld /tech/jsdhome
drwxr-xr-x 2 root jsd 4096 07-30 11:36 /tech/jsdhome
[root@localhost /]# chmod o-rx /tech/jsdhome
[root@localhost /]# chown :tech /public
[root@localhost /]# ls -ld /public
drwxr-xr-x 2 root tech 4096 07-30 11:36 /public
[root@localhost /]# chmod g+w /public
[root@localhost /]# ls -ld /public
drwxrwxr-x 2 root tech 4096 07-30 11:36 /public
[root@localhost /]# chmod o-rx /public
[root@localhost /]# ls -ld /public
drwxrwx--- 2 root tech 4096 07-30 11:36 /public
[root@localhost /]# ls -ld /tech/nsdhome
drwxr-x--- 2 root nsd 4096 07-30 11:36 /tech/nsdhome
[root@localhost /]# ls -ld /tech/jsdhome
drwxr-x--- 2 root jsd 4096 07-30 11:36 /tech/jsdhome
實例2.
以root用戶新建/nsddir/目錄,在此目錄下新建readme.txt文件,並進一步完成下列操作
1)使用戶zhangsan能夠在此目錄下創建子目錄 切換用戶 su - zhangsan
[root@dqs ~]# mkdir /nsddir #創建/nsddir目錄
[root@dqs ~]# touch /nsddir/readme.txt #在/nsddir目錄下創建readme.txt文件
[zhangsan@dqs ~]$ mkdir /nsddir/zhangsan #切換到用戶zhangsan下創建目錄及子目錄 提示以下信息,沒有權限不能創建
mkdir: cannot create directory ‘/nsddir/zhangsan’: Permission denied
chmod o+w /nsddir/
2)使用戶zhangsan不能夠在此目錄下創建子目錄
chmod o-w /nsddir/
3)使用戶zhangsan能夠修改readme.txt文件
chmod o+w /nsddir/readme.txt
4)調整此目錄的權限,使所有用戶都不能進入此目錄
chmod u-x,g-x,o-x /nsddir/
5)爲此目錄及其下所有文檔設置權限 rwxr-x---
chmod -R u=rwx,g=rx,o=--- /nsddir/
特殊權限(附加權限):
Set UID
附加在屬主的 x 位上
– 屬主的權限標識會變爲 s (在附加之前有x權限的前提下),若附加之前沒有x權限再附加,則變爲S
– 適用於可執行文件,Set UID可以讓使用者具有文件屬主的身份及部分權限(傳遞所有者身份)
Set GID
附加在屬組的 x 位上
– 屬組的權限標識會變爲 s(在附加之前有x權限的前提下),若附加之前沒有x權限再附加,則變爲S
– 適用於可執行文件,功能與Set UID類似(傳遞所屬組身份)
Sticky Bit
附加在其他人的 x 位上
– 其他人的權限標識會變爲 t
– 適用於開放 w 權限的目錄,可以阻止用戶濫用 w 寫入
權限
$ chmod u+s testfile # 爲 testfile 文件加上 SUID 權限。
$ chmod g+s testdir # 爲 testdir 目錄加上 SGID 權限。
$ chmod o+t testdir # 爲 testdir 目錄加上 SBIT 權限。
ACL策略:
getfacl文件查看ACL策略
setfacl[選項] u:用戶名:權限 文件
setfacl[選項] g:組名:權限 文件
-m定義一條ACL策略
-x刪除指定的ACL策略
-b清除所有已設置的ACL策略
-R遞歸設置
-d爲目錄設置默認權限
ACL權限設置:
創建賬戶:mike john kaka
創建文件:/data/file1.txt
·mike對文件有讀寫權限,john只有讀權限。其他用戶沒有任何權限
·kaka具有與john相同權限
·創建lily,lily對file1.txt具有讀執行權限,其他用戶沒有任何權限
```powershell
# tune2fs -l /dev/sda2 | grep acl
Default mount options: user_xattr acl
# tune2fs -l /dev/sda1 | grep acl
Default mount options: user_xattr acl
# ls -ld /data/
drwxrwxrwx 3 root root 4096 12-09 16:21 /data/
# rm -rf /data/
# mkdir /data
# getfacl /data/
getfacl: Removing leading ‘/‘ from absolute path names
# file: data
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
# ls -ld /data/
drwxr-xr-x 2 root root 4096 12-09 16:27 /data/
# setfacl -m u:mike:rwx /data/
# ls -ld /data/
drwxrwxr-x+ 2 root root 4096 12-09 16:27 /data/
# getfacl /data/
getfacl: Removing leading ‘/‘ from absolute path names
# file: data
# owner: root
# group: root
user::rwx
user:mike:rwx
group::r-x
mask::rwx
other::r-x
# setfacl -m u:john:r-- /data/
# setfacl -m u:kaka:r-- /data/
# setfacl -m u:lily:r-x /data/