文件的特殊權(quán)限有三種:1、suid;2、sgid;3、sticky,其中,suid和sgid用于累加提升權(quán)限,簡單來說就是如果原來的用戶可以訪問,反而切換到的用戶或者組不能訪問,這時候照樣是可以訪問的,下面介紹下這三種權(quán)限。
十年的涇川網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整涇川建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“涇川網(wǎng)站設(shè)計”,“涇川網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
SUID:
1、需要注意的是,只對二進制可執(zhí)行程序有效,不能為普通文件;
2、發(fā)起者對程序文件必須擁有執(zhí)行權(quán)限;
3、啟動為進程之后,其進程的宿主為原程序文件的宿主;
4、SUID設(shè)置在目錄上毫無意義。
SGID:
可以應(yīng)用在二進制文件和作用在文件夾下,當(dāng)作用在二進制文件下時,作用和SUID相似,只不過SUID是把發(fā)起者臨時變?yōu)槲募乃姓?,而SGID是把進程的發(fā)起者變成源程序文件的屬組,默認情況下,用戶創(chuàng)建文件時,其屬組為此用戶所屬的主組,當(dāng)SGID作用在目錄下時,則對此目錄有寫權(quán)限的用戶在此目錄中創(chuàng)建的文件所屬的組為此目錄的屬組,通常用于創(chuàng)建一個協(xié)作目錄。
Sticky:
默認情況下用戶可以刪除具有寫權(quán)限的目錄中的任何文件,無論該文件的權(quán)限或擁有權(quán),如果在目錄設(shè)置Sticky位,只有文件的所有者或root**可以刪除該文件,Sticky位是作用在文件夾的,設(shè)置在文件上毫無意義。
命令名稱:chmod
命令英文原意:change the permissions mode of a file
有兩種角色可以執(zhí)行該命令,一種是 root 用戶,另一種就是文件的所有者。
語法:
大括號里的內(nèi)容表示只能選一個,其中 u 表示該文件的所有者,g 表示所屬組,o 表示其他人,a 表示所有角色。
比如,給 abc.txt 文件的所屬組加一個寫的權(quán)限:
也可以同時做多個授權(quán),比如給文件所有者加上執(zhí)行權(quán)限,給其他人去掉寫權(quán)限:
還可以用數(shù)字表示權(quán)限。權(quán)限的數(shù)字表示:
如果一個文件的權(quán)限是 rw-r--r--,那么翻譯成數(shù)字就是 644,反過來,如果要更改文件的權(quán)限,可以這樣寫:
這樣文件的權(quán)限就改成 rw-r----- 了。
還有一個選項 -R 是遞歸修改權(quán)限,該選項的功能是更改某個目錄的權(quán)限的同時更改該目錄下所有的子目錄和文件的權(quán)限。
命令名稱: chown
英文原意:change owner
語法:chown 用戶名 文件
只有管理員賬戶可以更改文件的所屬用戶。
例如:
命令名稱:chgrp
英文原意:change group
語法:chgrp 組名 文件
例如:
命令名稱:umask
使用命令 umask -S 可以查看新建文件或目錄的默認權(quán)限。
現(xiàn)在顯示的是新建目錄的默認權(quán)限,該目錄的所有者的默認權(quán)限是 rwx,所屬組的默認權(quán)限是 rx,其他人的默認權(quán)限是 rx。為什么說這是新建目錄的默認權(quán)限而不是新建文件的默認權(quán)限,如果你查看新建文件的權(quán)限,會發(fā)現(xiàn)是 rw-r--r-- ,與新建目錄的權(quán)限 rwxr-xr-x 相比,每種角色的權(quán)限都少了 x。所以說,只要知道了新建目錄的默認權(quán)限,再去掉 x 權(quán)限,就是新建文件的默認權(quán)限。
如果直接執(zhí)行 umask 命令,會顯示一個數(shù)字。
這個數(shù)字叫做權(quán)限掩碼,用 777 減去其后三位 022 就得到了每種角色的權(quán)限,即 755。翻譯成字母就是 rwxr-xr-x 。
若想更改新建目錄或文件的默認權(quán)限,只需執(zhí)行 umask 權(quán)限掩碼 即可。
例如,我想把新建目錄的默認權(quán)限改成 rwxr-r-- ,翻譯成數(shù)字就是 744,再用 777 減去 744 就得到了權(quán)限掩碼 033。
雖然 Linux 系統(tǒng)的目錄或文件的默認權(quán)限可以修改,但是 Linux 這樣分配權(quán)限是有一定道理的,最好不要輕易修改。
在了解到Linux系統(tǒng)上的文件目錄權(quán)限,有時候你會發(fā)現(xiàn)為什么剛創(chuàng)建的文件是 -rw-r--r-- 這個權(quán)限,目錄是 drwxr-xr-x 權(quán)限,有些是 -rwsr-xr-x ,又有些是 drwsrws--T ?這些則與umask、特殊權(quán)限有關(guān)。
什么是umask?umask一般是用在你初始創(chuàng)建一個目錄或者文件的時候賦予他們的權(quán)限。它與chmod的效果剛好相反,umask設(shè)置的是權(quán)限“補碼”,而chmod設(shè)置的是文件權(quán)限碼。一般在/etc/profile、
或用戶家目錄下的.bash_profile或.profile中設(shè)置umask值。
默認的umask是0022,0022四個數(shù)字代表是賦值初始化準(zhǔn)備丟棄的權(quán)限。(相對應(yīng)文件來說,x權(quán)限就算沒說明出來丟棄一樣必須默認丟棄)
第一個0代表suid 丟棄的權(quán)限;
第二個0代表本文件/目錄擁有者什么權(quán)限都沒丟棄;
第三個2代表本文件/目錄的用戶組丟棄了w權(quán)限;
第四個2代表本文件/目錄的文件/目錄的用戶組丟棄了w權(quán)限。
一般我們會這樣表示:
umask +default permission(默認權(quán)限) =777(目錄)/666(文件)
但存在特殊情況如果把umask設(shè)為135呢?
要了解特殊權(quán)限需對安全上下文有一個概念:
前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執(zhí)行程序文件能不能啟動為進程,取決發(fā)起者對程序文件是否擁有執(zhí)行權(quán)限
(2) 啟動為進程之后,其進程的屬主為發(fā)起者,進程的屬組為發(fā)起者所屬的組
(3) 進程訪問文件時的權(quán)限,取決于進程的發(fā)起者
(a) 進程的發(fā)起者,同文件的屬主:則應(yīng)用文件屬主權(quán)限
(b) 進程的發(fā)起者,屬于文件屬組;則應(yīng)用文件屬組權(quán)限
(c) 應(yīng)用文件“其它”權(quán)限
1.SUID 權(quán)限僅對二進制程序(binary program)有效;
2.執(zhí)行者對于該程序需要具有x 的可執(zhí)行權(quán)限;
3.本權(quán)限僅在執(zhí)行該程序的過程中有效(run-time);
4.執(zhí)行者將具有該程序擁有者(owner) 的權(quán)限。
5.SUID設(shè)置在目錄上無意義
權(quán)限設(shè)定:
chmod u+s FILE...
chmod u-s FILE...
s 標(biāo)志在文件擁有者的x 項目為SUID,那s 在群組的x 時則稱為Set GID
[root@centos7 ~]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
與SUID 不同的是,SGID 可以針對文件或目錄來設(shè)定!如果是對文件來說, SGID 有如下的功能:
-1.SGID 對二進制程序有用;
-2.程序執(zhí)行者對于該程序來說,需具備x 的權(quán)限;
-3.執(zhí)行者在執(zhí)行的過程中將會獲得該程序群組的支持!
[root@centos7 ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
-rw-r-----. 1 root slocate 2349055 Jun 15 03:44 /var/lib/mlocate/mlocate.db
與SUID 非常的類似,使用xiaoming 這個賬號去執(zhí)行l(wèi)ocate 時,那xiaoming將會取得slocate 群組的支持, 因此就能夠去讀取 mlocate.db 。
SGID 也能夠用在目錄上,這也是非常常見的一種用途
目錄設(shè)定了SGID 的權(quán)限后,他將具有如下的功能:
-1. 用戶若對于此目錄具有r 與x 的權(quán)限時,該用戶能夠進入此目錄;
-2.用戶在此目錄下的有效群組(effective group)將會變成該目錄的群組;
-3.用途:若用戶在此目錄下具有w 的權(quán)限(可以新建文件),則使用者所建立的新文件,該新文件的群組與此目錄的群組相同。
這個 Sticky Bit, SBIT 目前只針對目錄有效,sticky 設(shè)置在文件上無意義。SBIT 對于目錄的作用是:
-1.當(dāng)用戶對于此目錄具有w, x 權(quán)限,亦即具有寫入的權(quán)限時;
-2.當(dāng)用戶在該目錄下建立文件或目錄時,僅有自己與root 才有權(quán)力刪除該文件
SUID/SGID/SBIT 權(quán)限設(shè)定
-rwSrwSrwT 1 root root 0 Jun 16 02:53 test
設(shè)定權(quán)限成為 -rws--x--x 的模樣:
[root@centos7 tmp]# chmod u=rwxs,go=x test; ls -l test
-rws--x--x 1 root root 0 Jun 16 02:53 test
承上,加上 SGID 與 SBIT 在上述的文件權(quán)限中!
[root@centos7 tmp]# chmod g+s,o+t test; ls -l test
-rws--s--t 1 root root 0 Jun 16 02:53 test
1】ACL 是Access Control List 的縮寫,主要的目的是在提供傳統(tǒng)的owner,group,others 的read,write,execute 權(quán)限之外的細部權(quán)限設(shè)定。ACL 可以針對單一使用者,單一文件或目錄來進行
ACL 主要可以針以下來控制權(quán)限呢:
1.使用者 (user):可以針對使用者來設(shè)定權(quán)限;
2.群組 (group):針對群組為對象來設(shè)定其權(quán)限;
3.默認屬性(mask):還可以針對在該目錄下在建立新文件/目錄時,規(guī)范新數(shù)據(jù)的默認權(quán)限;
及1.ACL:Access Control List,實現(xiàn)靈活的權(quán)限管理;2.CentOS7默認創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能;3.CentOS7之前版本,默認手工創(chuàng)建的ext4文件系統(tǒng)無ACL功能,需手動增加tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
4.ACL生效順序:所有者,自定義用戶,自定義組,其他人
為多用戶或者組的文件和目錄賦予訪問權(quán)限r(nóng)wx
2】ACL 的設(shè)定技巧: getfacl, setfacl
-x :刪除后續(xù)的 acl 參數(shù),不可與 -m 合用;
-b :移除『所有的』 ACL 設(shè)定參數(shù);
-k :移除『預(yù)設(shè)的』 ACL 參數(shù),
-R :遞歸設(shè)定 acl ,亦即包括次目錄都會被設(shè)定起來;
-d :設(shè)定『預(yù)設(shè) acl 參數(shù)』的意思!只對目錄有效,在該目錄新建的數(shù)據(jù)會引用此默認值
例:[root@centos7 ~]# touch acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r--r--. 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u:xiaoming:rx acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u::rwx acl_test1
[root@centos7 ~]# ll acl_test1
-rwxr-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
設(shè)定值中的 u 后面無使用者列表,代表設(shè)定該文件擁有者
2.getfacl 指令用法余setfacl一樣
例:[root@centos7 ~]# getfacl acl_test1
file: acl_test1 ==說明檔名而已!
owner: root ==說明此文件的擁有者,亦即 ls -l 看到的第三使用者字段
group: root ==此文件的所屬群組,亦即 ls -l 看到的第四群組字段
user::rwx ==使用者列表欄是空的,代表文件擁有者的權(quán)限
user:xiaoming:r-x ==針對xiaoming 的權(quán)限設(shè)定為 rx ,與擁有者并不同!
group::r-- ==針對文件群組的權(quán)限設(shè)定僅有 r
mask::r-x ==此文件預(yù)設(shè)的有效權(quán)限 (mask)
other::r--
3】特定的單一群組的權(quán)限設(shè)定:『g:群組名:權(quán)限』
4】主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數(shù)。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息
getfacl -R /tmp/dir1 acl.txt
setfacl -R -b /tmp/dir1
清除dir目錄的ACL權(quán)限
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1
權(quán)限是Linux中的重要概念,每個文件/目錄等都具有權(quán)限,通過ls -l命令我們可以 查看某個目錄下的文件或目錄的權(quán)限
示例:在隨意某個目錄下ls -l
第一列的內(nèi)容的信息解釋如下:
這個字符串有10位,可以分為4段來解讀。
第一段(第1位)表示是目錄還是文件,-表示是文件,d表示是目錄;
第二段(第2-4位,共3個字符串)表示文件所屬用戶對它的權(quán)限 - 屬主權(quán)限(User);
第三段(第5-7位,共3個字符串)表示文件所屬用戶組用戶對它的權(quán)限 - 屬組權(quán)限(Group);
第四段(第8-10位,共3個字符串)表示其他用戶對它的權(quán)限 - 其他權(quán)限(other);
注:
①我們用3位8進制來表示文件的權(quán)限,r(read)用4標(biāo)識,w(write)用2標(biāo)識,x(excute)用1標(biāo)識
②r–可讀,w–可寫,x–可執(zhí)行。
③每一段的三位順序不可變,如果沒有對應(yīng)的權(quán)限,則使用-表示
上圖中的-rwxrw-r–可以用八進制數(shù)字764表示。
案例:
-rwxrwxrwx
轉(zhuǎn)算成八進制,777,代表這是一個對所有人開發(fā)權(quán)限的文件。
15.6.2 修改文件/目錄的權(quán)限的命令:chmod
示例:修改/test下的aaa.txt的權(quán)限為屬主有全部權(quán)限,屬主所在的組有讀寫權(quán)限,
其他用戶只有讀的權(quán)限
chmod u=rwx,g=rw,o=r aaa.txt
上述示例還可以使用數(shù)字表示:
chmod 764 aaa.txt
15.7 free查看內(nèi)存信息
15.7.1 free查看內(nèi)存信息
free指令會顯示內(nèi)存的使用情況,包括實體內(nèi)存,虛擬的交換文件內(nèi)存,共享內(nèi)存區(qū)段,以及系統(tǒng)核心使用的緩沖區(qū)等
df? df -h 命令用于顯示目前在 Linux 系統(tǒng)上的文件系統(tǒng)磁盤使用情況統(tǒng)計
補充:
關(guān)機命令
reboot? 重新啟動操作系統(tǒng)
shutdown -h now 立刻關(guān)機,其中now相當(dāng)于時間為0的狀態(tài)
shutdown -h 10:23
shutdown -h +10? 系統(tǒng)再過十分鐘后自動關(guān)機
總結(jié)
Linux命令
目錄操作
? ? cd usr/? ? ? ? ? ? ? ? ? ? ? ? ? ? 切換到該目錄下usr目錄
? ? cd ..? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 切換到上一層目錄
? ? cd /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 切換到系統(tǒng)根目錄
? ? mkdir 目錄名稱? ? ? ? ? ? ? 創(chuàng)建目錄
? ? ls? ? ? 目錄名稱? ? ? ? ? ? ? ? 查詢該目錄下所有的目錄和文件
? ? ls [-a]? 目錄名稱? ? ? ? ? ? ? 查詢該目錄下所有的目錄和文件,包含隱藏文件
? ? ls [-l]? 目錄名稱? ? ? ? ? ? ? 查詢該目錄下所有的目錄和文件的詳細信息
? ? find / -name 目錄名稱? ? 查找/root下的目錄(文件)
? ? mv 目錄名稱 新目錄名稱? 修改目錄名稱
? ? mv 目錄名稱 目錄的新位置? ? ? 剪切
? ? cp -r 目錄名稱 目錄的目標(biāo)位置? 拷貝
? ? rm -rf? 目錄? ? ? ? ? ? ? ? ? 強制刪除目錄
文件操作
? ? touch 文件名稱? ? ? ? ? ? 創(chuàng)建空文件
? ? cat/more/less/tail 文件? 查看文件內(nèi)容
? ? tail -f 文件? ? ? ? ? ? ? ? ? 動態(tài)查看/實時查看文件(日志)
? ? grep 要搜索的字符串 要搜索的文件? ? ? ? ? ? ? ? 關(guān)鍵字搜索
? ? vi/vim? 文件? ? ? ? ? ? ? ? 修改文件內(nèi)容
? ? rm -rf 文件? ? ? ? ? ? ? ? 強制刪除文件
文件的打包
? ? tar -zcvf 文件名.tar? 要打包的文件
文件的解壓?
? ? tar -xvf 文件名.tar
擴充:將文件解壓到固定位置
? ? tar -xvf 文件名.tar -C 指定解壓的位置
查詢當(dāng)前所在位置
? ? pwd? ? ?
查看進程
? ? ps -ef | grep 進程名稱(tomcat/mysql)
殺死進程
? ? kill -9 進程pid
查看端口號
? ? netstat -an | grep 端口號(3306)
查看服務(wù)器ip
? ? ifconfig
查看網(wǎng)絡(luò)是否能正常使用
? ? ping 外網(wǎng)地址? ? ? ? ? ? 查看是否能訪問外網(wǎng)
? ? ping 內(nèi)網(wǎng)ip? ? ? ? ? ? ? ? 查看是否能訪問內(nèi)網(wǎng)
權(quán)限命令
? ? chmod 777 文件? ? ? ? 賦權(quán)
查看cpu
? ? top
查看磁盤信息
? ? df -h
查看內(nèi)存信息
? ? free? ?
關(guān)機命令
? ? shutdown -h now? 立刻關(guān)機,其中now相當(dāng)于時間為0的狀態(tài)
? ? shutdown -h 10:23
? ? shutdown -h +10? ? 系統(tǒng)再過十分鐘后自動關(guān)機
重新啟動
? ? reboot? ? 重新啟動操作系統(tǒng)
```·