##########################
##### unit6.文件權限 #####
##########################
########1.文件屬性的查看#######
ls -l filename
-|rw-r--r--.|1| root | root | 46 | Oct 1 05:03 |filename
1 2 3 4 5 6 7 8
1.文件類型
- ##普通文件
d ##目錄
c ##字符設備
s ##套接字
p ##管道
b ##快設備
l ##連接
2.“rw-r--r--”:文件讀寫權限
rw-|r--|r--
* $ @
*所有人的權限
$所有組的權限
@其他人的權限
3.“1”文件內容被系統記錄的次數
4.“root”:文件所有人
5.“root”:文件所有組
6.“46”:文件內容的大小
7.“Oct 1 05:03”:文件最後一次被修改的時間
8.“filename”:文件名字
########2.文件的權限#######
u:文件所有人對文件可讀
g:文件組成員對文件可讀
o:其他人對文件可讀
u優先匹配,g次優先,o當u,g不匹配時匹配
1.r
對文件:可以查看文件中的字符
對目錄:可以查看目錄中的文件信息
2.w
對文件:可以更改文件內的字符
對目錄:可以在目錄中添加刪除文件
3.x
對文件:可以運行文件內記錄的程序動作
對目錄:可以進入到目錄中
4.字符方式修改文件權限
chmod [-R] [u|g|o] [+|-|=] [r|w|x] file|dir
chmod u-x file1 ##file1擁有者去掉x權限
chmod g+w file1 ##file1擁有着添加w權限
chmod u-x,g+w file1 ##file1擁有着去掉x權限,擁有組添加w權限
chmod ugo-r file2 ##file2用戶,組,其他人去掉r權限
chmod ug+x,o-r file3 ##file3用戶,組添加x權限;其他人去掉r權限
5.數字方式修改文件權限
chmod 修改後的權限值 file
chmod 777 file
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
#########3.設置umask值########
永久設定方式:
vim /etc/bashrc ##shell
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 ##普通用戶umask
72 else
73 umask 022 ##超級用戶umask
74 fi
vim /etc/profile ##系統
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用戶umask
61 else
62 umask 022 ##超級用戶umask
63 fi
注意:以上兩個文件的umask必須保持一致
source /etc/bashrc
source /etc/profile
讓設定立即生效
########4.特殊權限#########
1.suid
只針對二進制可執行文件
文件內記錄的程序產生的進程的所有人爲文件所有人
和進程發起人身份無關
設定方式:
chmod u+s file
suid=4
chmod 4xxx file
2.sgid
對文件:只針對二進制可執行文件,
任何人運行二進制文件
程序運行時產生的進程的所有組都是文件的所有組
和程序的發起人組的身份無關
對目錄:當目錄有sgid權限後,目錄中新建的所有文件的所有組
都自動歸屬到目錄的所有組之中,和文件建立這所在的組無關
設定方式:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
3.sticky
t權限:
只針對與目錄,當一個目錄上有t權限,那麼目錄中的文件只能被所有人刪除
設定方式:
chmod o+t directory
t=1
chmod 1xxx directory
補充:
1. b 塊設備
l 鏈接
2.同時修改所有人和所有組的命令是
chown student.student /mnt/find.out
或chown student:student /mnt/find.out
3.chown +用戶名/用戶名id(若沒有用戶使用該id,則ls -l時直接顯示該id 號)
##一般不建議使用id號來修改文件該屬性
4.umask顯示的是0077,第一位爲特殊權限
5.當添加s特殊權限時,如果該二進制文件的所屬用戶發生改變,則需要重新賦予其s權限
6.echo $PATH 顯示當前用戶可執行命令的文件路徑
7.冒險位suid,強制位sgid,粘制位sticky