文件統配
匹配模式:元字符
文件名通配符
*匹配任意長度的任意字符
[root@localhost ~]# ls /root/D*
/root/Desktop /root/Documents /root/Downloads
?匹配單個任意字符
[root@localhost ~]# ls /root/a?b
/root/akb /root/alb
[]匹配自帶范圍內的任意單個字符[1-9] [a-z] [a-z0-9]a-z,0-9中單個字符
[root@localhost ~]# ls /root/a[a-z]b
/root/akb /root/alb
[root@localhost ~]# ls /root/a[1-9]b
/root/a1b /root/a3b
pa[0-9][0-9]
數字:200-290=2[1-9][1-9]
[[:upper:]] :所有大寫字母
[[:lower:]] :所有小寫字母
[[:alpha:]] :所有字母
[[:digit:]] :所有數字
[[:alnum:]] :所有的字母和數字
[[space]] :所有空白字符 touch /root/a\ b 文件a空格b
[[:punct:]] :所有標點符號
\轉義字符
[^] :匹配范圍外的任意單個字符
[^[:upper:]]
[^0-9]
查找以m,n,r,p開頭,以.conf文件結尾的文件
ls [m-nr-p]*.conf
IO重定向及管理
可用于輸入的設備,文件
鍵盤,文件系統常規文件,網卡
可用于輸出的設備,文件
鍵盤,文件,網卡
程序的數據流有三種
輸入的數據流:<—— 標準輸出(stdin) 0 鍵盤
輸出的數據流 —–> 標準輸出(stdou)1 顯示器
錯誤輸出流 —–> 錯誤輸出(stderr) 2 顯示器
fd 文件描述符
標準輸入:0
標準輸出:1
錯誤輸出:2
io重定向
輸出重定向 > 文件或者設備 ,重定向寫數據時要非常注意 echo > /dev/sdb1
[root@localhost ~]# cat /etc/issue > /dev/tty1 重定向至終端
> 覆蓋輸出重定向
>> 追加重定向,IO流將輸入到文件或設備后追加內容。
/dev/null 數據黑洞,將輸出數據重定向至/dev/null ,設備/dev/null則會將它丟棄
cat /etc/issue >| /tmp/a.txt 強制覆蓋輸出
錯誤輸出流重定向 2> ,2>>
合并正常輸出流和錯誤輸出流 &> ,&>>
1 ls +dafsa &> /root/err.log
2 ls +safa > /root/err.log 2>&1 這種不能使用:2>>&1
3 ls + asdfa 2> err.log 1> err.log
輸入重定向
cat < /etc/issue
tr命令 字符替換
localhost ~]# tr [a-z] [A-Z] < /etc/issue
CENTOS RELEASE 6.8 (FINAL)
KERNEL \R ON AN \M
WELCOME XIONG LINUX……
-d 刪除字符 tr -d ‘xiong’ < /etc/issue
<<
[root@localhost ~]# cat << EOF
> xiong
> xiong
> EOF
xiong
xiong
[root@localhost ~]# cat > /tmp/cat.out << EOF
> xiong
> xiong
> EOF
[root@localhost ~]# cat /tmp/cat.out
xiong
xiong
[root@localhost ~]#
管道(|):將前一個命令的輸出流當后一個命令的輸入流
tee 將輸出流數據保存,并將流副本交給下個管道命令
[root@localhost ~]# cat /etc/issue | tee /root/issue | tr 'xiong' 'jiangshuang'
CentOS release 6.8 (Final)
Kernel \r an an \m
welcame jiang linuj.…..
[root@localhost ~]# cat /root/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
welcome xiong linux……
用戶,組,權限管理
用戶登錄系統時,需要對用戶進行識別,這個過程就是認證的過程。
3A認證
用戶標識,密碼 authertication 認證
autherrization 授權(chmod,chown)
監督權限使用,審計audition
進入系統后,用戶遵循linux安全上下文規則
Linux安全上下文
運行中的程序:進程 (process)
以進程發起者的身份運行:
root: /bin/cat
mage: /bin/cat
進程所能夠訪問資源的權限取決于進程的運行者的身份
組:用戶組,用戶容器,將幾個用戶加入容器,并將文件權限授權給組,使用戶
組內的用戶能對授權文件進行操作。組也可以角色。
用戶類別:有管理用戶,普通用戶(系統用戶,登錄用戶)
用戶標識: userid用戶id uid 組id 是個二進制數字:0-65535
管理員:0
普通用戶:1-65535
系統用戶:1-499個 centos5,6 1-999個 centos7中
登錄用戶:500-6000個centos5,6 1000-6000個centos7
名稱解析,
username<—>uid 根據名稱解析庫進行解析(/etc/passwd)
組類別1:
管理員組
普通用戶組(系統組,登錄組)
組標識: groupid ,gid
管理員組:0
系統組:1-499個,centos5,6, 1-999個,centos7
普通用戶組
500-6000個,centos5,6 1000-6000個centos7
名稱解析 :將groupname<—–>gid ,/etc/group
組類別2
用戶的主組
用戶的附加組
組類別3
私有組:組名同用戶,且只包含一個用戶
公共組:組內包含了多個用戶:
認證信息
通過對比事先存儲的信息,與登錄時提供的信息是否一致
密碼使用策略:
1.使用隨機密碼
2. 最短長度不要低于8位
3.大寫字母,小寫字母,數字,標點符號至少3類
4.定期更換密碼
加密算法
對稱加密,加密和解密使用同一個密碼
非對稱加密:加密和解密使用的一對密鑰,公鑰與私鑰
單向加密:只能加密,不能解密,提取數據的特征碼
定長輸出,有雪崩效應
算法:md5
sha
sha224
sha256
sha384
sha512 $6$
/etc/passwd 用戶的信息庫
/etc/passwd
[root@localhost ~]# tail /etc/passwd | grep xiong
xiong:x:1001:1001:注釋信息(useradd -c “”可以創建):/home/xiong:/bin/bash
xiong: 用戶名
x:占位符
uid:用戶的uid
gid:用戶所屬的主組的id號
gecos:注釋信息
directory:用戶的家目錄
shell:用戶默認的shell
/etc/shadow
用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限,最長使用期限,警告期段,有效期限:保留字段
用戶名:
[root@localhost ~]# cat /etc/shadow |grep xiong
xiong:$6$iWlJ.Osu$6Ma.e092soQLmIPWzTsS8YSbYwQ9BUa4uAK9FPqiPmAFeYgNGxw7.HwrBorAsk12JCYBrW9FRX.pBG97k4lup0:a17009:b0:c99999:d7:e:f:
$分隔
$6$ 6表示用sha512加密
$iWlJ.Osu$隨機數
密碼6Ma.e092soQLmIPWzTsS8YSbYwQ9BUa4uAK9FPqiPmAFeYgNGxw7.HwrBorAsk12JCYBrW9FRX.pBG97k4lup0
登錄用名
用戶密碼:一般用sha512加密 ,隨機數加+密碼,在通過sha5進行加密
從1970年1月1日起到密碼最近一次被更改的時間 a17009
密碼再過幾天可以被變更(0表示隨時可被變更) b0
密碼再過幾天必須被變更(99999表示永不過期) c99999
密碼過期前幾天系統提醒用戶(默認為一周) d7
密碼過期幾天后帳號會被鎖定 e
從1970年1月1日算起,多少天后帳號失效。 f
/etc/group
[root@localhost ~]# cat /etc/group | grep xiong
xiong:x:1001:
xiong:組名 x密碼占位符 gid組id
user_list:該組的用戶組成員,以次組為附加組的用戶的用戶列表
群組名稱:就是群組名稱
群組密碼:
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組為附加組的用戶列表:(分隔符為逗號)
/etc/gshadow
群組名稱:就是群組名稱
群組密碼:
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組為附加組的用戶列表:(分隔符為逗號)
linux 用戶組管理
groupadd,如果不指定的話,默認為上一個組id加1
-g –gid 指定用戶組的組id
-r 創建系統組
系統組:
進程訪問的文件權限,取決于發起者的權限
為了讓那些后臺進程或服務類進程以非管理員的身份運行,通常需要為此創建多個普通用戶,
這個用戶從來不用等了系統:僅僅是用來讓其他進程以他身份來運行,從而獲取普通權限的。
[root@localhost ~]# groupadd -r -g 306 marriadb
groupmod修改組屬性
-n 修改組名 [root@localhost ~]# groupmod -n xiongdb(新名字) marriadb(舊名字)
-g 修改組id [root@localhost ~]# groupmod -g 399 xiongdb
groupdel 刪除組 [root@localhost ~]# groupdel testid
gpasswd 組添加密碼
選項
-a username 向組中添加用戶 將fdora加入netadmin組 gpasswd -a fdora netadmin
-d username 重組中移除用戶 gpasswd -d fdora netadmin
-A user1,user2,…: 設置有管理權限的用戶列表
groupmems [options] [action] 組成員管理
options:
-g –group groupname 更改為指定組 (只有root) Actions:
-a –add username 指定用戶加入組
-d –delete username 從組中刪除用戶
-p –purge 從組中清除所有成員
-l –list 顯示組成員列表
groups [OPTION].[USERNAME]… 查看用戶所屬組列表
newgrp 臨時將用戶組切換 newgrp user05, exit 退出組必須用
useradd 創建用戶
-c添加注釋信息 useradd -c“test” user05
-u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs useradd -u 3000 docker
-o 配合-u 選項,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可為組名,也可以GID 此組必須實現存在 useradd -g openstack xiong
-c "COMMENT":用戶的注釋信息
-d HOME_DIR: 以指定的路徑(不存在)為家目錄。默認在home目錄自動創建,通過復制/etc/skel此目錄并重命令實現的: useradd -d /tmp/user09 user09
-s SHELL: 指明用戶的默認shell程序 可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:為用戶指明附加組,組必須事先存在
-N 不創建私用組做主組,使用users組做主組
-r: 創建系統用戶 CentOS 6: ID<500,CentOS 7: ID<1000
-m 強制為用戶指定目錄,并復/etc/skel環境等配置文件
-M 不創建主目錄
-f 非活動期限,指用戶到期后,登錄系統,修改密碼就行,值為-1
默認值設定:/etc/default/useradd文件中
GROUP=100 私有組
HOME=/home 創建家目錄位置
INACTIVE=-1 非活動期限禁用
EXPIRE= 永不過期
SHELL=/bin/bash 默認shell
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes 是否創建郵件隊列,在/var/spool/mail創建郵件地址
用戶創建時,需要用到的文件及目錄
useradd -D
/etc/default/useradd
/etc/skel/* 目錄的一些配置文件
/etc/login.defs 創建用戶時一些配置文件
批量創建用戶
newusers passwd格式文件 passwd格式文件跟/etc/passwd一致
chpasswd 批量修改用戶口令
passwd修改用密碼
-l-u 鎖定和解鎖
-e 過期期限 ,日期
-i days 非活動期限
-n days密碼的最短使用期限
-x 密碼的最長期限
-w 警告期限
–stdin 通過標準輸出來設置用戶名密碼 echo "111111" | passwd –stdin user05
usermod 修改用戶屬性
-u 修改用戶為此處的新id號
-g 修改用戶所屬的基本組 usermod -g openstack user09 新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;
-a –append:與-G一起使用,用于為用戶追加新的附加組。
-c修改注釋信息
-d 修改用戶的家目錄,用戶原有的文件不會被轉移至新位置,必須與-m一起使用
-s 修改用戶shell
-l login_name: 新的名字
-L: lock指定用戶,在/etc/shadw 密碼欄的增加 !
-U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉
-e YYYY-MM-DD: 指明用戶賬號過期日期;
-f INACTIVE: 設定非活動期限;
userdel刪除用戶
userdel -r user01 刪除用戶,同時刪除用戶目錄
id 顯示用戶id,組id等信息
-g或–group 顯示用戶所屬群組的ID。
-G或–groups 顯示用戶所屬附加群組的ID。
-n或–name 顯示用戶,所屬群組或附加群組的名稱。
-r或–real 顯示實際ID。
-u或–user 顯示用戶ID。
-help 顯示幫助。
pwck 檢查用戶密碼是否有問題
gpwck 檢查用戶組的密碼是否有異常的
chage 命令 更改用戶密碼過期信息
su切換用戶
登錄式切換,會通過重新讀取目標的配置文件來重新初始化
su – 用戶名 su – xiong 或者 su -l username
非登錄式切換,不會讀取目標用戶的配置文件進行初始化
su 用戶名
管理員切換至他用戶,不需要用戶密碼,但是切換用戶切換需要輸入密碼
-c 僅以指定用戶的身份運行此處指定的命令
[root@localhost ~]# su – netadmin -c 'whoami'
netadmin
權限管理
進程安全上下文:
進程對文件的訪問權限應用模型
進程的屬組與文件的屬組是否相同,如果相同,則應用屬組權限,
否則,則檢查進程屬組是否與文件的屬組;如果是,則應用屬組權限。
否則,就只能運用其他權限進程的屬組與文件的屬組是否相同,如果相同,則執行,如果不同則檢查屬組權限,如果有權限,則執行,如果沒有,檢查其他
用戶權限,有權限則執行。)
左三位定義屬組權限,中三位為屬組權限,右三位為其他用戶權限
r:readable 4讀權限 w writeable 2寫權限 x excuteable 1執行權限
文件:r:可以獲取文件數據 access time
w 可修改文件的數據 touch 文件 stat 文件 modify time
x 可將此文件運行的進程 change time
文件一般沒有執行文件,如果文件有執行權限,則有可能有問題。
目錄 r 可用ls命令獲取其下的所有文件列表,但是不獲取詳細信息
w 可修改此目錄下的文件列表
x 可cd至此目錄 ,可用ls -l 獲取所有文件的詳細屬性信息。
權限組合機制:沒有權限就用-代表
— 000 0 沒有讀寫,執行權限
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7 規律為,有相應權限為則為1,沒有相應權限則為0
二進制 八進制
chmod命令有三種 在遞歸中X只給目錄加執行權限,目錄內文件不加執行權限
賦值表示:直接操作一類用戶的所有權限位
屬主u= 屬組g= 其 他用戶o= 所有a=
如果想同時給u,g,o賦值則可以用‘,‘分開。如果兩u,g,o相同則可寫成ugo=,
如果沒有權限,則不寫
如:
[root@localhost ~]chmod u=rwx,g=x,o=r /root/f2
給文件f2屬主加讀寫執行權限,給屬組加執行權限,給其他用戶執行權限
chmod u=rwx,g=wx,o=rx /root/2
授權表示法 :直接操作一類用戶的一個權限位,屬主,屬組,其他用戶權限相同時可連寫 (ug, ugo,uo)
u+,u- u+r u+w u+x u-r u -w o-x
g+,g-
o+g-
a+a- 這個時候可以省略a chmod +w f2等同于 chmod a+w ,前面命令等同于同時加上w權限
如果
[root@localhost ~]# ll f2
-rwxr-x–x 1 root root 5 Jul 28 08:59 f2
[root@localhost ~]# chmod ugo-x f2
[root@localhost ~]# ll f2
-rw-r—– 1 root root 5 Jul 28 08:59 f2
2.八進制表示法
x 1 w 2 x4
如:
chmod 740 f2 chmod 777 f2 chmod 111 f2
3.引用性修改,參考某個文件的權限,并將這個文件的權限賦值給文件,如
chmod –reference=/var/log/messages f2
選項
-r 遞歸修改目錄文件內的權限,一般應用到授權表示法,不建議不加思索是使用賦值和8進制法修改
從屬關系管理命令
chown,chgrp
選項 -R: 遞歸修改
chown -R xiong:root f2 將文件修改為xiong屬主,并且文件屬于root組
chown -R –reference=/var/log/messges f2
chgrp 組 文件
[root@localhost ~]# chgrp xiong shadow
[root@localhost ~]# ll
total 20
drwxr-xr-x. 2 xiong xiong 4096 Jul 29 17:40 addd
-rw——-. 1 root root 56 Jul 29 12:02 dead.letter
-rw-r–r–. 1 xiong root 27 Jul 29 12:13 f2
-rw-r–r–. 1 root root 21 Jul 29 12:33 mail.txt
———-. 1 root xiong 1054 Jul 28 10:03 shadow
對目錄有寫權限,目錄下文件沒有寫權限,則可以在目錄里創建或刪除文件,但是對
目錄下的文件沒有寫權限
root創建文件是時,權限是為644
而普通用戶創建為664
umask:文件的權限反向掩碼,遮罩碼
文件:
666-umask
目錄: 777-umask
注意:之所以文件用66區減,表示文件默認不能擁有執行權限,
如果減得的結果又執行,則其結果需要將其加1
umask:023
666-023=643=644 減得得結果又1,則將加一邊644
777-023=754
[root@localhost ~]# umask 027 設置遮罩碼
[root@localhost ~]# umask
0027
[root@localhost ~]# touch umask
[root@localhost ~]# ll
-rw-r—–. 1 root root 0 Jul 29 18:28 umask
[root@localhost ~]# mkdir umaska
[root@localhost ~]# ll
-rw-r—–. 1 root root 0 Jul 29 18:28 umask
drwxr-x—. 2 root root 4096 Jul 29 18:28 umaska
linux很多設置,只對當前有效,退出系統就失效了。
特殊權限
三種常用權限:r, w, x suid 4, sgid2 ,sticky1 user , group, other
安全上下文
前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限
(2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為 發起者所屬的組
(3) 進程訪問文件時的權限,取決于進程的發起者
(a) 進程的發起者,同文件的屬主:則應用文件屬主權限
(b) 進程的發起者,屬于文件屬組;則應用文件屬組權限
(c) 應用文件“其它”權限
suid
任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限啟動為進程之后,其進程的屬主為原程序文件的屬主
SUID只對二進制可執行程序有效
SUID設置在目錄上無意義
權限設定:
chmod u+s FILE… chmod u-s FILE…
任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限啟動為進程之后,其進程的屬主為原程序文件的屬組
權限設定:
chmod g+s FILE…
chmod g-s FILE.
默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組
通常用于創建一個協作目錄
權限設定:
chmod g+s DIR… chmod g-s DIR…
具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權
在目錄設置Sticky 位,只有文件的所有者或root可 以刪除該文件sticky 設置在文件上無意義
權限設定:
chmod o+t DIR…
chmod o-t DIR…
chattr +i 不能刪除,改名,更改
chattr -i 能刪除,改名,更改
chattr +a 只能增加
chattr +A 只能增加
lsattr 顯示特定屬性
三種權限設置:
1:普通權限設置
2:特殊權限設置額
3.:acl訪問控制列表, 即使文件權限為000,通過setfacl訪問控制列表設置后,也可訪問
setfacl -M acl.txt 文件
install復制文件同時,設置文件的屬性的
install –mode=777 /etc/fstab /root
cp復制文件是不能修改器權限的
mktemp
創建臨時文件
文件,目錄權限設置影響試驗結果
1.文件權限測試: 創建文件一般不能有x執行權限
2.沒有x權限時,可以通過sh 文件,進行shell腳本執行,能進行cp,mv,rm刪除。 明天要問問他,企業工作是不是用禁用其他用戶使用sh命令 綠色
3.沒有w權限時,不可以進行修改,進行shell腳本執行。能進行cp,mv,rm刪除等操作 可以進行復制,mv,刪除
4.沒有r權限時,不能進行shell執行,不進行cp,能進行mv,rm。
對目錄的意義 文件權限為rw-rw-rw-
1.沒有x,但是有r,w權限 1.不能cd進入目錄 2.但是可以ll查看目錄,并且目錄權限,屬組不可見。 3.不能查看目錄文件內容 4.不能刪除目錄內文件 5.不能移動和復制
6.也不能創建文件
2.有x,但是有r,w權限 1.進行cd進入目錄 2.可以通過ll查看目錄,并且目錄權限,屬組可見。 3. 能查看能用,能修改內容 4.能刪除目錄內文件 5. 能移動和復制
6.也不能創建文件
3.沒有w ,但是有r,x權限 1.進行cd進入目錄 2.可以通過ll查看目錄,并且目錄權限,屬組可見。 3. 能查看能用,能修改內容 4.不能刪除目錄內文件 5.不能移動和復制
6.不能創建文件
4.沒有r權限,有w,x權限 1.進行cd進入目錄 2.不可以通過ll查看目錄,并且目錄權限,屬組,名稱不可見。 3. 能查看能用,能修改內容 5. 能移動和復制
6.能創建文件 ,刪除文件
文件,目錄權限設置影響試驗結論:
對于文件來說,沒有r權限,不能進行cp復制,其他不受影響
沒有w權限,不能進行寫操作,其他不受影響
沒有x權限,不能進行./文件執行,其他不受影響
對于目錄來說:沒有x權限,除了ll能查看目錄下文件名,但并不現實屬性等下,其他功能都不行
: 沒有w權限:1.不能刪除目錄內文件 2 .不能移動和復制 3.不能創建文件,其他功能不受影響
:沒有r權限:不可以通過ll查看目錄,并且目錄權限,屬組,名稱不可見。其他功能不受影響
原創文章,作者:maoxiong,如若轉載,請注明出處:http://www.www58058.com/29321
文章總體來說總結的還是比較詳細,希望能在以后的寫作中能理論結合實際,這樣能更加加深自己對用戶,組,權限管理的理解。