通配符(wildcard pattern)才用特定的符號,表示特定的含義,此符號稱爲元 meta 字符linux
* 匹配零個或多個字符,但不匹配 '.' 開頭的文件,即隱藏文件 ? 匹配任何單個字符 ~ 當前用戶家目錄 ~grain 用戶grain家目錄 ~+和. 當前工做目錄 ~- 前一個工做目錄 [0-9] 匹配數字範圍 [a-z] 小字母 [A-Z] 大字母 [grain] 匹配括號中的任何的一個字符 [^grain] 匹配括號中的全部字符之外的字符
[:digit:] 任意數字,至關於0-9 [:lower:] 任意小寫字母,表示 a-z [:upper:] 任意大寫字母,表示 A-Z [:alpha:] 任意大小寫字母 [:alpnum:] 任意數字或字母 [:blank:] 水平空白字符 [:space:] 水平或垂直空白字符 [:print:] 可打印字符
[root@CentOS8 data]#ll -d /data/[^[:alpha:]][[:alpha:]]* -rw-r--r--. 1 root root 0 Feb 22 19:16 /data/1abcT.txt -rw-r--r--. 1 root root 0 Feb 22 19:16 /data/2leey.log -rw-r--r--. 1 root root 0 Feb 22 19:16 /data/3g.cre drwxr-xr-x. 2 root root 6 Feb 22 19:19 /data/4G drwxr-xr-x. 2 root root 6 Feb 22 19:23 /data/5gkpi
[root@CentOS8 etc]#cp -r /etc/p*[^0-9] /tmp/mytest1 [root@CentOS8 etc]#ls /tmp/mytest1/ pam.d passwd- plymouth popt.d prelink.conf.d profile protocols passwd pki pm postfix printcap profile.d
[root@CentOS8 data]#cat /etc/issue \S Kernel \r on an \m [root@CentOS8 data]#tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out [root@CentOS8 data]#cat /tmp/issue.out \S KERNEL \R ON AN \M
格式:git
useradd [options] NAME
常見選項:shell
-u UID -o 配合-u,不檢查UID的惟一性 -g GID 指明用戶基本組,可爲組名,也能夠GID -c 用戶註釋信息 -d 指定家目錄路徑 -s 指明默認的shell -G 指明附加組,組要事先存在 -r 建立系統用戶,centos6以前 ID<500, centos7之後 ID<1000 -m 建立家目錄,用於系統用戶 -M 不建立家目錄,用戶非系統用戶
範例:apache
[root@CentOS8 etc]#useradd -r -ou 666 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache useradd: group 'apache' does not exist [root@CentOS8 etc]#groupadd apache [root@CentOS8 etc]#useradd -r -ou 666 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache[root@CentOS8 etc]#
格式centos
usermod [option] Name
常見選項:bash
-u UID: 新UID -g GID: 新主組 -G group1[,group2...]:新附加組,可多個,原來的附加組會被覆蓋,要保留同時使用-a選項 -s shell:新的默認shell -c 新的註釋信息 -d 新的家目錄,若要建立新家目錄並移動原目錄數據,同時使用-m選項 -l 新的名字 login_name -L 密碼欄加鎖,! -U 解鎖,去掉! -e 指明用戶帳戶過時日期 -f 設定寬限期
常見選項:ide
-f 強制 -r 刪除用戶家目錄和郵箱
切換用戶的方式:post
常見選項:ui
-d 刪除指定用戶密碼 -l 鎖定指定用戶 -u 解鎖指定用戶 -e 強制用戶下次登錄修改密碼 -f 強制操做 -n 指定最短使用期限 -x 最大使用期限 -w 提早多少天開始警告 -i 指定寬限期 --stdin 從標準輸入接受用戶密碼
格式加密
grouadd [option]...groupname
常見選項:
-g 指明GID -r 建立系統組 Exp : groupadd -g 666 -r apache
gpasswd命令,能夠更改組密碼,也能夠修改附加組成員關係
常見選項:
-a 將user添加至指定組中 -d 從指定組中移除用戶user -A user1,user2,... 設置有管理員權限的用戶列表
groupmems 能夠管理附加組的成員關係
常見選項:
-g 更改成指定組,只有root能夠操做 -a 指定用戶加入組 -d 從組中刪除用戶 -p 從組中清除全部成員 -l 顯示組成員列表
groups 可查看用戶組關係
[root@CentOS8 data]#groupadd -g 2019 distro
[root@CentOS8 data]#useradd -u 1005 -g distro mandriva useradd: UID 1005 is not unique # 提示 UID 1005不是惟一的 [root@CentOS8 data]#useradd -ou 1005 -g distro mandriva [root@CentOS8 data]#id mandriva uid=1005(mandriva) gid=2019(distro) groups=2019(distro)
[root@CentOS8 data]#useradd -u 1100 -d /home/linux mageia [root@CentOS8 data]#id mageia uid=1100(mageia) gid=1100(mageia) groups=1100(mageia) [root@CentOS8 data]#tree /home /home ├── lee ├── linux
[root@CentOS8 data]#echo "mageedu" | passwd --stdin mageia Changing password for user mageia. passwd: all authentication tokens updated successfully. [root@CentOS8 data]#passwd -x 7 mageia Adjusting aging data for user mageia. passwd: Success [root@CentOS8 data]#getent shadow | grep mageia mageia:$6$FW0xrns/UKahsCit$.uQXxR01mm3IxvtsOCUjjatVc6HGHF65Xs6Js5NItZdblel0Btx.LMbXLC9T3l9xqbJwe6mFk7jfNmNQGEI9j0:18680:0:7:7:::
[root@CentOS8 data]#userdel mandriva [root@CentOS8 data]#ls /home/ linux mandriva # 用戶mandriva家目錄仍存在
[root@CentOS8 data]#groupadd peguin [root@CentOS8 data]#useradd -u 2002 -g 2019 -G peguin slackware [root@CentOS8 data]#id slackware uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin) [root@CentOS8 data]#
[root@CentOS8 data]#usermod -s /bin/tcsh slackware [root@CentOS8 data]#getent passwd | grep slackware slackware:x:2002:2019::/home/slackware:/bin/tcsh [root@CentOS8 data]#
[root@CentOS8 data]#groupadd admins [root@CentOS8 data]#usermod -aG admins -L slackware [root@CentOS8 data]#id slackware uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins) [root@CentOS8 data]#cat /etc/shadow | grep slackware slackware:!!:18680:0:99999:7:::
chown命令能夠修改文件的屬主,也能夠修改文件屬組
格式
chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE...
用法說明:
OWNER #只修改全部者 OWNER:GROUP #同時修改全部者和屬組 :GROUP #只修改屬組,冒號能夠用 . 替換 -R #遞歸 --reference=RFILE #參考指定的屬性來修改
格式
chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE...
說明:
MODE: who opt permission who: u,g,o,a opt: +,-,= per: r,w,x 修改指定一類用戶的全部權限 u= g= o= ug= a= u=,g= 修改指定一類用戶某個或某個權限 u+ u- g+ g- o+ o- a+ a- -R: 遞歸修改權限
設置文件特殊屬性,能夠防止 root 用戶誤操做或修改文件
不能刪除,更名,更改
chattr +i
只能追加內容,不能刪除,更名
chattr +a
顯示特殊屬性
lsattr
Centos7 默認建立的xfs和ext4文件系統具備ACL功能
Centos7 以前版本,默認手工建立的ext4文件系統無ACL功能,需手動增長
tune2fs -o acl /dev/sdb1 mount -o acl /dev/sdb1 /mnt/test
ACL生效順序:
全部者,自定義用戶,所屬組|自定義組,其餘人
ACL相關命令:
setfacl 能夠設置ACL權限 getfacl 能夠查看設置的ACL權限
具備寫權限的目錄一般用戶能夠刪除改目錄中的任何文件,不管該文件的權限或擁有權
在目錄設置Sticky位,只有文件的全部者或root能夠刪除該文件
sticky設置在文件上無心義
Sticky權限設定
chmod o+t DIR... chmod o-t Dir... chmod 1xxx DIr...
建立用戶user一、user二、user3。在/data下建立目錄test
[root@CentOS8 data]#NAME=user;for i in {1..3};do useradd $NAME$i;done [root@CentOS8 data]#mkdir -pv /data/test mkdir: created directory '/data/test' [root@CentOS8 data]#chown user1.user1 /data/test
[root@CentOS8 data]#setfacl -m u:user2:rw /data/test [root@CentOS8 data]#getfacl /data/test/ getfacl: Removing leading '/' from absolute path names # file: data/test/ # owner: user1 # group: user1 user::rwx user:user2:rw- group::r-x mask::rwx other::r-x
[root@CentOS8 data]#touch /data/test/a{1..4}.sh [root@CentOS8 data]#chattr +i /data/test/a1.sh /data/test/a2.sh [root@CentOS8 data]#chmod o+x /data/test/a3.sh /data/test/a4.sh [root@CentOS8 data]#chmod o+t /data/test/a3.sh /data/test/a4.sh
[root@CentOS8 data]#usermod -aG user1 user3 [root@CentOS8 data]#setfacl -m u:user1:- /data/test [root@CentOS8 data]#getfacl /data/test/ getfacl: Removing leading '/' from absolute path names # file: data/test/ # owner: user1 # group: user1 user::rwx user:user1:--- user:user2:rw- group::r-x mask::rwx other::r-x
[root@CentOS8 data]#setfacl -R -b /data/test