欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
深入理解linux權限

最近玩linux,遇到一些問(wèn)題,百度到了幾篇好文章,現在分享下.

linux 從ls命令開(kāi)始

Linux學(xué)習的第一步就是掌握常用命令,Linux命令眾多,以筆者使用的Red Hat Enterprise Linux 5.4來(lái)說(shuō),有大概兩千多個(gè)命令,假設每個(gè)命令有二十個(gè)選項,如此多的命令和選項全部敲一遍,簡(jiǎn)直是在浪費生命浪費鍵盤(pán)浪費手指頭,更加沒(méi)有必要買(mǎi)一本大部頭的什么命令大全之類(lèi)的東西狂看,真正在管理應用中使用到的命令大概也就只有一二百個(gè),所以要把握學(xué)習的原則,掌握最常使用的命令和最常使用的選項即可。在入門(mén)悟道之后,碰到未知的命令或選項,只要自己掌握獲得幫助的方法,即可一通百通,如同已有九陽(yáng)神功護體再學(xué)習乾坤大挪移或葵花寶典就小case了。

學(xué)習命令的竅門(mén)之一是掌握方法,把每個(gè)命令的英文全稱(chēng)和每個(gè)選項的英文單詞找到,籍此記憶強于死記硬背,方可事半功倍;學(xué)習命令的竅門(mén)之二是不斷的練習和實(shí)驗,記住,練習是掌握命令的最好方法,毛主席教導我們說(shuō)“實(shí)踐是驗證真理的唯一標準”;學(xué)習命令的竅門(mén)之三是學(xué)習和練習每個(gè)命令或選項時(shí)不要形而上學(xué),要多想一想什么時(shí)候會(huì )用到如何去用,才能讓你的知識系統化和有目的性。

Linux中使用頻率最高的命令唯ls莫屬,而ls使用最多的選項自然是-l 。本講即以ls -l命令為例做一示例講解,全做拋磚引玉。

ls意為“l(fā)ist directory contents”,列出目錄內容之意,可理解為ls即為list的縮寫(xiě);-l意為“use a long listing format”,長(cháng)格式顯示,通俗點(diǎn)說(shuō)就是顯示文件的詳細信息,可理解為l即為long的縮寫(xiě)。通過(guò)man、info等幫助命令可獲得此信息,英文不好的兄弟還可籍此學(xué)習(每天背上二三十個(gè)英文單詞,不出三個(gè)月所有Linux英文幫助文檔相信應該都差不多可以看懂),通過(guò)這種方法記憶會(huì )容易得多。

在Linux中使用ls -l命令查看文件的詳細信息:

-rw-r--r-- 1 root root 27974 Oct 27  2009 install.log

“-rw-r--r--”第一個(gè)字符表示文件類(lèi)型,常見(jiàn)的文件類(lèi)型包括:-表示二進(jìn)制文件,d表示目錄,l表示軟鏈接文件,使用ls查看會(huì )發(fā)現有顏色標記不同的文件類(lèi)型,如目錄是藍色、二進(jìn)制文件是白色、軟鏈接是青色……默認ls查看目錄內容是沒(méi)有顏色標記的,之所以會(huì )顯示這樣的信息,因為在Linux中默認有一個(gè)別名定義:

# which lsalias ls=`ls --color=tty`       /bin/ls

甚至顏色還可以更改,比如你喜歡黃色想把目錄改成黃色,只需編輯配置文件/etc/DIR_COLORS即可,把這個(gè)文件復制改名并保存用戶(hù)宿主目錄中(cp /etc/DIR_COLORS ~/.dir_colors),就可以產(chǎn)生一個(gè)用戶(hù)獨立的配置,具體顏色如何更改只要看此文件的注釋說(shuō)明即可。筆者并不推薦用顏色的方式識別文件類(lèi)型,一來(lái)大多UNIX默認無(wú)此設置;二來(lái)很多遠程登錄管理工具默認不支持顏色標記。

尤其要說(shuō)明的是軟鏈接文件,在Linux中,有兩種鏈接文件,一種是軟鏈接,類(lèi)似Windows的桌面快捷方式;一種是硬鏈接,相當于復制+同步更新。

# ln -s install.log install.log.soft   # 生成install.log文件的軟鏈接文件install.log.soft# ln install.log install.log.hard   # 生成install.log文件的硬鏈接文件install.log.hard-rw-rw-r-- 2 root admgroup 27941 May 20 07:42 install.log-rw-rw-r-- 2 root admgroup 27941 May 20 07:42 install.log.hardlrwxrwxrwx 1 root root        11 May 29 01:14 install.log.soft -> install.log

可以觀(guān)察到軟鏈接文件用l標記,權限皆為“l(fā)rwxrwxrwx”,會(huì )有->指向源文件,它很小,同Windows快捷方式一樣,只是一個(gè)符號鏈接。而硬連接所有屬性與原文件相同,且與原文件可以同步更新,最牛X的是原文件即便被干掉了,硬連接依然有效,而軟鏈接當然就死翹翹了。知其然還要知其所以然,為什么硬鏈接可以這么牛XX ,在此要先講一個(gè)Linux法則,這個(gè)法則說(shuō)的通俗一點(diǎn)就是Linux內核這家伙不認識字母,所以它在管理文件時(shí)文件要用一個(gè)數字標記,就是i節點(diǎn);同樣,用戶(hù)要有一個(gè)UID 、用戶(hù)組要有一個(gè)GID 、進(jìn)程要有一個(gè)PID …… ls -i可以查看到文件的i節點(diǎn):

# ls -i install.log install.log.soft install.log.hard

679394 install.log 679394 install.log.hard 679477 install.log.soft

在Linux中每個(gè)文件必須有一個(gè)i節點(diǎn),反之,一個(gè)i節點(diǎn)是不是必須對應一個(gè)文件,一般來(lái)說(shuō)是的,但是硬鏈接就是個(gè)特例,大家會(huì )看到原文件和硬鏈接對映一個(gè)i節點(diǎn),所以它們會(huì )同步更新,因為內核不管文件名是什么它只識別i節點(diǎn),這就是硬鏈接和原文件可以同步更新的原因。

其他九個(gè)字符,每三個(gè)字符對應一種用戶(hù)類(lèi)型,簡(jiǎn)單來(lái)說(shuō),Linux中基本的權限管理,是每個(gè)文件把用戶(hù)分成了三類(lèi):

第一類(lèi)是所有者(u),也就是文件的創(chuàng )建者或擁有者

一般來(lái)說(shuō)文件的創(chuàng )建者就是所有者,但有時(shí)會(huì )變更文件所有者,比如筆者原本在寫(xiě)一個(gè)防火墻腳本,因出差,工作要轉交給另一個(gè)同事,索性把文件所有者改為他,他即可擁有對文件的全部操作權限,此時(shí)可以理解為他是文件的擁有者也就是所有者。文件的所有者只能有一個(gè)。

第二類(lèi)是所屬組(g),可以定義一組具有相同權限的用戶(hù)對文件的操作權限

文件所屬組默認就是創(chuàng )建文件的所有者所在的缺省組,一個(gè)用戶(hù)可以屬于多個(gè)組,但是只有一個(gè)缺省組,就像不管你是多么大個(gè)的花心大蘿卜,你只能有一個(gè)媳婦,這就是缺省的,缺省的只能有一個(gè),而且在Linux中規定,沒(méi)媳婦的蘿卜是不允許存在的!每個(gè)用戶(hù)必須有個(gè)缺省組,添加用戶(hù)時(shí)如果沒(méi)有指定所屬組系統會(huì )自動(dòng)為你分配。理論上來(lái)說(shuō),一個(gè)管理做的很好的系統,應該每個(gè)用戶(hù)都隸屬于至少一個(gè)組,不可能添加一個(gè)用戶(hù)到系統是什么都不讓他做的或者他不屬于任何公司部門(mén)的,這是管理員要規劃好的事情。

第三類(lèi)是其他人(o),如果不是所有者也不是所屬組中的成員,那么就屬于其他人

Linux中的用戶(hù)分類(lèi)比較簡(jiǎn)單,權限也簡(jiǎn)單的分為r可讀、w可寫(xiě)、x可執行三種,ls-l的第三個(gè)部分“root root”分別對應著(zhù)文件的所有者和所屬組,所以此文件的權限為:所有者root對文件有讀寫(xiě)權限,而所屬組root用戶(hù)組和其他人只有讀權限。

深入理解rwx

做一個(gè)小實(shí)驗,用root用戶(hù)登錄系統,然后執行:

# mkdir /test   # 創(chuàng  )建目錄/test# chmod 777 /test   # 目錄權限修改為777即rwxrwxrwx# touch /test/newfile   # 在/test目錄下新建文件newfile# ls -ld /test   # 查看/test目錄詳細信息drwxrwxrwx 2 root root 4096 May 20 07:46 /test# ls -l /test/newfile   # 查看/test/newfile文件詳細信息-rw-r--r-- 1 root root 0 May 20 07:46 /test/newfile# su - zhangsan   # 切換用戶(hù)身份為用戶(hù)zhangsan$ rm /test/newfile   # 刪除/test/newfile文件

問(wèn)題:普通用戶(hù)zhangsan是否可以刪除管理員root創(chuàng )建的newfile文件?

答案是:可以。很多朋友覺(jué)得不可以,因為newfile文件是root創(chuàng )建且其他用戶(hù)沒(méi)有寫(xiě)權限,這其實(shí)是搞錯了一個(gè)概念:認為刪除一個(gè)文件的前提條件是對文件有寫(xiě)權限。要注意的是,rwx對于文件和目錄的意義是截然不同的,這往往是新手容易忽視的地方,我們通過(guò)表格比較一下。

代表字符
權限
對文件的含義
對目錄的含義

1.r
可讀
可以查看文件內容
可以列出目錄中的內容

2.w
可寫(xiě)
可以修改文件內容
可以在目錄中創(chuàng )建、刪除文件

3.x
可執行
可以執行文件
可以進(jìn)入目錄

1.對于文件來(lái)說(shuō)

可讀是指可以使用cat、more等命令查看文件內容;

可寫(xiě)是指可以使用vi等編輯器修改文件內容;

可執行指的是這個(gè)文件可能是命令或者Shell腳本等,可以執行。

2.對于目錄來(lái)說(shuō)

可讀是指能使用ls命令顯示目錄下的內容;

可寫(xiě)指的是能夠在此目錄下使用mkdir、touch、rm等命令創(chuàng )建或刪除文件;

可執行指的是能夠使用cd進(jìn)入目錄。

所以,在Linux中,一個(gè)文件能否被刪除,是取決于命令執行者對文件所在目錄是否有寫(xiě)權限,而與文件本身權限無(wú)關(guān),文件本身權限只是限定文件內容查看或修改權限及是否可執行。

用戶(hù)授權

授權用戶(hù)zhangsan和lisi對/backup目錄具有讀寫(xiě)權限,是Linux中最基本的用戶(hù)與權限管理,一般的做法是:把zhangsan和lisi用戶(hù)加入到一個(gè)用戶(hù)組中,然后改變/backup目錄的所屬組為此用戶(hù)組,再將所屬組權限設置為rw即可。

# groupadd admgroup   # 添加用戶(hù)組admgroup# gpasswd -a zhangsan admgroup   # 將用戶(hù)zhangsan加入用戶(hù)組admgroup# gpasswd -a lisi admgroup   # 將用戶(hù)lisi加入用戶(hù)組admgroup# grep admgroup /etc/group   # 查看admgroup用戶(hù)組的信息admgroup:x:502:zhangsan,lisi# chgrp admgroup /backup   # 改變/backup目錄的所屬組為admgroup# chmod g+w /backup   # 給所屬組添加w可寫(xiě)權限# ls -ld /backup   # 查看/backup目錄詳細信息

drwxrwxr-x 2 root admgroup 4096 May 20 08:19 /backup

以上是授權用戶(hù)對目錄的訪(fǎng)問(wèn)權限,若授權用戶(hù)對文件的控制權限,則要更復雜一點(diǎn),除了對文件本身授權外,還要授權用戶(hù)對文件所在目錄具有可讀可執行權限。如筆者使用的Red Hat Linux系統在安裝后會(huì )在/root下生成安裝日志文件,設置用戶(hù)zhangsan和lisi對/root/install.log文件有讀寫(xiě)權限,還要考慮用戶(hù)對文件所在目錄/root要具有可讀和可執行權限,否則依然無(wú)法獲得文件的操作權限。

ls -l的第二部分“1”表示硬連接數,默認文件本身起始硬鏈接數就是1 ,如果新建了一個(gè)硬鏈接文件,會(huì )更新為2 ,此項意義不大,不做過(guò)多討論。

ls -l的第五部分“27974”表示文件大小,在筆者使用的系統中是以字節為單位,但是很多Linux或UNIX系統單位以數據塊為單位,一個(gè)數據塊為512字節。

ls -l的第六部分“Oct 27 2009”表示文件的創(chuàng )建時(shí)間或最后更改時(shí)間(如果文件在創(chuàng )建后被更改過(guò)的話(huà))。

最后一部分“install.log”自然就是文件名了,在Linux中與Windows不同,第一,文件不必一定有后綴名;第二,文件名可以使用除“/”以外的任意字符;第三,以“.”開(kāi)頭的文件在Linux中表示隱藏文件。

深入理解 setUID

在Linux系統中每個(gè)普通用戶(hù)都可以更改自己的密碼,這是合理的設置。問(wèn)題是:用戶(hù)的信息保存在文件/etc/passwd中,用戶(hù)的密碼保存在文件/etc/shadow中,也就是說(shuō)用戶(hù)更改自己密碼時(shí)是修改了/etc/shadow文件中的加密密碼,但是,LOOK——

-rw-r--r-- 1 root root 1787 Oct 27 2009 /etc/passwd-r-------- 1 root root 1187 Oct 27 2009 /etc/shadow

/etc/passwd文件每個(gè)用戶(hù)都有讀權限但是只有root有寫(xiě)權限,/etc/shadow文件只有超級用戶(hù)root有讀寫(xiě)權限,也就是說(shuō)普通用戶(hù)對這兩個(gè)文件都沒(méi)有寫(xiě)權限無(wú)法寫(xiě)入新密碼,為什么普通用戶(hù)可以更改密碼呢?
PS:在Linux中設置或更改用戶(hù)密碼,是先寫(xiě)入到/etc/passwd文件然后通過(guò)pwconv命令轉換到/etc/shadow文件,執行pwunconv命令可觀(guān)察到轉換前效果,會(huì )觀(guān)察到/etc/shadow文件神奇的消失掉了,而/etc/passwd文件中原來(lái)打xx的地方變成了真正的加密密碼。

其實(shí),用戶(hù)能更改密碼真正的秘密不在于文件的權限,而在于更改密碼的命令passwd 。
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
passwd命令有一個(gè)特殊的權限標記s ,存在于文件所有者的權限位上。這是一類(lèi)特殊的權限SetUID ,可以這樣來(lái)理解它:當一個(gè)具有執行權限的文件設置SetUID權限后,用戶(hù)執行這個(gè)文件時(shí)將以文件所有者的身份執行。passwd命令具有SetUID權限,所有者為root(Linux中的命令默認所有者都是root),也就是說(shuō)當普通用戶(hù)使用passwd更改自己密碼的時(shí)候,那一瞬間突然靈魂附體了,實(shí)際在以passwd命令所有者root的身份在執行,root當然可以將密碼寫(xiě)入/etc/shadow文件(不要忘記root這個(gè)家伙是superuser什么事都可以干),命令執行完成后該身份也隨之消失。

可以試驗用root身份修改passwd命令權限去掉SetUID :
chmod u-s /usr/bin/passwd
再?lài)L試以普通用戶(hù)身份登錄后修改密碼,就會(huì )發(fā)現提示:
passwd
Changing password for user samlee.
Changing password for samlee
(current) UNIX password:
passwd: Authentication token manipulation error
普通用戶(hù)無(wú)法修改密碼,所以只要能夠想明白為什么普通用戶(hù)可以更改密碼就可以大概了解SetUID權限的作用。

接下來(lái)我們用兩個(gè)SetUID的按理來(lái)進(jìn)一步詮釋下它的概念——

SetUID授權示例

為便于深入理解SetUID ,筆者以touch命令為例做一演示。
普通用戶(hù)samlee用touch創(chuàng )建文件newfile01 :

touch newfile01ls -l newfile01-rw-rw-r-- 1 samlee samlee 0 05-21 01:20 newfile01

文件的創(chuàng )建者默認就是所有者,所以文件newfile01的所有者為samlee 。
管理員root給touch命令添加SetUID權限:

chmod u+s /bin/touch   # 或 chmod 4755 /bin/touchls -l /bin/touch-rwsr-xr-x 1 root root 42284 Jul 13 2009 /bin/touch

再用普通用戶(hù)samlee創(chuàng )建文件newfile02,看到如下結果:

touch newfile02ls -l newfile02-rw-rw-r-- 1 root samlee 0 05-21 01:48 newfile02

通過(guò)這個(gè)例子,我們可以再詮釋下SetUID的定義,當一個(gè)可執行文件(命令touch)設置SetUID權限后,當普通用戶(hù)samlee執行touch創(chuàng )建新文件時(shí),實(shí)際上是以touch命令所有者root的身份在執行此操作,既然是以root身份執行,當然新建文件的所有者為root ,這就是SetUID的作用。

再看一下與SetUID類(lèi)似的SetGID權限,看一個(gè)例子,給touch命令再授予SetGID:

chmod g+s /bin/touch   # 或 chmod 6755 /bin/touchls -l /bin/touch-rwsr-sr-x 1 root root 42284 Jul 13 2009 /bin/touch

此時(shí),再使用touch創(chuàng )建新文件newfile03,會(huì )看到如下現象:

touch newfile03ls -l newfile03-rw-rw-r-- 1 root root 0 05-21 01:48 newfile02

新建文件的所屬組為touch命令的所屬組,而不是執行touch命令的普通用戶(hù)samlee的所屬組,這就是SetGID的作用,與SetUID類(lèi)似,用戶(hù)在執行具有SetGID的命令時(shí)會(huì )調用命令所屬組的身份。

危險的SetUID

對于SetUID的使用,可以做一個(gè)的比喻:一個(gè)絕密機關(guān),要讓一些人進(jìn)來(lái)做一些事情,但是不能讓他們看見(jiàn)機關(guān)內部的情況,于是授權一些特殊的“車(chē)輛”(沒(méi)有窗戶(hù),車(chē)門(mén)緊閉,看不到外面,只有一個(gè)小洞允許乘坐的人伸出手臂做事),帶著(zhù)所乘坐的人開(kāi)到要去的地方,允許它辦完事情馬上帶他出來(lái)。這樣是不是很安全?不一定。如果“車(chē)輛”沒(méi)有經(jīng)過(guò)精挑細選,可能有很多“門(mén)窗”,那可就危險了,這種類(lèi)似的場(chǎng)景相信大家在一些警匪電影中已經(jīng)見(jiàn)過(guò)多次了。

普通用戶(hù)使用vi編輯/etc/shadow文件會(huì )提示“Permission Denied”,這是合理的設置,但是如果賦予vi以SetUID權限:

chmod u+s /bin/vils -l /bin/vi-rwsr-xr-x 1 root root 594740 Jun 12 2009 /bin/vi

此時(shí),普通用戶(hù)使用vi即可以編輯/etc/shadow文件,因為具備root身份,可以進(jìn)行任意讀寫(xiě)操作(比如可以把任何一個(gè)用戶(hù)密碼位清空,則用戶(hù)登錄不需要輸入密碼)。但是使用more、cat等命令仍然無(wú)法查看文件/etc/shadow的內容,只有被授予了SetUID的vi可以查看和修改。同樣,vi如果具有了SetUID權限,普通用戶(hù)可以vi編輯/etc/passwd文件把自己的UID改為0,則他的權限就和root一樣;可以vi編輯/etc/inittab文件把缺省運行級別改成6 ,則Linux會(huì )開(kāi)機后不停的重啟

再來(lái)看一個(gè)令人不安的情況,用普通用戶(hù)嘗試關(guān)閉Apache服務(wù):

ps -le | grep httpd140 S     0 8916     1 0 76   0    - 3697 -      ?        00:00:00 httpdkill 8916-bash: kill: (8916) - Operation not permitted

可以看到,普通用戶(hù)不可以關(guān)閉root啟動(dòng)的進(jìn)程,但是如果做下面一個(gè)動(dòng)作:

chmod 6555 /bin/kill

現在當普通用戶(hù)執行kill時(shí),因為kill被授予了SetUID權限,在執行的一瞬間具有了root權限,只要用戶(hù)不爽想關(guān)閉任何服務(wù)都可以!

所以,SetUID權限不能隨便設置,同時(shí)要防止黑客的惡意修改,怎樣避免SetUID的不安全影響,有幾點(diǎn)建議:
1. 關(guān)鍵目錄應嚴格控制寫(xiě)權限。比如“/”、“/usr”等;
2. 用戶(hù)的密碼設置要足夠強壯,8位以上,大小寫(xiě)字母、數字、符號的組合,如:Am@ri31n,且定期更換;
3. 對系統中應該具有SetUID權限的文件作一列表,定時(shí)檢查有沒(méi)有這之外的文件被設置了SetUID權限。

可以對系統中應該具有SetUID權限的文件作一列表,定時(shí)檢查有沒(méi)有非列表中的命令被設置了SetUID權限。
在Linux安裝部署完成后,執行下面命令生成SetUID列表文件:

mkdir /script   # 創(chuàng  )建目錄/scriptfind / -perm -4000 -o -perm -2000 > /script/setuid.list

命令find選項“-perm”為指定文件權限,SetUID權限位對應數字標識為4 ,SetGID權限位對應數字標識為2 ,后面寫(xiě)為“000”標識對所有者所屬組其他人三類(lèi)用戶(hù)的權限不限制;“-o”表示or,就是文件具有SetUID或者具有SetGID都在搜索之列,生成的搜索結果存放在文件/script/setuid.list中。

在需要對系統做檢查時(shí),執行以下shell程序。也可以放在計劃任務(wù)中定時(shí)檢查。

/usr/bin/find / -perm -4000 -o -perm -2000 > /tmp/setuid.checkfor file in `/bin/cat /tmp/setuid.check`do        /bin/grep $file /script/setuid.list > /dev/null               if [ "$?" != "0" ]               then                      echo "$file isn't in list! it's danger!!"               fidone

/bin/rm /tmp/setuid.check
假設命令kill被設置了SetUID ,則會(huì )檢測提示:
/bin/kill isn't in list! it's danger!!

另外,如果在一些數據存放的分區想禁用SetUID功能,還可以做如下設置,編輯配置文件/etc/fstab ,找到要設置的分區(如/home)所對應的設置行:

vi /etc/fstabLABEL=/home       /home     ext3        defaults          1     2

在設置“defaults”后,添加“nosuid”選項,并重新掛載/home分區:

vi /etc/fstabLABEL=/home       /home     ext3        defaults,nosuid              1     2mount -o remount /home

設置后,分區/home上任何可執行文件即使被設置了SetUID權限也無(wú)法執行(讀者可自行拷貝一個(gè)SetUID命令至/home目錄下執行試驗),在一些存放數據、用來(lái)備份等功能的分區上做此設置,可以保護系統安全。

其他的一些linux權限

權限之粘著(zhù)位

Linux中有一個(gè)存放臨時(shí)文件的目錄/tmp(類(lèi)似于Windows中的temp目錄),每個(gè)用戶(hù)產(chǎn)生的臨時(shí)文件都存放在此目錄下,也就是說(shuō)每個(gè)用戶(hù)對/tmp目錄都應該有寫(xiě)權限(否則無(wú)法拷貝生成文件),這樣造成一個(gè)問(wèn)題,比如,高洛峰在/tmp目錄下創(chuàng )建了一個(gè)文件,張沫看著(zhù)不爽就可以刪掉,這如何控制?
其實(shí),這種情況永遠都不會(huì )發(fā)生,因為/tmp目錄有一個(gè)特殊的權限標記:

ls -ld /tmp drwxrwxrwt 5 root root 4096 May 24 13:55 /tmp

瞧見(jiàn)那個(gè)rwx權限最后的“t”了沒(méi),那個(gè)神奇的“t”就是粘著(zhù)位t(有的資料中文也稱(chēng)為粘滯位),是Linux特殊權限中的第三個(gè)(另外兩個(gè)是SetUID和SetGID),定義為:權限為777的目錄設置粘著(zhù)位t以后,具有寫(xiě)權限每個(gè)用戶(hù)都可以在目錄下創(chuàng )建文件,不同的是每個(gè)用戶(hù)只能刪除自己是所有者的文件,也就是說(shuō)只能刪除自己創(chuàng )建的文件。
讀者可以做一下試驗,重復一下《草根》第二期“從ls命令開(kāi)始”中的案例一操作(給目錄/test授予777權限用一個(gè)普通用戶(hù)登錄刪除另一個(gè)普通用戶(hù)創(chuàng )建的文件),不過(guò)這次創(chuàng )建的目錄/test多授予它一個(gè)粘著(zhù)位權限:

chmod o+t /test # 或 chmod 1777 /test

此時(shí)普通用戶(hù)嘗試刪除其他用戶(hù)的文件時(shí),會(huì )給出提示“Operation not permitted”(中文翻譯:你丫沒(méi)事吧,瞎得瑟啥,哥的文件你刪不了)。

文件系統權限

每個(gè)操作系統都要有一種組織管理數據的方式,我們可以理解為就是文件系統,比如Windows的NTFS、FAT ,Linux的EXT ,而在Linux加載分區時(shí)可以針對文件系統進(jìn)行權限設定。
配置文件/etc/fstab保存了Linux啟動(dòng)時(shí)自動(dòng)加載的分區信息,/etc/fstab文件中第四項定義了加載時(shí)的設置,默認為defaults ,包括rw、suid、dev、exec、auto、nouser、async ,如果想改變整個(gè)分區的限定,可以利用這些選項。本文舉兩例說(shuō)明,證明基于文件系統的權限那是相當霸道。

1.只讀分區

默認加載分區是可讀寫(xiě)rw的,但是如果特殊應用希望分區加載后是只讀的,可以做一下設置:

vi /etc/fstab # 編輯/etc/fstab文件在defaults后加入ro選項(逗號分隔) LABEL=/soft /soft ext3 defaults,ro 1 2 mount -o remount /soft # 重新加載/soft分區,使設置生效

如果你不嫌麻煩也可以重啟系統,設置同樣會(huì )生效。
此時(shí)整個(gè)/soft分區都是只讀的,用root登錄后執行:

touch /soft/testfile touch: cannot touch `testfile': Read-only file system 

會(huì )提示/soft分區是只讀的,即便牛X到是root也不可以創(chuàng )建文件,這是凌駕于rwx權限之上的文件系統權限,相當的牛A與牛C之間。像本例是筆者公司的軟件共享目錄,一般半個(gè)月才更新一次軟件,平時(shí)不想任何人增加或刪除(包括不希望root用戶(hù)誤刪除),所以設置為ro ,更新軟件時(shí),可以臨時(shí)更改會(huì )rw來(lái)設置:
mount -o remount,rw /soft
在命令行上也可以設置分區權限,但是只是當前會(huì )話(huà)有效,而寫(xiě)入/etc/fstab文件后則會(huì )一直有效。

2.安全分區

數據存儲的分區,如用做備份的分區,我們可以增加下安全設置選項:
vi /etc/fstab # 編輯/etc/fstab文件在defaults后加入noexec選項
LABEL=/backup /backup ext3 defaults,noexec 1 2
mount -o remount /backup # 重新加載/backup分區,使設置生效
此時(shí)做個(gè)試驗,我們使用普通用戶(hù)拷貝一個(gè)命令文件pwd在/backup目錄下
cp /bin/pwd /backup
/backup/pwd
-bash: pwd: Permission denied
ls -l pwd
-rwxr-xr-x 1 liming liming 93560 Sep 25 10:13 pwd
命令拷貝到/backup下雖然具有可執行權限,但是也無(wú)法執行,在/backup分區下,任何可執行文件都將不能執行,這么做的意義在哪里?如果攻擊程序、木馬、病毒不能夠執行,那么就相當于沒(méi)有意義。
其他選項不做更多演示,這里只拋磚引玉,其他選項設置讀者可man mount查看,查看-o選項中的詳細介紹,更多設置讀者可自行嘗試,所謂授之以魚(yú)不如授之以漁讀萬(wàn)卷書(shū)不如行萬(wàn)里路萬(wàn)惡淫為首窗前明月光啊。

權限之chattr

chatrr只有超人root用戶(hù)可以使用,用來(lái)修改文件的權限屬性,建立凌駕于rwx基礎權限之上的授權。
在此介紹兩個(gè)常用選項:
a 只允許在文件后追加數據,如果目錄具有此屬性,系統將只允許在目錄下建立和修
改文件,而不允許刪除任何文件。
i 不允許對文件進(jìn)行任何修改,如果目錄具有此屬性,那么只能修改目錄下的文件,
不允許建立和刪除文件。

1.無(wú)法刪除和更改的文件
如果要建立一個(gè)公共訪(fǎng)問(wèn)的目錄,大家都可以刪除和創(chuàng )建、拷貝文件,但是有一個(gè)基本的使用此目錄的規則,要建立一個(gè)說(shuō)明文件README ,這個(gè)文件不允許大家刪除和修改,則可以如下設置:

chattr +i README 

這時(shí),README文件所在目錄所有用戶(hù)都有讀寫(xiě)權限,但是任何用戶(hù)都無(wú)法刪除README文件(包括root),嘗試刪除會(huì )提示:

rm README rm: remove write-protected regular empty file `README'? y rm: cannot remove `README': Operation not permitted 

同樣也不可以改變文件的內容,可以查看到README文件被增加了一個(gè)不可更改的屬性:

lsattr README ----i-------- README 

此時(shí),README變成了一個(gè)非常牛XX的文件,即便你是SuperUser也無(wú)法刪除和修改它,想對它干嘛都不成。
若要更改或刪除文件也必須先去掉i屬性才可以:

chattr -i README 

2.備份目錄應用
假設有這樣一種應用,我們每天自動(dòng)化實(shí)現把上海服務(wù)器的日志通過(guò)scp和rsync遠程備份到北京的備份服務(wù)器上,備份服務(wù)器的存儲目錄可設置為只可創(chuàng )建文件而不可刪除。

chattr +a /backup/log 

設置后,可在本機測試:

cp /var/log/messages /backup/log # 可以拷貝文件 rm /backup/log/messages # 刪除文件則被禁止 rm: remove regular file `messages'? y rm: cannot remove `messages': Operation not permitted 

chattr命令不宜對目錄/、/dev、/tmp、/var等設置,嚴重者甚至容易導致系統無(wú)法啟動(dòng),比如根目錄如果設置了i屬性,謹慎設置,看過(guò)此文試驗后造成系統問(wèn)題者,筆者概不負責……

權限之ACL

Linux中默認的權限管理比較菜,難以實(shí)現復雜的權限控制,如針對一個(gè)文件設置幾個(gè)用戶(hù)或用戶(hù)組具有不同權限,這就需要依靠ACL(Access Control List)訪(fǎng)問(wèn)控制列表實(shí)現,可以針對任意指定的用戶(hù)/用戶(hù)組分配權限。
開(kāi)啟分區的ACL功能 ,需要在/etc/fstab文件中加入acl選項,如:

LABEL=/backup        /backup        ext3        defaults,acl        1 2 

然后重新加載分區即可生效:

mount -o remount /backup

如果想臨時(shí)生效可不修改/etc/fstab文件,直接執行命令“mount -o remount,acl /backup”即可。

案例:設定復雜權限控制目錄
設定目錄/backup/log用戶(hù)zhangsan有讀寫(xiě)執行權限,用戶(hù)lisi有讀權限,用戶(hù)wangwu有讀寫(xiě)權限,而用戶(hù)組bakgroup有讀和執行權限,則可做如下設置:
setfacl -m u:zhangsan:rwx,u:lisi:r,u:wangwu:rw,g:bakgroup:rx /backup/log
setfacl -m可以設置文件/目錄的訪(fǎng)問(wèn)權限,至于權限設定的寫(xiě)法包括三個(gè)組成部分,第一部分列出設定對象是用戶(hù)u或用戶(hù)組g ;第二部分指定用戶(hù)名或用戶(hù)組名;第三部分指定訪(fǎng)問(wèn)權限rwx ,設定多組權限中間用逗號分隔。如“u:lisi:r”表示設定用戶(hù)lisi為只讀權限。
查看目錄屬性:

ls -ld /backup/log drwxrwxr-x+ 2 root root 4096 May 25 07:16 /backup/log 

會(huì )發(fā)現文件權限位后增加了一個(gè)加號,這說(shuō)明/backup/log設置了ACL ,同時(shí)可以查看其詳細的權限設置:

getfacl /backup/log # file: backup/log # owner: root user::rwx # group: root user:zhangsan:rwx user:lisi:r-- user:wangwu:rw- group::r-x group:bakgroup:r-x mask::rwx other::r-x 

這樣即可實(shí)現Linux中文件/目錄的復雜權限控制,要注意的是ACL優(yōu)先于基本權限設置,也就是說(shuō)如果默認所屬組為rx權限,但是ACL若指定了所屬組中某個(gè)成員為rwx權限,則此成員擁有rwx權限。

權限之管理員授權

管理員做為特權用戶(hù),很容易誤操作造成不必要的損失,再者都是root管理也怪累的,管理員也是人,也需要留點(diǎn)時(shí)間去約約會(huì )看看電影裝裝傻發(fā)發(fā)呆啥的不是……所以健康的管理方法是Linux服務(wù)架構好后,可授權普通用戶(hù)協(xié)助完成日常管理,現在最流行的工具是Sudo ,幾乎所有Linux都已缺省安裝。
Sudo使用簡(jiǎn)單,管理員root使用visudo命令即可編輯其配置文件/etc/sudoers進(jìn)行授權,具體格式為:
用戶(hù)名/用戶(hù)組名 主機地址=授權命令(絕對路徑)
如,授權用戶(hù)zhaoliu可以關(guān)機和重啟,則添加如下行:

zhaoliu        Helen=/sbin/shutdown,/sbin/reboot 

指定組名用百分號標記,如%admgroup ,多個(gè)授權命令之間用逗號分隔。
用戶(hù)zhaoliu可以使用sudo查看授權的命令列表:

sudo -l Password: User zhaoliu may run the following commands on this host:     (root) /sbin/shutdown     (root) /sbin/reboot 

提示輸入密碼為zhaoliu的密碼,驗證其是否為管理員通過(guò)sudo授權的用戶(hù),執行命令:
sudo /sbin/shutdown -h now
zhaoliu即可關(guān)機,注意命令寫(xiě)絕對路徑,或者把/sbin路徑導入到用戶(hù)缺省路徑中,否則無(wú)法執行。

案例:授權用戶(hù)管理Apache
授權一個(gè)用戶(hù)管理你的Web服務(wù)器,不用自己插手是不是很爽,以后修改設置更新網(wǎng)頁(yè)什么都不用管,一定Happy死了,LOOK——
首先要分析授權用戶(hù)管理Apache至少要實(shí)現哪些基本授權:
1、可以使用Apache管理腳本
2、可以修改Apache配置文件
3、可以更新網(wǎng)頁(yè)內容
假設Aapche管理腳本為/etc/rc.d/init.d/httpd ,滿(mǎn)足條件一,用visudo進(jìn)行授權:
zhaoliu Helen=/etc/rc.d/init.d/httpd reload,/etc/rc.d/init.d/httpd configtest
授權用戶(hù)zhaoliu可以通過(guò)Apache管理腳本重新讀取配置文件讓更改的設置生效(reload)和可以檢測Apache配置文件語(yǔ)法錯誤(configtest),但不允許其執行關(guān)閉(stop)、重啟(restart)等操作。
滿(mǎn)足條件二,同樣使用visudo授權:
zhaoliu Helen=/bin/vi /etc/httpd/conf/httpd.conf
授權用戶(hù)可以root身份使用vi編輯Apache配置文件。
以上兩種sudo的設置,要特別注意,很多朋友使用sudo會(huì )犯兩個(gè)錯誤:第一,授權命令沒(méi)有細化到選項和參數;第二,認為只能授權管理員執行的命令。
條件三則比較簡(jiǎn)單,假設網(wǎng)頁(yè)存放目錄為/var/www/html ,則只需要授權zhaoliu對此目錄具有寫(xiě)權限或者索性更改目錄所有者為zhaoliu即可,如果需要還可以設置zhaoliu可以通過(guò)FTP等文件共享服務(wù)更新網(wǎng)頁(yè)。
本文所有操作在Red Hat Enterprise Linux 5.4下完成,其他Linux基本無(wú)差異,本文基本涵蓋Linux的所有權限管理方式,雖不細致但足以讓讀者對其有一個(gè)整體的了解。
最后請切記系統安全的基本原則:授權用戶(hù)最小的權限。
蜘蛛俠說(shuō)“能力越大責任越大”,Linux管理員說(shuō)“能力越大出錯幾率越大”,阿門(mén)。

參考:
1.http://blog.csdn.net/arachnoman/article/details/5654621
2.http://nba20717zcx.blog.51cto.com/343890/392063
3.http://www.iteye.com/topic/807807

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
淺談linux中setuid權限
Linux下特別權限位
Linux下Setuid命令!
如何使用特殊權限:setuid、setgid 和 sticky 位
第十八章 Linux系統安全簡(jiǎn)介
Android root 原理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久