把字符串裏面的命令先執行再把該字符串輸出,與PHP的「」裏面的變量被執行同樣。程序員
$(COMMAND)服務器
`COMMAND`網站
[root@jiakang ~]# echo "The directory is $(pwd)" The directory is /root [root@jiakang ~]# touch ./file-$(date +%F-%H-%M-%S).txt [root@jiakang ~]# ls a install.log anaconda-ks.cfg install.log.syslog file-2017-03-30-19-52-22.txt
[root@jiakang ~]# echo "The directory is `pwd`" The directory is /root
文件:ui
r:可讀,能夠用相似cat等命令查看文件內容code
w:可寫,能夠編輯或刪除此文件進程
x:可執行,能夠命令提示符下看成命令提交給內核運行開發
目錄:字符串
r:能夠對此目錄執行ls列出內部全部文件it
w:能夠在此目錄建立文件test
x:可使用cd切換進此目錄,也可使用ls -l查看詳細信息
用數字表示:
0 000 ---:無權限
1 001 --x:執行
2 010 -w-:寫
3 011 -wx:寫和執行
4 100 r--:讀
5 101 r-x:讀和執行
6 110 rw-:讀和寫
7 111 rwx:讀寫執行
修改文件的權限
chmod MODE file
-R
--reference=/path/somefile file 參考修改【修改和前面的somefile的權限同樣】
[root@jiakang tmp]# chmod 057 yum.log
u,g,o,a
chmod 用戶類別=MODE file,...
[root@jiakang tmp]# chmod u=rwx /tmp/yum.log [root@jiakang tmp]# chmod g=r,o=r /tmp/yum.log [root@jiakang tmp]# chmod go=r /tmp/yum.log [root@jiakang tmp]# ls -l /tmp/yum.log -rwxr--r--. 1 tom root 0 3月 25 07:01 /tmp/yum.log
u,g,o,a
chmod 用戶類別+|-MODE file
[root@jiakang tmp]# chmod go+w /tmp/yum.log [root@jiakang tmp]# ls -l /tmp/yum.log -rwxrw-rw-. 1 tom root 0 3月 25 07:01 /tmp/yum.log [root@jiakang tmp]# chmod +x /tmp/yum.log [root@jiakang tmp]# ls -l /tmp/yum.log -rwxrwxrwx. 1 tom root 0 3月 25 07:01 /tmp/yum.log
SUID:運行某程序時,相應的進程的屬主是文件自身的屬主,而不是啓動者;
chmod u+s FILE
chmod u-s FILE
若是該FILE自己原來有執行權限則SUID顯示爲s,原來沒有執行權限顯示爲S
注意:SUID用於二進制可執行文件,對目錄和非二進制可執行文件沒什麼意義
【如今rm的權限】 [root@jiakang tmp]# ls -l /bin/rm -rwxr-xr-x. 1 root root 58960 10月 15 2014 /bin/rm [root@jiakang tmp]# ls -l abc -rw-r--r--. 1 root root 0 4月 2 19:55 abc 【普通用戶刪除abc】 [jiakang@jiakang ~]$ rm /tmp/abc rm:是否刪除有寫保護的普通空文件 "/tmp/abc"?y rm: 沒法刪除"/tmp/abc": 不容許的操做 【給rm添加s權限,注意看我當前操做的用戶】 [root@jiakang tmp]# ls -l /bin/rm -rwsr-xr-x. 1 root root 58960 10月 15 2014 /bin/rm 【再次刪除,沒有abc文件了】 [jiakang@jiakang ~]$ rm /tmp/abc [jiakang@jiakang ~]$ ls /tmp def keyring-V2LdqH rc.d inittab keyring-ydeVD8 rc.local
SGID:運行某程序時,相應的進程的屬組是文件自身的屬組,而不是啓動者所屬的基本組;
用法和上面的同樣【g+s , g-s】,如今介紹一種經常使用的用法【用於目錄】:
公司如今多個程序員開發一個網站,每一個人都有本身登錄服務器的帳號,要求是項目目錄下的文件每一個人都共享,就是在該目錄下能夠互相編輯每一個文件,無論是誰開發的
解決方法:
每一個用戶的基本組都相同,這樣建立的文件基本組也都同樣【添加一個附加組是不行的,那樣每一個用戶再建立文件時屬組是不同的】
注意:用戶有基本組和附加組usermod進行修改;文件和目錄只有一個屬組,默認是用戶的基本組,chown進行修改,在這容易混淆
添加一個附加組【developteam】,把該目錄【project】的GID加s權限,在該目錄下建立的文件的基本組就會是該目錄的基本組【developteam】而非用戶自己的基本組,這樣每一個文件的組都相同了,文件能夠相互訪問
[root@jiakang tmp]# groupadd developteam [root@jiakang tmp]# mkdir /tmp/project [root@jiakang tmp]# chown -R :developteam /tmp/project【修改屬組】 [root@jiakang tmp]# chmod g+s project【加SGID】 [root@jiakang tmp]# ls -ld project drwxr-sr-x. 2 root developteam 4096 4月 11 13:04 project [root@jiakang tmp]# usermod -a -G developteam jiakang【追加附加組developteam】 [root@jiakang tmp]# id jiakang uid=500(jiakang) gid=500(jiakang) 組=500(jiakang),5001(developteam) [root@jiakang tmp]# chmod g+w project【組內用戶+w權限】
[jiakang@jiakang tmp]$ cd project [jiakang@jiakang project]$ touch ss.txt touch: 沒法建立"ss.txt": 權限不夠 [jiakang@jiakang project]$ exit【須要退出從新登錄才能生效】 logout [root@jiakang ~]# su - jiakang [jiakang@jiakang project]$ touch s.txt [jiakang@jiakang project]$ ls -l s.txt -rw-rw-r--. 1 jiakang developteam 0 4月 11 13:26 s.txt【屬組自動就是developteam】
sticky:在上面建立的那個公共目錄裏,每一個用戶都能建立、刪除本身的文件,可是不能刪除他人的文件
chmod o+t DIR
chmod o-t DIR
這樣權限修改的時候用數字表示就又多了一位:
000
001【o+t】
011【g+s,o+t】
...
111【u+s,g+s,o+t】
chmod 5755 /tmp/test【5表明:u+s,o+t】umask 0022 也是同理