1. 文件權限目錄 html
小結: node
環境:在root環境下建立文件,修改權限,在oldboy 環境下查看修改 文件內容 web
*若是沒有r權限,能夠用vi編輯器,輸入:wq!能夠強制覆蓋,原文件內容被清除,所以可用echo追加內容到文件。 shell
*可執行權限x 表示具備執行文件的權限 安全
① 文件自己要有執行權限才能執行 編輯器
./songGeedu.txt :Permission denied 權限不足 權限拒絕 ide
#./ 是路徑 不要有空格 網站
下面三種方法都是經過其餘命令實現的 ui
#. / 這裏.是個命令 跟source 操作系統
source songGeedu.txt
sh songGeedu.txt
② 普通用戶必須還要有r權限纔可以執行,無r就不能執行
③ root 即時沒有r權限,只要有x權限就能執行
④ root 用戶 有沒有不要緊,其餘人有的權限它就能執行
*用戶所屬於組,一個用戶能夠所屬多個組。用戶組的權限能夠理解爲除root用戶外所屬該組的其餘用戶權限。用戶組有權限,可是用戶沒有,用戶組能夠執行用戶組給與的權利,一樣的文件,看你是什麼用戶查看
[root@songGeedu ~]# ll -d /root/
dr-xr-x---. 5 root root 4096 May 23 18:49 /root/
[root@songGeedu ~]# ll -d /root/
dr-xr-x---. 5 root root 4096 May 23 18:49 /root/
[root@songGeedu ~]# cd /
[root@songGeedu /]# echo "songGeedu">>songGeedu.txt
[root@songGeedu /]# ll -h songGeedu.txt
-rw-r--r-- 1 root root 10 May 25 10:01 songGeedu.txt
[root@songGeedu /]# id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
#屬於其餘用戶
[root@songGeedu /]# echo "echo hello boy" >songGeedu.txt
[root@songGeedu /]# cat songGeedu.txt
echo hello boy
[root@songGeedu /]# ll -h songGeedu.txt
-rw-r---w- 1 root root 15 May 25 10:38 songGeedu.txt
[root@songGeedu /]# chmod u+x songGeedu.txt
[root@songGeedu /]# ll -h songGeedu.txt
-rwxr---w- 1 root root 15 May 25 10:38 songGeedu.txt
[root@songGeedu /]# . /songGeedu.txt
hello boy
文件屬性要看文件自己的權限
文件名的修改要看上級目錄的權限
A: 老師的下面沒報./songGeedu.txt: line 2: I: command not found
B:songGeedu.txt裏多寫了其餘內容,好比有個大寫字母I
#由於咱們要看文本的執行權限,因此給文本中自帶命令
r 具備瀏覽目錄下文件以及子目錄的權限 即 ls data
① 經過ls data能看見文件名,可是無權限訪問目錄下文件
② 經過ll ,全部的文件屬性都是??,只能看到文件名
③ 只有r權限咱們是沒法進入目錄的
w 表示增長修改文件名的權限,必須配合x權限配合
① 增長不是內容,而是一個新的文件 文件名
② 修改 不是文件內容(這個看文件自己權限),只能修改文件名,重命名文件(文件名在目錄的block,看目錄的權限w就能夠)
補充:咱們刪除文件實際刪除這個文件名字,這樣就沒法指向這個文件的inode節點,當沒有文件名指向這個inode節點的時候,系統會同時釋放inode節點和存放這個文件的數據塊,並更新inode MAP 和block MAP 讓這些位置 能夠用於 放置 其餘新的文件數據。
1.爲何目錄設置755 rwx r-x r-x,文件644 rw- r-- r—
系統安全,無論操做系統仍是網站站點目錄,上面的755 644 是安全與便捷的臨界點,大了不安全,小了操做繁瑣。
① 目錄755 文件611 是相對安全的權限
② 用戶和用戶組都是root
以上 是爲 兼顧 安全和使用,在生產中咱們的文件(644)和目錄(755)
應該保持默認權限和用戶組(root root)便可,不可隨意隨意更改。
Linux系統默認權限方針: 知識容許瀏覽 查看 可是禁止 隨意建立 修改 刪除文件 和修改文件內容
2. 爲何咱們建立的目錄權限是755,文件是644,這是怎麼來的?
文件的默認權限是由umask 控制的。umask 經過八進制數值來定義用戶建立的文件或目錄權限,umask數值表示禁止具體的權限。
網站存放目錄 /var/www/html
網址爲 swordsman –sed.html 拜訪網站時,咱們設置權限爲drwxr-xr-x root root www
#www 是屬於裏一個普通用戶(web 服務)
用id 查看 用戶屬於哪一個組
[root@songGeedu ~]# useradd oldgirl -g root
[root@songGeedu ~]# id oldgirl
uid=501(oldgirl) gid=0(root) groups=0(root)
[root@songGeedu ~]# sed -n '61,64p' /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
[oldboy@songGeedu ~]$ umask
0002
[oldboy@songGeedu ~]$ id oldgirl
uid=501(oldgirl) gid=0(root) groups=0(root)
[oldboy@songGeedu ~]$ id -gn
oldboy
[oldboy@songGeedu ~]$ id -un
oldboy
文件的最大權限值666
目錄的最大權限 777
設定umask 值 ,而後建立文件和目錄,在經過ll或者ls –d 查看,
文件 666-007 659 660
目錄 777-007 770
文件 666-122 544 644
目錄 777-122 655
總結:臨時:
umask 建立普通文件 對應的權限值 爲666-umask 【奇數位加1】
目錄文件 直接相減【777-umask】
工做中不須要修改umask 值,由於默認權限就是最好的
永久生效: 修改配置文件/etc/profile
[root@songGeedu ~]# ll -h /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root 587 Apr 26 19:07 /etc/group
---------- 1 root root 480 Apr 26 19:07 /etc/gshadow
-rw-r--r-- 1 root root 1.2K May 26 00:15 /etc/passwd
---------- 1 root root 854 May 26 00:15 /etc/shadow
[root@songGeedu ~]# ll -h `which passwd`
-rwsr-xr-x. 1 root root 31K Feb 22 2012 /usr/bin/passwd
[root@songGeedu ~]# chmod u-s `which passwd`
[root@songGeedu ~]# ll -h `which passwd`
-rwxr-xr-x. 1 root root 31K Feb 22 2012 /usr/bin/passwd
setuid
【關於suid】
1.用戶或屬主對應頭三位權限的x位若是有s 就表示setuid 權限,
當X位置上沒有x,suid 就會顯示S
2.suid 做用是讓普通用戶能夠以root (或其餘用戶)的用戶角色運行只有root (或者其餘用戶)才能運行的程序或命令,或者是程序命令自己沒有權限操做的文件
3 僅對二進制命令生效,不能用 shell 等腳本上
4 二進制程序須要x權限配合
5 suid 權限僅僅是執行的那一段時間生效的
【案例】但願oldboy 用戶可以刪除一個原來刪除不了的文件?
a 設置上一級目錄的寫權限
b 給rm 命令設置suid 粗粒度,其餘用戶都有此權限,針對命令受權
c sudo 受權 針對用戶受權 oldboy 有rm 權限,其餘用戶沒有,細粒度
【setuid】
設置 setuid (簡寫suid)
chmod u+s file
chmod 4755 file
chmod 4644 file
【setgid】
做用: 對文件和目錄設置
例如:chmod 2644 install.log 或者chmod g+s install.log
特別說明:
1. 與suid不一樣的是,sgid既可針對文件也可針對目錄設置
2. sgid 是針對用戶組權限爲修改的
【對文件來講,sgid功能】
1. sgid 僅對二進制命令程序有效
2. 二進制命令程序須要有可執行權限x配合
3. 執行程序的任意系統用戶均可以得到該命令程序在執行期間全部組的權限。
4. locate命令都具有slocate 組的權限