二周第三次課(12月20日)2.14 更改文件和目錄許可權chmod 2.15 更改所有者和所屬組chown2.16 umask2.17 隱藏許可權lsattr/chattr 更改文件和目錄許可權:命令:#chmod >> change mode (-R=文件所有者·文件所屬組·其他用戶一起更改) # r ...
二周第三次課(12月20日)
2.14 更改文件和目錄許可權chmod
2.15 更改所有者和所屬組chown
2.16 umask
2.17 隱藏許可權lsattr/chattr
更改文件和目錄許可權:
命令:
#chmod >> change mode
(-R=文件所有者·文件所屬組·其他用戶一起更改)
# rw- >>(許可權:文件所有者,r是否可讀·w是否可寫·x是否可執行)
(許可權:rw-可讀·可寫·不可執行)
#r-- >> (許可權:文件所組,r是否可讀·w是否可寫·x是否可執行)
(許可權:r--可讀·不可寫·不可執行)
#r-- >> ( 許可權:其他用戶,r是否可讀·w是否可寫·x是否可執行)
(許可權:r--可讀·不可寫·不可執行)
#許可權:數字表示(r=4·w=2·x=1 rwx=7 rw-=6 --x=1 )
( rw-r--r--=644 rw-r-xr-x=655)
例:rwx rw- r--
r=讀取屬性 //值=4
w=寫入屬性 //值=2
x=執行屬性 //值=1
# chmod u=rwx,g=r,o=rx admin2/
(U=文件所有者·g=文件所組·o=其他用戶)
# chmod a+x admin2/
(a=全部·文件所有者·文件所組·其他用戶)
許可權範圍的表示法如下:
u User,即文件或目錄的擁有者;
g Group,即文件或目錄的所屬群組;
o Other,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬於這個範圍;
a All,即全部的用戶,包含擁有者,所屬群組以及其他用戶;
r 讀取許可權,數字代號為“4”;
w 寫入許可權,數字代號為“2”;
x 執行或切換許可權,數字代號為“1”;
- 不具任何許可權,數字代號為“0”;
s 特殊功能說明:變更文件或目錄的許可權。
[root@localhost ~]# ls -l
總用量 8
-rw-r--r-- 1 root root 1049 12月 19 11:12 2.txt
-rw-------. 1 root root 1406 11月 10 22:32 anaconda-ks.cfg.1
[root@localhost ~]# chmod 700 2.txt
[root@localhost ~]# ls -l 2.txt
-rwx------ 1 root root 1049 12月 19 11:12 2.txt
[root@localhost ~]# ls -ld /root/.ssh/
drwx------. 2 root root 187 12月 14 14:12 /root/.ssh/
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# ls -l
總用量 0
drwxr-xr-x 4 root root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# chmod 777 admin2
[root@localhost tmp]# ls -ld admin2/
drwxrwxrwx 4 root root 29 12月 19 11:38 admin2/
[root@localhost tmp]# ls -l admin2/
總用量 0
drwxr-xr-x 2 root root 19 12月 18 12:21 2
drwxr-xr-x 4 root root 53 12月 19 11:41 admin2
[root@localhost tmp]# chmod -R 770 admin2
[root@localhost tmp]# ls -l admin2/
總用量 0
drwxrwx--- 2 root root 19 12月 18 12:21 2
drwxrwx--- 4 root root 53 12月 19 11:41 admin2
[root@localhost tmp]# ls -l admin2/
總用量 0
drwxrwx--- 2 root root 19 12月 18 12:21 2
drwxrwx--- 4 root root 53 12月 19 11:41 admin2
[root@localhost tmp]# chmod u=rwx,g=r,o=r admin2/
[root@localhost tmp]# chmod u=rwx,g=r,o=rx admin2/
[root@localhost tmp]# chmod a=x admin2/
[root@localhost tmp]# ls -ld admin2/
d--x--x--x 4 root root 29 12月 19 11:38 admin2/
[root@localhost tmp]# chmod a+x admin2/
[root@localhost tmp]# ls -ld admin2/
d--x--x--x 4 root root 29 12月 19 11:38 admin2/
[root@localhost tmp]# chmod u=rwx,g=r,o=rx admin2/
[root@localhost tmp]# ls -ld admin2/
drwxr--r-x 4 root root 29 12月 19 11:38 admin2/
[root@localhost tmp]# chmod a+x admin2/
[root@localhost tmp]# ls -ld admin2/
drwxr-xr-x 4 root root 29 12月 19 11:38 admin2/
[root@localhost tmp]# chmod a-x admin2/
[root@localhost tmp]# ls -ld admin2/
drw-r--r-- 4 root root 29 12月 19 11:38 admin2/
[root@localhost tmp]#
更改所有者和所屬組:
#chown命令:
文件許可權屬性設置:
chown命令改變某個文件或目錄的所有者和所屬的組,該命令可以向某個用戶授權,
使該用戶變成指定文件的所有者或者改變文件所屬的組。
用戶可以是用戶或者是用戶D,用戶組可以是組名或組id。
文件名可以使由空格分開的文件列表,在文件名中可以包含通配符。
只有文件主和超級用戶才可以便用該命令。
語法:
chown(選項)(參數)
選項:
-c或——changes:效果類似“-v”參數,但僅回報更改的部分;
-f或--quite或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號連接的文件作修改,而不更改其他任何相關文件;
-R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一併處理;
-v或——version:顯示指令執行過程;
--dereference:效果和“-h”參數相同;
--help:線上幫助;
--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬群組全部設成和參考文件或目錄的擁有者與所屬群組相同;
--version:顯示版本信息。
參數:
用戶:組:指定所有者和所屬工作組。當省略“:組”,僅改變文件所有者;
文件:指定要改變所有者和工作組的文件列表。支持多個文件和目標,支持shell通配符。
#chgrp命令:
文件許可權屬性設置:
chgrp命令用來改變文件或目錄所屬的用戶組。
該命令用來改變指定文件所屬的用戶組。其中,組名可以是用戶組的id,也可以是用戶組的組名。
文件名可以 是由空格分開的要改變屬組的文件列表,也可以是由通配符描述的文件集合。
如果用戶不是該文件的文件主或超級用戶(root),則不能改變該文件的組。
在UNIX系統家族裡,文件或目錄許可權的掌控以擁有者及所屬群組來管理。
您可以使用chgrp指令去變更文件與目錄的所屬群組,設置方式採用群組名稱或群組識別碼皆可。
語法:
chgrp(選項)(參數)
選項:
-c或——changes:效果類似“-v”參數,但僅回報更改的部分;
-f或--quiet或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號連接的文件作修改,而不是該其他任何相關文件;
-R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一併處理;
-v或——verbose:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同;
參數:組:指定新工作名稱;
文件:指定要改變所屬組的文件列表。多個文件或者目錄之間使用空格隔開。
[root@localhost tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
adkee:x:1000:1000::/home/adkee:/bin/bash
[root@localhost tmp]# ls /tmp/
admin2
systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# ls -l /tmp/admin2
總用量 0
drwxrwx--- 2 root root 19 12月 18 12:21 2
drwxrwx--- 4 root root 53 12月 19 11:41 admin2
[root@localhost tmp]# chown adkee /tmp/admin2
[root@localhost tmp]# ls -l
總用量 0
drw-r--r-- 4 adkee root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# chgrp adkee /tmp/admin2
[root@localhost tmp]# ls -l
總用量 0
drw-r--r-- 4 adkee adkee 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# chown adkee:adkee /tmp/admin2
[root@localhost tmp]# ls -l
總用量 0
drw-r--r-- 4 adkee adkee 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# chown :root /tmp/admin2
[root@localhost tmp]# ls -l
總用量 0
drw-r--r-- 4 adkee root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-
[root@localhost tmp]# chown -R root:root /tmp/admin2
[root@localhost tmp]# ls -l
總用量 0
drw-r--r-- 4 root root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
umask命令
文件許可權屬性設置
umask命令用來設置限制新建文件許可權的掩碼。當新文件被創建時,其最初的許可權由文件創建掩碼決定。
用戶每次註冊進入系統時,umask命令都被執行, 並自動設置掩碼mode來限制新文件的許可權。
用戶可以通過再次執行umask命令來改變預設值,新的許可權將會把舊的覆蓋掉。
語法:
umask(選項)(參數)
選項:
-p:輸出的許可權掩碼可直接作為指令來執行;
-S:以符號方式輸出許可權掩碼。
參數:
許可權掩碼:指定許可權掩碼。
# 022+644+755
# 002+664=775
# 777-022=755
# 666-022=644
# 666-002=664
# 664
# 666-003=663
# 666-003=(rw-rw-rw-)-(-------wx)=rw-rw-r--=664
# 777-003=(rwxrwxrwx) - (--------wx =rwxrwxr--) =774
(--x --w =0)
[root@localhost tmp]# touch 11.txt
[root@localhost tmp]# ls -l 11.txt
-rw-r--r-- 1 root root 0 12月 20 10:33 11.txt
[root@localhost tmp]# mkdir 123
[root@localhost tmp]# ls -ld 123
drwxr-xr-x 2 root root 6 12月 20 10:34 123
[root@localhost tmp]# umask
0022
[root@localhost tmp]# umask 002
[root@localhost tmp]# touch 21.txt
[root@localhost tmp]# ls -l 21.txt
-rw-rw-r-- 1 root root 0 12月 20 10:37 21.txt
[root@localhost tmp]# mkdir 332
[root@localhost tmp]# ls -ld 332
drwxrwxr-x 2 root root 6 12月 20 10:37 332
[root@localhost tmp]# 022 644 755^C
[root@localhost tmp]# 002 664 775^C
[root@localhost tmp]# 777-022=755^C
[root@localhost tmp]# 666-022=644^C
[root@localhost tmp]# 666-002=664^C
[root@localhost tmp]# umask 003
[root@localhost tmp]# umask
0003
[root@localhost tmp]# ls
11.txt
123
21.txt
332
admin2
systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# touch 1.txt
[root@localhost tmp]# ls -l
總用量 0
-rw-r--r-- 1 root root 0 12月 20 10:33 11.txt
drwxr-xr-x 2 root root 6 12月 20 10:34 123
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:37 21.txt
drwxrwxr-x 2 root root 6 12月 20 10:37 332
drw-r--r-- 4 root root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# 664^C
[root@localhost tmp]# 666-003=663^C
[root@localhost tmp]# 666=(rw-rw-rw-)-(-------wx)=rw-rw-r--=664
[root@localhost tmp]# 777-003=rwxrwxrwx - --------wx =rwxrwxr-- =774
[root@localhost tmp]#
隱藏許可權:
#lsattr
lsattr命令文件許可權屬性設置
lsattr命令用於查看文件的第二擴展文件系統屬性。
語法 lsattr(選項)(參數)
選項:
-E:可顯示設備屬性的當前值,但這個當前值是從用戶設備資料庫中獲得的,而不是從設備直接獲得的。
-D:顯示屬性的名稱,屬性的預設值,描述和用戶是否可以修改屬性值的標誌。
-R:遞歸的操作方式;
-V:顯示指令的版本信息;
-a:列出目錄中的所有文件,包括隱藏文件。
參數:
文件:指定顯示文件系統屬性的文件名。
#chattr
chattr命令文件許可權屬性設置
chattr命令用來改變文件屬性。
這項指令可改變存放在ext2文件系統上的文件或目錄屬性,這些屬性共有以下8種模式:
a:讓文件或目錄僅供附加用途;
b:不更新文件或目錄的最後存取時間;
c:將文件或目錄壓縮後存放;
d:將文件或目錄排除在傾倒操作之外;
i:不得任意更動文件或目錄;
s:保密性刪除文件或目錄;
S:即時更新文件或目錄;
u:預防意外刪除。
語法:
chattr(選項)
選項:
-R:遞歸處理,將指令目錄下的所有文件及子目錄一併處理;
-v<版本編號>:設置文件或目錄版本;
-V:顯示指令執行過程;
+<屬性>:開啟文件或目錄的該項屬性;
-<屬性>:關閉文件或目錄的該項屬性;
=<屬性>:指定文件或目錄的該項屬性。
[root@localhost tmp]# ls -l
總用量 0
-rw-r--r-- 1 root root 0 12月 20 10:33 11.txt
drwxr-xr-x 2 root root 6 12月 20 10:34 123
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:37 21.txt
drwxrwxr-x 2 root root 6 12月 20 10:37 332
drw-r--r-- 4 root root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# chattr +i 1.txt
[root@localhost tmp]# vi 1.txt
[root@localhost tmp]# head -n2 /etc/passwd > 1.txt
-bash: 1.txt: 許可權不夠
[root@localhost tmp]# ls -l 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
[root@localhost tmp]# lsattr 1.txt
----i----------- 1.txt
[root@localhost tmp]# touch 2.txt
[root@localhost tmp]# lsattr 2.txt
---------------- 2.txt
[root@localhost tmp]# mv 1.txt 3.txt
mv: 無法將"1.txt" 移動至"3.txt": 不允許的操作
[root@localhost tmp]# rm -f 3.txt
[root@localhost tmp]# ls -l
總用量 0
-rw-r--r-- 1 root root 0 12月 20 10:33 11.txt
drwxr-xr-x 2 root root 6 12月 20 10:34 123
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:37 21.txt
-rw-rw-r-- 1 root root 0 12月 20 11:21 2.txt
drwxrwxr-x 2 root root 6 12月 20 10:37 332
drw-r--r-- 4 root root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# lsattr 1.txt
----i----------- 1.txt
[root@localhost tmp]# touch 1.txt
touch: 無法創建"1.txt": 許可權不夠
[root@localhost tmp]# touch 2.txt
[root@localhost tmp]# ls -l
總用量 0
-rw-r--r-- 1 root root 0 12月 20 10:33 11.txt
drwxr-xr-x 2 root root 6 12月 20 10:34 123
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:37 21.txt
-rw-rw-r-- 1 root root 0 12月 20 11:27 2.txt
drwxrwxr-x 2 root root 6 12月 20 10:37 332
drw-r--r-- 4 root root 29 12月 19 11:38 admin2
drwx------ 3 root root 17 12月 20 08:59 systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# chattr -i 1.txt
[root@localhost tmp]# ls -l 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
[root@localhost tmp]# ls -l 1.txt
-rw-rw-r-- 1 root root 0 12月 20 10:54 1.txt
[root@localhost tmp]# ls
11.txt
123
1.txt
21.txt
2.txt
332
admin2
systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# vi 1.txt
[root@localhost tmp]# cat 1.txt
sdkalshdjkas
asda
asd
asd
af
[root@localhost tmp]# chattr +a 1.txt
[root@localhost tmp]# rm 1.txt
rm:是否刪除普通文件 "1.txt"?y
rm: 無法刪除"1.txt": 不允許的操作
[root@localhost tmp]# vi 1.txt
[root@localhost tmp]# head -n2 /etc/passwd > 1.txt
-bash: 1.txt: 不允許的操作
[root@localhost tmp]# head -n2 /etc/passwd >> 1.txt
[root@localhost tmp]# !cat
cat 1.txt
sdkalshdjkas
asda
asd
asd
af
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# head -n2 /etc/passwd >> 1.txt
[root@localhost tmp]# cat 1.txt
sdkalshdjkas
asda
asd
asd
af
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# mv 1.txt 3.txt
mv: 無法將"1.txt" 移動至"3.txt": 不允許的操作
[root@localhost tmp]# touch 1.txt
[root@localhost tmp]# ls -l 1.txt
-rw-rw-r-- 1 root root 160 12月 20 11:34 1.txt
[root@localhost tmp]# lsattr 1.txt
-----a---------- 1.txt
[root@localhost tmp]# chattr -a 1.txt
[root@localhost tmp]# ls -l 1.txt
-rw-rw-r-- 1 root root 160 12月 20 11:34 1.txt
[root@localhost tmp]# lsattr 1.txt
---------------- 1.txt
[root@localhost tmp]# ls
11.txt
123
1.txt
21.txt
2.txt
332
admin2
systemd-private-f93c6cd09e5d45d6badb9f26bfe179be-vmtoolsd.service-4HhGmP
[root@localhost tmp]# mkdir 123/332
[root@localhost tmp]# lsattr 123
---------------- 123/332
[root@localhost tmp]# lsattr -d 123
----i----------- 123
[root@localhost tmp]# rm -r 123
rm:是否進入目錄"123"? y
rm:是否刪除目錄 "123/332"?y
rm: 無法刪除"123/332": 許可權不夠
[root@localhost tmp]# mv 123 332
mv: 無法將"123" 移動至"332/123": 不允許的操作
[root@localhost tmp]# touch 123/16.txt
touch: 無法創建"123/16.txt": 許可權不夠
[root@localhost tmp]# chattr -i 123
[root@localhost tmp]# chattr +a 123
[root@localhost tmp]# touch 123/31.txt
[root@localhost tmp]# vi 123/32.txt
[root@localhost tmp]# cat 123/32.txt
sdasdasas
[root@localhost tmp]# head -n2 /etc/passwd > 123/31.txt
[root@localhost tmp]# cat !$
cat 123/31.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# chattr -a 123
[root@localhost tmp]# chattr +i 123
[root@localhost tmp]# head -n2 /etc/passwd > 123/31.txt
[root@localhost tmp]# touch 123/41.txt
touch: 無法創建"123/41.txt": 許可權不夠
[root@localhost tmp]# lsattr -R 123
---------------- 123/332
123/332:
---------------- 123/31.txt
---------------- 123/32_txt.swp
---------------- 123/32.txt
[root@localhost tmp]# lsattr 123
---------------- 123/332
---------------- 123/31.txt
---------------- 123/32_txt.swp
---------------- 123/32.txt
[root@localhost tmp]# tree 123
123
├── 31.txt
├── 32.txt
├── 32_txt.swp
└── 332
1 directory, 3 files
[root@localhost tmp]# chattr +i +a -i -a ^C
[root@localhost tmp]# lsattr -R -a -d