1. 程式人生 > >chmod chown umask chattr_lsattr

chmod chown umask chattr_lsattr

chmod chown umask

一、文件或目錄權限chmod
[root@localhost ~]# ls -l
total 4
-rw-r--r--. 1 root root 0 Mar 28 08:20 2.txt
-rw-------. 1 root root 2331 Mar 28 09:02 anaconda-ks.cfg.1
rw- r-- r--. 1 root root
//第一到三字符:rw- 表示所有者擁有讀、寫權限
//第四到六字符:r-- 表示所屬組擁有讀的權限
//第七到十字符:r-- 表示其他用戶擁有讀的權限
權限使用數字表示: r=4 w=2 x=1 rwx=7 rw-=6 --x=1
例如:rw-r--r--.=644 rw-r-xr-x=655
chmod命令(change mode縮寫):用來變更文件或目錄的權限
選項:
-c或——changes:效果類似“-v”參數,但僅回報更改的部分;
-f或--quiet或——silent:不顯示錯誤信息;
-R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一並處理;
例:chmod -R 770 hll //將hll文件夾下的所以子文件的權限也改為770
-v或——verbose:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同;
<權限範圍>+<權限設置>:開啟權限範圍的文件或目錄的該選項權限設置;
<權限範圍>-<權限設置>:關閉權限範圍的文件或目錄的該選項權限設置;
<權限範圍>=<權限設置>:指定權限範圍的文件或目錄的該選項權限設置;
例1:
[root@localhost ~]# chmod 700 2.txt
[root@localhost ~]# ls -l
total 4
-rwx------. 1 root root 0 Mar 28 08:20 2.txt
前十位字符串後面的 .的解釋(有.表示selinux開啟,需要關閉selinux後.就沒有顯示了)
-rwx------. 1 root root 0 Mar 28 08:20 2.txt
chmod命令還可以這樣使用:chmod u=rwx,g=r,o=r hll
例2:
chmod a+x hll //將所有者用戶、所屬組、其他用戶的權限都+x執行權限
[root@localhost tmp]# chmod a+x hll
[root@localhost tmp]# ls -l
drwxr-xr-x. 4 root root 24 Mar 28 08:26 hll
例3:
chmod a-x hll //將所有者用戶、所屬組、其他用戶的權限都去掉x執行權限
[root@localhost tmp]# chmod a-x hll
[root@localhost tmp]# ls -l
drw-r--r--. 4 root root 24 Mar 28 08:26 hll
或者還可以使用:chmod u-x hll //所有者去掉x權限
chmod g-w hll //所屬組去掉w權限
chmod o-x hll //其他用戶去掉x權限
二、更改所有者和所屬組chown
chown命令(change owner):更改所有者權限命令
例1:
[root@localhost tmp]# chown user1 yum.log //更改yum.log所有者權限為user1用戶
[root@localhost tmp]# ls -l
-rw-------. 1 user1 root 0 Mar 25 23:52 yum.log
例2:
[root@localhost tmp]# chown user1:user2 /tmp/yum.log //更改yum.log的所有者為user1,所屬組為user2
[root@localhost tmp]# ls -l
-rw-------. 1 user1 user2 0 Mar 25 23:52 yum.log
chgrp命令(change group):更改文件或目錄的所屬組權限命令
例3:
[root@localhost tmp]# chown :root /tmp/yum.log //只更改yum.log的所屬組為root
[root@localhost tmp]# ls -l
-rw-------. 1 user1 root 0 Mar 25 23:52 yum.log
例4:
[root@localhost tmp]# chgrp user1 /tmp/yum.log //更改yum.log所屬組權限為user1組
[root@localhost tmp]# ls -l
-rw-------. 1 user1 user1 0 Mar 25 23:52 yum.log
查看系統用戶:cat /etc/passwd
chown用法格式:chown -R username:group filename

三、umask:用來決定默認的目錄和文件權限的
[root@localhost ~]# umask
0022 //系統root用戶的umask指為0022
修改系統默認mask值:
[root@localhost ~]# umask
0022
[root@localhost ~]# umask 002
[root@localhost ~]# umask
0002

目錄默認權限設置規律:777 - umask 真實算法:777=(rwxrwxrwx)-(-------wx)=774
文件默認權限設置規律:666 - umask 真實算法:666=(rw-rw-rw-)- (-------wx) = 644
註意:-(什麽都沒有)-(減號)x(x權限)=-(什麽都沒有)
[root@localhost ~]# touch 11.txt
[root@localhost ~]# ls -l 11.txt
-rw-r--r--. 1 root root 0 Mar 29 00:17 11.txt //創建一個文件默認權限是644

[root@localhost ~]# mkdir 123
[root@localhost ~]# ls -ld 123
drwxr-xr-x. 2 root root 6 Mar 29 00:18 123 //創建一個文件夾/目錄默認權限755

四、隱藏權限lsattr_chattr
[root@localhost ~]# chattr +i 11.txt //給11.txt文件添加i權限,這樣11.txt文件別人就不能修改、刪除、移動等
[root@localhost ~]# ls -l
total 4
-rw-r--r--. 1 root root 0 Mar 29 00:17 11.txt
drwxr-xr-x. 2 root root 6 Mar 29 00:18 123
-rwx------. 1 root root 0 Mar 28 08:20 2.txt
-rw-------. 1 root root 2331 Mar 28 09:02 anaconda-ks.cfg.1
[root@localhost ~]# mv 11.txt 13.txt //提示沒有權限改名
mv: cannot move ‘11.txt’ to ‘13.txt’: Operation not permitted
[root@localhost ~]# lsattr 11.txt //lsattr命令查看文件隱藏的權限
----i----------- 11.txt
[root@localhost ~]# chattr -i 11.txt //chattr -i命令去掉-i權限
[root@localhost ~]# lsattr 11.txt
---------------- 11.txt

chattr +a :只能追加字符,不能刪除,不能改名稱,不能修改文件內容,可以更改時間信息(可以使用head -n2 /etc/passwd >> 11.txt追加字符)
[root@localhost ~]# chattr +a 11.txt //給11.txt文件+a隱藏權限
[root@localhost ~]# head -n2 /etc/passwd >> 11.txt //為11.txt文件追加/etc/passwd文件前2行字符
[root@localhost ~]# mv 11.txt 13.txt //為11.txt修改名稱提示沒有權限
mv: cannot move ‘11.txt’ to ‘13.txt’: Operation not permitted
[root@localhost ~]# lsattr 11.txt //lsattr命令查看11.txt有-i權限
-----a---------- 11.txt
[root@localhost ~]# chattr -a 11.txt //刪除-a權限
[root@localhost ~]# lsattr 11.txt
---------------- 11.txt

chattr +i 目標目錄:目錄沒有被寫入、刪除、更改、創建子文件夾等權限
lsattr -R 111:可以顯示111目錄下的所有子目錄,如果不加-R選項,只能例出顯示一層目錄

chmod chown umask chattr_lsattr