Linux 系统中的权限管理
### 一.權限查看及讀取? ###
# 1.權限查看 #?? ??? ?
ls -l ?? ?file?? ??? ?##查看文件權限
ls -ld?? ?dir?? ??? ?##查看目錄權限
# 2.權限的讀取 #
"文件的屬性被叫做文件的元數據(meta data)"
"一種元數據用1個byte來記錄內容"
#文件權限信息#
- | rw-r--r-- | . | 1 | root | root | 0 |? Apr 12 10:57 |? westos
[1]??? [2]???? [3] [4]?? [5]??? [6]? [7]???????? [8]??????? [9]
#目錄權限信息#
d | rw-r--r-- | . | 2 | root | root | 0 |? Apr 12 10:57 |? westosdir
[1]??? [2]???? [3] [4]?? [5]??? [6]? [7]???????? [8]??????? [9]
?
#對于每一位的解釋#
[1]?? ?#文件類型
?? ?#- 普通文件
?? ?#d 目錄
?? ?#l 軟連接
?? ?#b 快設備
?? ?#c 字符設備
?? ?#s socket套接字
?? ?#p 管道
[2]?? ?##用戶權限
?? ?##rw-|r--|r--
?? ?#? u?? g?? o
[3]?? ?##系統的selinux開啟(安全上下文。空文件不顯示)
[4]?? ?##對于文件:文件內容被系統記錄的次數(硬鏈接個數)
?? ?##對于目錄:目錄中子目錄的個數?? ?
[5]?? ?##文件擁有者
[6]?? ?##文件擁有組
[7]?? ?##對于文件:文件內容大小
?? ?##對于目錄:目錄中子文件的元數據大小
[8]?? ?##文件內容被修改的時間
[9]?? ?##文件名稱
### 二.普通權限的類型及作用###
#1.用戶對文件的身份#
u:?? ?#user 文件的擁有者,ls -l 看到的第五列信息
g:?? ?#group 文件擁有組, ls -l 看到的第六列信息
o:?? ?#other 既不是擁有者也不是擁有組成員的其他用戶的通稱
#2.權限位#
rwx|r--|r--
?u?? g?? o
#3.用戶身份匹配#
user>group>other
#4.權限類型#
-?? ?#權限未開啟
r?? ?#可讀
?? ?#對于文件:可以讀取文件內容
?? ?#對于目錄:可以ls列出目錄中的文件
?? ?
w?? ?#可寫
?? ?#對于文件:可以更改文件內容
?? ?#對于目錄:可以在目錄中新建或者刪除文件
?? ?
x?? ?#可執行
?? ?#對于文件:可以用文件名稱調用文件內記錄的程序
?? ?#對于目錄:可以進入目錄中
### 三.設定普通權限的方法 ###
chmod?? ??? ?##設定文件權限
#chmod 復制權限#
chmod --reference=/tmp?? ?/mnt/westosdir?? ??? ?##復制/tmp目錄的權限到/mnt/westosdir上
chmod -R --reference=/tmp /mnt/westosdir?? ?#復制/tmp目錄的權限到/mnt/westosdir及
?? ??? ??? ??? ??? ??? ?#目錄中的子文件上 -R 代表第歸操作
#chmod 字符方式設定權限
chmod <a|u|g|o><+|-|=><r|w|x> file?? ??? ?##用字符方式設定文件權限
示例:
chmod? u-rw /mnt/westos1
chmod? u-rw /mnt/westosfile1
chmod? u-rw,g+x,o+wx /mnt/westosfile2
chmod? a-rwx /mnt/westosfile3
chmod? u=rwx,g=rx,o=--- /mnt/westosfile4
chmod? -R u=rwx,g=rx,o=--- /mnt/westosdir/
?
#chmod 數字方式設定權限#
權限波爾指表示方式
rwx = 111
--- = 000
三位二進制可以表示的最大范圍為8進至數
rwx=111=7
rw-=110=6
r-x=101=5
r--=100=4=r
-wx=011=3
-w-=010=2=w
--x=001=1=x
---=000=0
chmod??? 600?? /mnt/westosfile1
????? rw-------
?
### 四.系統默認權限設定 ###
#系統本身存在的意義共享資源
#從安全角度講系統共享的資源越少,開放的權力越小系統安全性越高
#既要保證系統安全,又要系統創造價值,于是把應該開放的權力默認開放
#把不安全的權力默認保留
#如何保留權力#
# umask表示系統保留權力
umask?? ??? ?#查看保留權力
umask 權限值?? ?#臨時設定系統預留權力
文件默認權限 = 777-umask-111
目錄默認權限 = 777-umask
umask值越大系統安全性越高
#umask臨時更改
umask 077
#永久更改
vim /etc/bashrc ?? ?##shell系統配置文件
74???? if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
75??????? umask 002-->022?? ?#普通用戶的umask
76???? else
77??????? umask 022?? ??? ?#root用戶的umask
78???? fi
vim /etc/profile?? ?##系統環境配置文件
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60???? umask 002-->022?? ??? ?#普通用戶的umask
61 else
62???? umask 022?? ??? ?#root用戶的umask
63 fi
source /etc/bashrc?? ??? ?##source作用時使我們更改的內容立即被系統識別
source /etc/profile?? ?
### 五.文件用戶用戶組管理 ###
chown username?? ?file?? ??? ?##更改文件擁有者
chgrp groupname? file?? ??? ?##更改文件擁有組
chown username:groupname file?? ?##同時更改文件的擁有者和擁有組
chown|chgrp? -R?? ?user|group dir?? ?##更改目錄本身及目錄中內容的擁有者或者擁有組
### 六.特殊權限 ###
#stickyid?? ?粘制位
#針對目錄: #如果一個目錄stickyid開啟,那么這個目錄中的文件
?????????? #只能被文件所有人刪除
chmod? 1原始權限 dir
chmod? o+t? dir
實驗:
mkdir ?? ??? ?/pub
chmod?? ? 777?? ?/pub
su - westos ----> touch /pub/westosfile
exit
su - lee --------> touch /pub/leefile
rm -fr /pub/leefile #可以刪除
rm -fr /pub/westosfile #不屬于自己的文件也可以刪除
如何解決此問題:
chmod 1777 /pub
chmod o+t /pub
以上兩條命令都可以開啟pub目錄的t權限
su - westos ----> touch /pub/westosfile
exit
su - lee --------> touch /pub/leefile
rm -fr /pub/leefile ?? ?#可以刪除
rm -fr /pub/westosfile #不屬于自己的文件不能刪除
rm: cannot remove 'westosfile': Operation not permitted
?
#sgid?? ??? ?強制位
#針對目錄: 目錄中新建的文件自動歸屬到目錄的所屬組中
設定:
chmod? 2源文件權限?? ?dir
chmod g+s?? ??? ?dir
實驗
group westostest
mkdir /mnt/westosdir
chmod 777 /mnt/westosdir
chgrp westostest /mnt/westosdir
watch -n1 ls -lR /mnt
root ---> touch /mnt/westosdir/file?? ?##是誰建立的文件組就是誰的
chmod g+s /mnt/westosdir
root ---> touch /mnt/westosdir/file1?? ?##file1自動復制了/mnt/westosdir目錄組
?
#只針對二進制的可執行文件(c程序)
#當運行二進制可執行文件時都是用文件擁有組身份運行,和執行用戶無關
實驗:
su - westos
/bin/cat
ps ax -o user,group,comm | grep cat ??
westos?? westos?? cat
用root用戶身份
chmod g+s /bin/cat
su - westos
/bin/cat
ps ax -o user,group,comm | grep cat
westos?? root?? cat
#suid?? ??? ?冒險位
#只針對二進制的可執行文件(c程序)
#當運行二進制可執行文件時都是用文件擁有者身份運行,和執行用戶無關
chmod 4原屬性? file
chmod u+s????? file
實驗:
su - westos
/bin/cat
ps ax -o user,group,comm | grep cat
westos?? westos?? cat
用root用戶身份
chmod u+s /bin/watch
su - westos
/bin/cat
ps ax -o user,group,comm | grep cat
root?? westos? cat
### 七.acl權限列表 ###
Aiccess Control Lists?? ?#訪問控制列表
#功能:
#在列表中可以設定特殊用戶對與特殊文件有特殊權限
#acl列表開啟標識
-rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile
?? ?? ^
?? ?沒有"+"代表acl列表未開啟
-rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
?? ?? ^
?? ?acl列表功能開啟
#acl列表權限讀取
getfacl? westosfile
顯示內容分析
# file: westosfile?? ?#文件名稱
# owner: root?? ??? ?#文件擁有者
# group: root?? ??? ?#文件擁有組
user::rw-?? ??? ?#文件擁有者權限
user:lee:rw-?? ??? ?#特殊指定用戶權限
group::r--?? ??? ?#文件擁有組權限
group:westos:---?? ?#特殊指定的用戶組的權限
mask::rw-?? ??? ?#能夠賦予特殊用戶和特殊用戶組的最大權限閥值
other::r--?? ??? ?#其他人的權限
"注意:"
"當文件權限列表開啟,不要用ls -l 的方式來讀取文件的權限"
#acl列表的控制
setfacl -m u:lee:rw ??? ?westosfile?? ?#設定
setfacl -m g:westos:rw?? ?westosfile
setfacl -m u::rwx?? ?westosfile
setfacl -m g::0?? ??? ?westosfile
setfacl -x u:lee?? ?westosfile?? ?##刪除列表中的lee
setfacl -b westosfile?? ??? ??? ?#關閉
?
#acl 權限優先級
擁有者 > 特殊指定用戶 > 權限多的組 >權限少的組 > 其他
#acl mask 控制
#mask是能夠賦予指定用戶權限的最大閥值
問題
當設定完畢文件的acl列表之后用chmod縮小了文件擁有組的權力
mask會發生變化
恢復:
setfacl -m m:權限?? 文件
#acl 列表的默認權限
setfacl -m u:lee:rwx /mnt/westosdir?? ?##只對于/mnt/westosdir目錄本身生效
setfacl -Rm u:lee:rwx /mnt/westosdir?? ?##對于/mnt/westosdir目錄和目錄中已經存在的內容生效
#以上的命令之針對與存在的文件生效,新建文件是不會被設定的
setfacl? -m d:u:lee:rwx /mnt/westosdir/?? ?##針對與/mnt/westosdir目錄中新建文件生效
?
##八.attr權限
#attr權限限制所有用戶
i?? ?#不能作任何的更改
a?? ?#能添加不能刪除
lsattr dir|file?? ??? ?##查看attr權限
chattr +i|+a|-i|-a dir|file?? ?##設定attr權限
總結
以上是生活随笔為你收集整理的Linux 系统中的权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运维Linux系统中的用户管理
- 下一篇: Linux 中的进程管理