linux復(fù)習(xí)4-10章補(bǔ)充內(nèi)容.ppt_第1頁
linux復(fù)習(xí)4-10章補(bǔ)充內(nèi)容.ppt_第2頁
linux復(fù)習(xí)4-10章補(bǔ)充內(nèi)容.ppt_第3頁
linux復(fù)習(xí)4-10章補(bǔ)充內(nèi)容.ppt_第4頁
linux復(fù)習(xí)4-10章補(bǔ)充內(nèi)容.ppt_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第4章 Linux文件系統(tǒng),補(bǔ)充內(nèi)容: 1.常用文件擴(kuò)展名 2.linux目錄操作(相對路徑和絕對路徑) 3.文件信息相關(guān)命令(查看、查找等) 4.文件權(quán)限(包括特殊權(quán)限) 5.目錄權(quán)限,文件的擴(kuò)展名(第四章),基本上,Linux文件沒有所謂的“擴(kuò)展名”。一個文件能否被執(zhí)行,主要看權(quán)限,若權(quán)限中具有x,則代表這個文件可以被執(zhí)行。 可執(zhí)行跟可以執(zhí)行成功不一樣。例如/root目錄下有文件install.log,若修改其權(quán)限為 -rwxrwxrwx后,這個文件仍然不能執(zhí)行成功。 常用擴(kuò)展名: *.sh:腳本或批處理文件 *.Z,*.tar,*.tar.gz,*.zip,*.tgz:打包或壓縮文件 *

2、.html,*.php:網(wǎng)頁相關(guān)文件 文件擴(kuò)展名只能讓我們了解文件可能的用途。,4.3 Linux系統(tǒng)的文件操作命令,Linux的文件信息顯示命令 cat查看文件信息命令,從第一行開始顯示 tac查看文件信息,從最后一行開始顯示 more一頁一頁顯示文件內(nèi)容 less與more相似,但可以往前翻頁 head只看頭幾行 tail只看末尾幾行 nl顯示時同時輸出行號,Linux系統(tǒng)的文件操作命令,Linux的文件檢索、排序命令 find實際搜索硬盤查詢文件名稱 which查看可執(zhí)行文件的位置 whereis查看文件的位置 locate配合數(shù)據(jù)庫查看文件位置 grep文件信息檢索命令 sort排序命

3、令,find命令,語法:find 路徑選項 例:find / -name test/文件名為test的文件 例:find / -name test*/文件名包含test 例:find /home -user test /查找/home下屬主為test的文件 例:find /dev -type -b /查找/dev目錄下文件類型為塊設(shè)備的文件 缺點:耗硬盤,which命令,語法:which 文件名稱 例:which passwd 基本功能:查找可執(zhí)行文件。,whereis命令,語法:whereis 選項目錄名稱 例:whereis passwd /將passwd相關(guān)字的文件或目錄都列出 例:wh

4、ereis -b passwd /僅列出二進(jìn)制文件 例:whereis -m passwd /僅搜尋man page所在的目錄 優(yōu)點:搜索速度快,locate命令,語法:locate 目錄名稱 例:locate passwd /帶有passwd字符串的文件都將列出 優(yōu)點:速度快 缺點:有使用限制。數(shù)據(jù)庫更新前新建的文件找不到,必須要在更新數(shù)據(jù)庫之后才能搜索到。,SUID,當(dāng) s 這個標(biāo)志出現(xiàn)在文件擁有者的 x 權(quán)限上時,例如剛剛提到的 /usr/bin/passwd 這個文件的權(quán)限狀態(tài):-rwsr-xr-x,此時就被稱為 Set UID,簡稱為 SUID 的特殊權(quán)限。 SUID的權(quán)限對于一個文

5、件有如下的功能: SUID 權(quán)限僅對二進(jìn)制程序(binary program)有效; 運行者對于該程序需要具有 x 的可運行權(quán)限; 本權(quán)限僅在運行該程序的過程中有效 (run-time); 運行者將具有該程序擁有者 (owner) 的權(quán)限。,SGID,當(dāng)一個目錄配置了 SGID 的權(quán)限后,它將具有如下的功能: 使用者若對于此目錄具有 r 與 x 的權(quán)限時,該使用者能夠進(jìn)入此目錄; 使用者在此目錄下的有效群組(effective group)將會變成該目錄的群組; 用途:若使用者在此目錄下具有 w 的權(quán)限(可以新建文件),則使用者所創(chuàng)建的新文件,該新文件的群組與此目錄的群組相同。,Sticky

6、Bit,Sticky Bit(SBIT)目前只針對目錄有效,對于文件已經(jīng)沒有效果了。SBIT 對于目錄的作用是: 當(dāng)使用者對于此目錄具有 w, x 權(quán)限,亦即具有寫入的權(quán)限; 當(dāng)使用者在該目錄下創(chuàng)建文件或目錄時,僅有自己與 root 才有權(quán)力刪除該文件 。 當(dāng)甲這個使用者于 A 目錄是具有群組或其他人的身份,并且擁有該目錄 w 的權(quán)限, 這表示:甲使用者對該目錄內(nèi)任何人創(chuàng)建的目錄或文件均可進(jìn)行 刪除/更名/搬移 等動作。 不過,如果將 A 目錄加上了 SBIT 的權(quán)限項目時, 則甲只能夠針對自己創(chuàng)建的文件或目錄進(jìn)行刪除/更名/移動等動作,而無法刪除他人的文件。,Sticky Bit,舉例來說,

7、我們的 /tmp 本身的權(quán)限是drwxrwxrwt, 在這樣的權(quán)限內(nèi)容下,任何人都可以在 /tmp 內(nèi)新增、修改文件,但僅有該文件/目錄創(chuàng)建者與 root 能夠刪除自己的目錄或文件。這個特性很重要! 可以這樣做個簡單的測試: 以 root 登錄系統(tǒng),并且進(jìn)入 /tmp 當(dāng)中; touch test,并且更改 test 權(quán)限成為 777 ; 以一般使用者登錄,并進(jìn)入 /tmp; 嘗試刪除 test 這個文件!,SUID/SGID/SBIT 權(quán)限配置,例:rootwww # cd /tmp rootwww tmp# touch test rootwww tmp# chmod 4755 test;

8、ls -l test -rwsr-xr-x 1 root root 0 Sep 29 03:06 test rootwww tmp# chmod 6755 test; ls -l test -rwsr-sr-x 1 root root 0 Sep 29 03:06 test rootwww tmp# chmod 1755 test; ls -l test -rwxr-xr-t 1 root root 0 Sep 29 03:06 test rootwww tmp# chmod 7666 test; ls -l test -rwSrwSrwT 1 root root 0 Sep 29 03:06

9、 test 注意最后一條命令!因為s和t都是取代x這個權(quán)限的,我們是下達(dá) 7666!即user, group以及others都沒有x這個可執(zhí)行的標(biāo)志(因為666),所以,這個 S,T 代表的就是空的!,查看文件類型,file命令:查看文件類型 例:file /etc/passwd,權(quán)限對文件與目錄的意義,例:有個目錄的權(quán)限如下: drwxr-r- 3 root root 4096 Mar 10 08:10 .ssh 系統(tǒng)有個賬號名稱為stu,這個賬號不屬于root組,請問stu對這個目錄有何權(quán)限?是否可以切換到此目錄中? 結(jié)論:x在目錄中是與“能否進(jìn)入該目錄”有關(guān)。要開放目錄給別人瀏覽,應(yīng)該至

10、少給予r及x的權(quán)限。,權(quán)限對文件與目錄的意義,例:有個賬號名稱為tom,他的賬戶目錄在/home/tom,tom對此目錄具有rwx的權(quán)限。若在此目錄下有個名為the_root.data的文件,該文件的權(quán)限如下: -rwx- 1 root root 4356 Sep 19 23:20 the_root.data 請問tom對此文件的權(quán)限為什么?可否刪除此文件? 結(jié)論:w具有相當(dāng)重要的權(quán)限,他可以讓使用者刪除、更新、新建文件或目錄。,補(bǔ)充:權(quán)限與命令的關(guān)系,讓用戶能進(jìn)入某目錄成為“可工作目錄”的基本權(quán)限為何: 可使用的命令:例如 cd 等變換工作目錄的命令; 目錄所需權(quán)限:用戶對這個目錄至少需要具

11、有 x的權(quán)限 額外需求:如果用戶想要在這個目錄內(nèi)利用 ls 查閱文件名,則用戶對此目錄還需要 r 的權(quán)限。 用戶在某個目錄內(nèi)讀取一個文件的基本權(quán)限為何? 可使用的命令:例如本章談到的 cat, more, less等等 目錄所需權(quán)限:用戶對這個目錄至少需要具有 x 權(quán)限; 文件所需權(quán)限:用戶對文件至少需要具有 r 的權(quán)限!,補(bǔ)充:權(quán)限與命令的關(guān)系,使用戶可以修改一個文件的基本權(quán)限為何? 可使用的命令:例如 nano 或未來要介紹的 vi 編輯器等; 目錄所需權(quán)限:用戶在該文件所在的目錄至少要有 x 權(quán)限; 文件所需權(quán)限:用戶對該文件至少要有 r, w 權(quán)限 使用戶可以建立一個文件的基本權(quán)限為何

12、? 目錄所需權(quán)限:用戶在該目錄要具有 w,x 權(quán)限,重點在 w ! 使用戶進(jìn)入某目錄下執(zhí)行該目錄下的某個命令的基本權(quán)限為何? 目錄所需權(quán)限:用戶在該目錄至少要有 x的權(quán)限; 文件所需權(quán)限:用戶對該文件至少需要有 x 的權(quán)限,權(quán)限與命令的關(guān)系(自制),補(bǔ)充:權(quán)限W,【關(guān)于權(quán)限w的理解】 要判斷用戶對某個文件、目錄是否有權(quán)刪除,應(yīng)該看用戶對其父目錄的操作權(quán)限,而不是其本身 權(quán)限w對于文件來說意味著修改(注意不是刪除),對于目錄來說則意味: a.建立新的文件與目錄 b.刪除已經(jīng)存在的文件與目錄(不論文件是屬于誰的) c.將已存在的文件或目錄進(jìn)行重命名 d.移動該目錄內(nèi)的文件、目錄的位置,補(bǔ)充:權(quán)限與

13、命令的關(guān)系,例:讓一個用戶stu能夠進(jìn)行cp /dir1/file1 /dir2的命令時,請說明 dir1, file1, dir2 的最小所需權(quán)限為何? 答:執(zhí)行 cp 時, stu要能夠讀取源文件,并能寫入目標(biāo)文件!所以應(yīng)參考前面第二點和第四點的說明! 因此各文件/目錄的最小權(quán)限應(yīng)該是: dir1 :至少需要有 x 權(quán)限; file1:至少需要有 r 權(quán)限; dir2 :至少需要有 w, x 權(quán)限。,補(bǔ)充:權(quán)限與命令的關(guān)系,例:有一個文件全名為 /home/student/www/index.html ,各相關(guān)文件/目錄的權(quán)限如下: drwxr-xr-x 23 root root 4096

14、 Sep 22 12:09 / drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home drwx- 6 student student 4096 Sep 29 02:23 /home/student drwxr-xr-x 6 student student 4096 Sep 29 02:24 /home/student/www -rwxr-r- 6 student student 369 Sep 29 02:27 /home/student/www/index.html 請問tom這個賬號(不屬于student群組)能否讀取 index.html 這個文件

15、? 答:雖然 www 與 index.html是可以讓tom讀取的權(quán)限,但是因為目錄結(jié)構(gòu)是由根目錄一層一層讀取的, 因此tom可進(jìn)入 /home 但是卻不可以進(jìn)入 /home/student/ ,既然連進(jìn)入 /home/student 都不許, 當(dāng)然就讀不到 index.html 了!所以答案是tom不會讀取到 index.html 的內(nèi)容。 那要如何修改權(quán)限呢?其實叧要將 /home/student 的權(quán)限修改為最小 711 ,或者直接給予 755 就可以!,補(bǔ)充:inode(索引節(jié)點),操作系統(tǒng)中的文件數(shù)據(jù)除了文件實際內(nèi)容外,通常含有非常多的屬性,例如Linux操作的文件權(quán)限(rwx)與文

16、件屬性(擁有者、群組、時間參數(shù)等)。文件系統(tǒng)通常會把這兩部分存放在不同的區(qū)塊,權(quán)限與屬性放到inode中,實際數(shù)據(jù)放在data block中。另外,還有一個超級區(qū)塊(superblock)會記錄整個文件系統(tǒng)的整體信息,包括inode與block的總量、使用量、剩余量等。 每個inode與block都有編號,每個文件占用一個inode,inode內(nèi)有文件數(shù)據(jù)放置的block編號。因此,若找到文件的inode,則自然會知道這個文件所放置數(shù)據(jù)的block編號。,第5章 Linux系統(tǒng)管理,補(bǔ)充內(nèi)容: 1.用戶登錄具體管理及范例 2.群組管理員 3.身份切換(su 和sudo) 4.進(jìn)程管理 5.at

17、作業(yè)和cron作業(yè),5.1 用戶和組管理,Linux 系統(tǒng)上面的用戶如果需要登入主機(jī)以取得 shell 的環(huán)境來工作,首先,他必須要在計算機(jī)前面利用 tty1tty7 的終端機(jī)提供的 login 接口,并輸入賬號和密碼后才能夠登錄。輸入賬號密碼后,系統(tǒng)幫忙做了以下工作: 先找尋 /etc/passwd 里面是否有你輸入的賬號?如果沒有則跳出,如果有的話則將該賬號對應(yīng)的UID 和 GID (在 /etc/group 中) 讀出來,另外,該賬號的家目錄和 shell 設(shè)定也一并讀出; 再來則是核對密碼表!這時 Linux 會進(jìn)入 /etc/shadow 里面找出對應(yīng)的賬號與 UID,然后核對一下剛

18、剛輸入的密碼與里頭的密碼是否相符; 如果一切都 OK ,就進(jìn)入 Shell 管控的階段。,用戶及組的管理命令,用戶帳戶管理命令 useradd usermod passwd chage:詳細(xì)的密碼參數(shù)顯示;用戶初始密碼的強(qiáng)制更改 userdel 用戶功能 finger chfn chsh id :查詢自己或其他用戶的相關(guān)UID/GID信息,rootwww # useradd agetest /添加用戶agetest rootwww # echo “agetest”|passwd -stdin agetest /顯示出agetest并修改密碼為同名的agetest rootwww # chage

19、 d 0 agetest /強(qiáng)制修改密碼為agetest,gpasswd群組管理員,范例一:建立一個新群組,名稱為testgroup且群組交由stu1管理: rootwww # groupadd testgroup =先建立群組 rootwww # gpasswd testgroup =給這個群組密碼 Changing the password for group testgroup New Password: Re-enter new password: rootwww # gpasswd -A stu1 testgroup =加入群組管 理員為stu1 rootwww # grep tes

20、tgroup /etc/group /etc/gshadow,gpasswd群組管理員,范例二:以 stu1 登入系統(tǒng),并且讓他添加 stu1和stu3,使他們成為 testgroup 成員 stu1www $ id stu1www $ gpasswd -a stu1 testgroup stu1www $ gpasswd -a stu3 testgroup stu1www $ grep testgroup /etc/group,使用者身份切換(補(bǔ)充),su sudo,使用者身份切換(補(bǔ)充),語法:su -lm -c 命令username -:表示使用login-shell方式登錄系統(tǒng),若沒有

21、表示切換身份為root -l:表示后面要加上要切換的用戶名, 使用login-shell方式 -m:表示使用當(dāng)前的環(huán)境設(shè)定,而不讀取新使用者的配置文件 -c:僅使用一次命令,故后面需加上命令,使用者身份切換(補(bǔ)充),例:假設(shè)使用者是stu,要切換到root身份,且使用non-login shell方式 stuwww $su rootwww stu#env | grep stu rootwww stu#exit,使用者身份切換(補(bǔ)充),例:stu要執(zhí)行命令head n 3 /etc/shadow,且已知root密碼 stuwww $su - -c “head n 3 /etc/shadow” 例

22、:stu用戶要切換到tom用戶 stuwww $su -l tom,使用者身份切換su小結(jié),若要完整切換到新使用者的環(huán)境,必須使用su username或 su l username,這樣連同PATH/USER/MAIL變量都轉(zhuǎn)成新用戶的環(huán)境 若僅執(zhí)行一次root的命令,可以利用su - -c “命令串”的方式處理 使用root切換到任何使用者時,并不需要輸入新用戶的密碼,使用者身份切換(補(bǔ)充),sudo:sudo的執(zhí)行僅需要自己的密碼 并非所有人都能夠執(zhí)行sudo,僅有規(guī)范到/etc/sudoers內(nèi)的用戶才能執(zhí)行sudo命令 語法:sudo-b-u username -b:將后續(xù)的命令放到

23、背景中讓系統(tǒng)自行執(zhí)行,而不與當(dāng)前的shell產(chǎn)生影響 -u:后面加要切換的使用者,若無此項表示切換到root,使用者身份切換(補(bǔ)充),例:root用戶想以stu用戶的身份在/tmp下面建立一個名為tmptest的文件 rootwww #sudo u stu touch /tmp/tmptest rootwww #ls -l /tmp/tmptest,使用者身份切換(補(bǔ)充),sudo預(yù)設(shè)僅有root能使用,sudo的執(zhí)行流程: 當(dāng)用戶執(zhí)行sudo時,系統(tǒng)于/etc/sudoers文件中搜尋該使用者是否有執(zhí)行sudo的權(quán)限; 若使用者具有可執(zhí)行sudo的權(quán)限后,便讓使用者輸入用戶自己的密碼來確認(rèn);

24、 若密碼輸入成功,便開始執(zhí)行sudo后續(xù)接著的命令(但root執(zhí)行sudo時,不需要輸入密碼); 若要切換的身份與執(zhí)行者身份相同,那也不需要輸入密碼。,進(jìn)程的屬性(p97),父進(jìn)程,PID=x 程序碼=zzz,PPID=x PID=y 程序碼=zzz,fork,exec qqq,PPID=x PID=y 程序碼=qqq,中間暫存進(jìn)程,最終的子進(jìn)程,at作業(yè)(p98),at的工作方式 使用at命令產(chǎn)生要執(zhí)行的作業(yè),并將此作業(yè)以文本文件的方式寫入var/spool/at目錄內(nèi),該作業(yè)便能等待atd這個服務(wù)的取用與執(zhí)行了。 允許使用at命令的用戶 利用/etc/at.allow與/etc/at.de

25、ny這兩個文件進(jìn)行at的使用限制 一般的distribution中,系統(tǒng)通常會保留一個空的/etc/at.deny文件,at作業(yè)(p98),創(chuàng)建at作業(yè)(續(xù)) 格式:at -mldv TIME TIME:時間格式,可定義“什么時候要進(jìn)行at作業(yè)”的時間 HH:MM ex04:00 HH:MM YYYY-MM-DD ex04:00 2012-05-08 HH:MMam|pmMonthDate ex04pm March 17 HH:MMam|pm + numberminutes|hours|days|weeks exnow + 5 minutes ex04pm + 3 days,cron作業(yè)(p9

26、9)(第五章結(jié)束),由守護(hù)進(jìn)程crond管理的計劃任務(wù)作業(yè) 要想實現(xiàn)以固定的間隔時間執(zhí)行作業(yè),并且能統(tǒng)一管理所有作業(yè),at命令就不能勝任了,我們可以利用強(qiáng)大的crontab命令來實現(xiàn)cron作業(yè)。 cron作業(yè)的使用者限制 /etc/cron.allow /etc/cron.deny,第6章 vi編輯器的使用,補(bǔ)充內(nèi)容: 1.光標(biāo)定位 2.局部替換(自制) 3.區(qū)塊選擇(vim編輯器),第六章6.4.2快速光標(biāo)定位命令,移至行首 “”或“0”(零) 移至行尾 “$” 移至指定行 “行號G” 移至指定列 “列號l” 移至文件最后一行 G 移至文件第一行 gg 光標(biāo)向下移動n行 n 光標(biāo)向右移動n

27、個字符距離 n,局部替換(自制),命令格式(從n1到n2行,用字符串1替換字符串2) :n1,n2 s/字符串2/字符串1/g 例如: :50,100 s/man/Man/g 注意:s前面有空格,后面的字符串替換前面的字符串,注意誰替換誰。,補(bǔ)充:區(qū)塊選擇(Visual Block),例:一個文件內(nèi)容如下: 現(xiàn)在需要在文件變成如下內(nèi)容: host1 host2 host3 如何實現(xiàn)? VIM 文件名,補(bǔ)充:區(qū)塊選擇(Visual Block),補(bǔ)充:區(qū)

28、塊選擇(Visual Block),使用vim啟動文檔 將光標(biāo)移動到第一行的host的h上,然后按Ctrl+v 將光標(biāo)移動到最底部,此時光標(biāo)移動過的區(qū)域會反白 按下y進(jìn)行復(fù)制 將光標(biāo)移動到第一行的最右邊,用插入模式向右按兩個空格,回到命令模式,按p鍵,補(bǔ)充:多窗口功能 (第六章結(jié)束),使用vim啟動文檔 在底行命令模式下輸入:sp filename即可 若直接用:sp則出現(xiàn)同一個文件在兩個窗口 Ctrl+w+表示光標(biāo)可移動到上面的窗口 Ctrl+w+表示光標(biāo)可移動到下面的窗口,第7章 shell程序設(shè)計,補(bǔ)充內(nèi)容: 1.自定義變量轉(zhuǎn)為環(huán)境變量 2.變量鍵盤讀取、數(shù)組與聲明 3.變量內(nèi)容的刪除、

29、取代 4.命令的別名 5.Bash shell的操作環(huán)境 6.位置參數(shù),第七章Shell的變量功能,環(huán)境變量的功能 export:自定義變量轉(zhuǎn)成環(huán)境變量 命令格式:export 變量名稱 環(huán)境變量與自定義變量的差異在于“該變量是否會被子程序所繼續(xù)使用”。子程序僅會繼承父程序的環(huán)境變量,不繼承父程序的自定義變量。,Shell的變量功能,變量鍵盤讀取、數(shù)組與聲明 declare/typeset:聲明變量的類型 命令格式:declare -aixr variable -a:變量定義為數(shù)組(array)類型 -i:變量定義為整數(shù)(integer)類型 -x:用法與export一樣,把變量變成環(huán)境變量

30、-r:將變量設(shè)定為readonly類型,該變量不能被更改內(nèi)容,也不能unset 例:讓變量sum進(jìn)行10+20+30的加總求和 rootwww #declare -i sum=10+20+30 rootwww #echo $sum,Shell的變量功能,變量鍵盤讀取、數(shù)組與聲明 默認(rèn)情況下,變量類型為“字符串”,若不指定變量類型,則1+2為一個字符串 Bash環(huán)境中的數(shù)值運算,預(yù)設(shè)最多僅能達(dá)到整數(shù),所以1/3的結(jié)果是0 例:將sum變成環(huán)境變量 rootwww declare x sum rootwww export |grep sum 例:讓sum變成只讀屬性。 rootwww declar

31、e r sum 例:讓sum變成自定義變量。 rootwww declare +x sum rootwww declare -p sum/-p可單獨列出變量類型,Shell的變量功能,變量鍵盤讀取、數(shù)組與聲明 數(shù)組變量的設(shè)定:varindex=content 例:設(shè)定var1var3的變量值 rootwww #var1=“good” rootwww #var2=“better” rootwww #var3=“best” rootwww #echo “$var1, $var2, $var3”,Shell的變量功能(老師沒講過),變量內(nèi)容的刪除、取代 變量內(nèi)容的刪除 例1:讓小寫的path自定義變

32、量設(shè)定的與PATH相同 rootwww#path=$PATH rootwww#echo $path 例2:假設(shè)我不喜歡kerberos,所以要將前兩個目錄刪除掉,如何顯示? rootwww#echo $path#/*kerberos/bin: $variable#/*kerberos/bin:#代表由變量的最前面開始刪除,所以便由開始的/寫起。*通配0到無窮多個任意字符。,Shell的變量功能(老師沒講過),變量內(nèi)容的刪除、取代 變量內(nèi)容的刪除 例3:要刪除前面所有的目錄,僅保留最后一個目錄 rootwww#echo $path#/*: #:從頭開始,刪除符合關(guān)鍵詞的“最短的”那一個 #:從頭

33、開始,刪除符合關(guān)鍵詞的“最長的”那一個 例4:要刪除最后面的那個目錄,即從:到bin為止 rootwww#echo $path%:*bin 例5:只保留第一個目錄 rootwww#echo $path%:*bin %:從尾開始,刪除符合關(guān)鍵詞的“最短的”那一個 %:從尾開始,刪除符合關(guān)鍵詞的“最長的”那一個,Shell的變量功能(老師沒講過),變量內(nèi)容的刪除、取代 變量內(nèi)容的取代 例6:將path變量內(nèi)容中的sbin取代成為大寫SBIN rootwww#echo $path/sbin/SBIN rootwww#echo $path/sbin/SBIN /:若變量內(nèi)容符合“舊字符串”,則第一個舊

34、字符串被新字符串取代 /:若變量內(nèi)容符合“舊字符串”,則全部的舊字符串被新字符串取代,命令別名,命令別名設(shè)定:alias,unalias 例:rootwww#alias lm=ls -al |more 例:rootwww#alias rm=rm -i 例:rootwww#alias/列出目前存在的命令別名 例:rootwww#unalias rm,Bash shell的操作環(huán)境(老師沒講過),路徑與命令搜尋順序 命令運行的順序: 以相對/絕對路徑執(zhí)行指令,例如/bin/ls或./ls 由alias找到該命令來執(zhí)行 由bash內(nèi)建的(builtin)指令來執(zhí)行 通過$PATH這個變量的順序搜尋到

35、的第一個指令來執(zhí)行 例:設(shè)定echo的命令別名為echo -n,然后觀察echo執(zhí)行的順序 rootwww alias echo=echo -n rootwww type -a echo,Bash shell的操作環(huán)境,Bash的進(jìn)站與歡迎信息 /etc/issue里面存放有歡迎信息,d本地端的日期 l顯示第幾個終端機(jī)接口 m顯示硬件的等級 n顯示主機(jī)的網(wǎng)絡(luò)名稱 o顯示domain name r顯示操作系統(tǒng)的版本(相當(dāng)于uname -r) t顯示本地端的時間 s操作系統(tǒng)的名稱 v操作系統(tǒng)的版本,Bash shell的操作環(huán)境,Bash環(huán)境配置文件 login shell 與non-login

36、shell /etc/profile(login shell會讀取) /.bash_profile(login shell會讀取) /.bashrc(non-login shell會讀取),login shell:取得 bash 時需要完整的登陸流程的,就稱為 login shell。舉例來說,你要由tty1 tty6 登陸,需要輸入 用戶的賬號與密碼,此時取得的 bash 就稱為” login shell”;non-login shell:取得 bash 接口的方法不需要重復(fù)登陸的 舉動,舉例來說,(1)你以 X window 登陸 Linux 后, 再以 X 的圖形化接口啟動終端機(jī),此時那

37、個終端接口并沒有需 要再次的輸入賬號與密碼,那個 bash 的環(huán)境就稱為 non- login shell了。(2)你在原本的 bash 環(huán)境下再次下達(dá) bash 這個命令,同樣的也沒有輸入賬號密碼, 那第二個 bash (子程序) 也是 non-login shell 。,位置參數(shù)(Position Argument)(第七章結(jié)束),輸出位置參數(shù)(p136例7.2) 用set命令給位置參數(shù)賦值(p137例7.3) 移動位置參數(shù)(p137例7.4),第8章 Linux的網(wǎng)絡(luò)服務(wù),補(bǔ)充內(nèi)容: 1.NFS與RPC 2.配置文件/etc/exports 3.NFS服務(wù)器配置實例及三種身份訪問nfs

38、4.Web服務(wù)Apache服務(wù)器的配置參數(shù) 5.PHP修改默認(rèn)配置 6.Samba服務(wù)器配置啟動及實例、客戶端軟件,NFS與RPC(第8章),NFS是通過網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)的傳輸,所以NFS需要使用一些端口?;旧螻FS服務(wù)的端口開在2049,但是由于文件系統(tǒng)非常復(fù)雜,因此NFS還有其他的程序啟動額外的端口,但額外的端口號是多少? 預(yù)設(shè)NFS用來傳輸?shù)亩丝谑请S機(jī)選擇小于1024以下的端口來使用。那客戶端如何知道服務(wù)器端使用的是哪個端口呢? 需要用到遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)協(xié)議來輔助。,什么是RPC,RPC最主要的功能是在指定每個NFS功能所對應(yīng)的port

39、number,并且回報給客戶端,讓客戶端可以連接到正確的端口上去。 RPC如何知道每個NFS的端口呢?當(dāng)服務(wù)器在啟動NFS時會隨機(jī)取用數(shù)個端口,并主動向RPC注冊,因此RPC可以知道每個端口對應(yīng)的NFS功能,然后RPC固定使用port 111來監(jiān)聽客戶端的需求并回報客戶端正確的端口。 注意:啟動NFS之前,RPC就要先啟動,否則NFS會無法向RPC注冊。另外,RPC若重新啟動時,原本注冊的數(shù)據(jù)會不見,因此RPC重新啟動后,它管理的所有服務(wù)都需要重新啟動來重新向RPC注冊。 NFS服務(wù)器在啟動的時候要向RPC注冊,所以NFS服務(wù)器也被稱為RPC server之一。,NFS啟動的RPC daemo

40、ns,NFS服務(wù)器主要的任務(wù)是進(jìn)行文件的共享,文件系統(tǒng)的共享則與權(quán)限有關(guān)。NFS服務(wù)器啟動時至少需要兩個daemons。 rpc.nfsd:這個daemon主要的功能就是在管理客戶端是否能夠使用服務(wù)器文件系統(tǒng)掛載信息等,其中還包含這個登錄者的ID的判別。 rpc.mountd:客戶端順利通過rpc.nfsd而登錄服務(wù)器之后,在可以使用NFS服務(wù)器提供的文件之前還會經(jīng)過文件權(quán)限的認(rèn)證程序。會去讀NFS的配置文件/etc/exports來比對客戶端的權(quán)限,當(dāng)通過這一關(guān)之后客戶端就可以取得使用NFS文件的權(quán)限。 rpc.lockd(非必要):用于管理文件的鎖定功能。 rpc.statd(非必要):用

41、于檢查文件的一致性。 上述幾個RPC需要的程序已經(jīng)寫入基本的服務(wù)啟動腳本中,即/etc/init.d/nfs(服務(wù)器相關(guān))和/etc/init.d/nfslock(客戶端相關(guān))。,NFS的文件的訪問權(quán)限,問題:服務(wù)器和客戶端剛好有相同的賬號和群組,會怎樣?,問題:服務(wù)器的501這個UID對應(yīng)賬號stu,會怎樣?,問題:服務(wù)器沒有501這個UID,會怎樣?,問題:如果使用者是root,會怎樣?,配置文件/etc/exports,配置文件/etc/exports,NFS服務(wù)器配置實例1,將/tmp目錄共享出去給大家使用,由于本來這個目錄就是大家都可以讀寫的,因此想讓所有的人都可以存取。此外,我要讓

42、root寫入的文件仍然具有root的權(quán)限,該如何設(shè)計配置文件? rootRHEL5#vim /etc/exports /tmp*(rw,no_root_squash),NFS服務(wù)器配置實例2,將公共目錄/home/public共享出去,但是只有網(wǎng)段/24且加入stugroup的用戶才能夠讀寫,其他來源則只能讀取。 rootRHEL5#mkdir /home/public rootRHEL5#setfacl m g:stugroup:rwx /home/public rootRHEL5#vim /etc/exports /tmp *(rw,no_root_squash)

43、 /home/public /24(rw) *(ro),NFS服務(wù)器配置實例3,我要將一個私人目錄/home/test開放給0這個客戶端的機(jī)器使用,該如何設(shè)定?假設(shè)用戶的身份是tom才具有完整的權(quán)限。 rootRHEL5#mkdir /home/test rootRHEL5#setfacl m u:tom:rwx /home/test rootRHEL5#vim /etc/exports /tmp *(rw,no_root_squash) /home/public /24(rw) *(ro) /home/test 1

44、0(rw),NFS服務(wù)器配置實例4,我要讓*.rhel.tom網(wǎng)域的主機(jī),登錄我的NFS服務(wù)器時,可以存取/home/linux,但是他們存數(shù)據(jù)的時候,我希望他們的UID和GID都變成45這個身份,假設(shè)我NFS服務(wù)器上的UID45與GID45的用戶名和組名為nfsanon。 rootRHEL5#groupadd g 45 nfsanon rootRHEL5#useradd-u 45 g nfsanon nfsanon rootRHEL5#mkdir /home/linux rootRHEL5#setfacl m u:nfsanon:rwx /home/linux roo

45、tRHEL5#vim /etc/exports /tmp *(rw,no_root_squash) /home/public /24(rw) *(ro) /home/test 0(rw) /home/linux *.rhel.tom(rw,all_squash,anouid=45,anogid=45),客戶端與服務(wù)器具有相同的UID與賬號,假設(shè)我在0登錄NFS(IP假設(shè)為54)服務(wù)器,并且我在0的帳號為tom這個身份,同時,在NFS服務(wù)器上面也有這個賬號,并具有相同

46、的UID,那么: 由于54NFS服務(wù)器的/tmp權(quán)限為drwxrwxrwt,所以我(tom在0上面)在/tmp底下具有存取的權(quán)限,并且寫入的文件屬主為tom; 在/home/public當(dāng)中,由于我有讀寫的權(quán)限,所以如果在/home/public這個目錄的權(quán)限對于tom有開發(fā)寫入的話,那么我就可以讀寫,并且我寫入的文件屬主為tom。但是萬一/home/public對于tom這個使用者并沒有開放寫入的權(quán)限時,那么我還是沒有辦法寫入文件。 在/home/test中,我的權(quán)限與/home/public相同的狀態(tài),還需要NFS服務(wù)器的/home/te

47、st對于tom有開放權(quán)限; 在/home/linux當(dāng)中就比較麻煩!因為不論你是何種user,你的身份一定會被變成UID=45這個賬號!所以,這個目錄必須針對UID=45的那個賬號名稱,修改他的權(quán)限!,客戶端與服務(wù)器的賬號不同,假設(shè)我在0的身份為jerry(UID為600),但是NFS(IP假設(shè)為54)服務(wù)器卻沒有UID=600的帳號時,那么: 我在/tmp底下還是可以寫入,只是該文件的權(quán)限會保持為UID=600,因此服務(wù)器端看起來就會怪怪的,因為找不到UID=600這個賬號的現(xiàn)實,所以文件屬主會填上600; 我在/home/public里面

48、是否可以寫入,還需要視/home/public的權(quán)限而定,不過,由于沒有加上all_squash的參數(shù),因此在該目錄下會保留客戶端的屬主UID; /home/test與/home/public相同; 在/home/linux底下,我的身份會被變成UID=45這個賬號!,客戶端的身份為root,假設(shè)我在0的身份為root,那么: 我在/tmp底下可以寫入,并且由于no_root_squash的參數(shù),改變了預(yù)設(shè)的root_squash設(shè)定值,所以在/tmp寫入的文件屬主為root; 我在/home/public底下的身份被壓縮為nobody。因為默認(rèn)屬性里面都有root_

49、squash,所以,如果/home/public有針對nobody開放寫入權(quán)限時,那么我就可以寫入,但文件屬主變成nobody; /home/test與/home/public相同; 在/home/linux底下,我root的身份會被變成UID=45這個賬號!,NFS服務(wù)器配置注意要點,在設(shè)置/etc/exports文件時需要特別注意“空格”的使用,因為在此配置文件中,除了分開共享目錄和共享主機(jī),以及分隔多臺共享主機(jī)外,其余的情形下都不可使用空格。例如,以下的兩個范例就分別表示不同的意義: /homeclient(rw) /homeclient (rw) 在以上的第一行中,客戶端client對

50、/home目錄具有讀取和寫入權(quán)限,而第二行中client對/home目錄只具有讀取權(quán)限(這是系統(tǒng)對所有客戶端的默認(rèn)值)。而除client之外的其他客戶端對/home目錄具有讀取和寫入權(quán)限。,NFS服務(wù)器配置注意要點(續(xù)),若/etc/exports有變更的目錄資源,可以使用exportfs命令實現(xiàn)目錄的重新共享。 格式: exportfs -aruv -a:全部重新掛載(或卸載)/etc/exports文件的設(shè)定 -r:重新掛載/etc/exports里面的設(shè)定,此外,也同步更新/etc/exports及/var/lib/nfs/xtab的內(nèi)容 -u:卸載某一目錄 -v:在export的時候,

51、將分享的目錄顯示在屏幕上,要想讓NFS客戶端在系統(tǒng)開機(jī)時自動掛載NFS服務(wù)器上的指定輸出目錄,應(yīng)該在/etc/fstab文件中配置。在/etc/fstab文件中添加的語句格式如下: NFS服務(wù)器主機(jī)名/IP地址:輸出目錄 本地掛在目錄 nfs defaults 0 0 例如,要在NFS客戶端實現(xiàn)每次開機(jī)自動掛載IP地址為02的NFS服務(wù)器上的/home/public輸出目錄,掛載目錄為/mnt/public。應(yīng)該在NFS客戶端的/etc/fstab文件中添加如下的行語句:,NFS客戶端的配置:開機(jī)自動掛載,8.2 Web服務(wù),兩大平臺: LAMP:Linux+Apache

52、+MySQL+PHP IIS+MSSQL+ASP(.NET),www(LAMP)服務(wù)器基本設(shè)定,LAMP所需軟件: httpd(提供Apache主程序) mysql(MySQL客戶端程序) mysql-server(MySQL服務(wù)器程序) Php(PHP主程序含給apache使用的模塊) php-devel(PHP的發(fā)展工具,這個與PHP外掛的加速軟件有關(guān)) php-mysql(提供給PHP程序讀取MySQL數(shù)據(jù)庫的模塊),網(wǎng)站首頁與目錄相關(guān)權(quán)限設(shè)定(DocumentRoot與Directory),DocumentRoot “/var/www/html” Options FollowSymLi

53、nks AllowOverride None Options Indexes FollowSymLinks AllowOverride None Order allow.deny Allow from all ,參數(shù)解釋,Options(目錄參數(shù)):表示這個目錄內(nèi)能夠讓Apache進(jìn)行的動作,即針對Apache的程序的權(quán)限設(shè)定。主要的參數(shù)值有: Indexes:如果在此目錄下找不到首頁文件(預(yù)設(shè)為index.html)時,就顯示整個目錄下的文件名,至于首頁文件名則與DirectoryIndex設(shè)定值有關(guān)。 FollowSymLinks:首頁目錄是在/var/www/html,默認(rèn)情況下,在/v

54、ar/www/html下面的鏈接文件只要鏈接到非此目錄的其他地方,則該鏈接文件預(yù)設(shè)是失效的。但是用此設(shè)定值即可讓鏈接文件有效地離開本目錄。 ExecCGI:讓此目錄具有執(zhí)行CGI程序的權(quán)限! Includes:讓一些Server-Side Includes程序可以運行。 MultiViews:類似于多國語言的支持,與語系數(shù)據(jù)(languagePriority)有關(guān)。最常見在錯誤信息的顯示內(nèi)容,在同一部主機(jī)中,可以根據(jù)客戶端的語系而給予不同的語言顯示。,參數(shù)解釋,AllowOverride(允許的覆寫參數(shù)功能):表示是否允許額外配置文件.htaccess的某些參數(shù)覆寫?我們可以再httpd.co

55、nf內(nèi)設(shè)定好所有的權(quán)限,不過如此一來若使用者自己的個人網(wǎng)頁想要修改權(quán)限時會對管理員造成困擾。因此Apache默認(rèn)可以讓用戶以目錄底下的.htaccess文件內(nèi)覆寫內(nèi)的某些功能參數(shù)。這個項目則是在規(guī)定.htaccess可以覆寫的權(quán)限類型有哪些。常見的有: All:全部的權(quán)限均可被覆寫 AuthConfig:僅有網(wǎng)頁認(rèn)證(賬號密碼)可覆寫 Indexes:僅允許Indexes方面的覆寫 Limits:允許使用者利用Allow,Deny與Order管理可瀏覽的權(quán)限 None:不可覆寫,即讓.htaccess文件失效,參數(shù)解釋,Order,Allow,Deny(能否登錄瀏覽的權(quán)限):決定此目錄能否可被

56、apache的PID所瀏覽的權(quán)限設(shè)定!能否被瀏覽主要有兩種判定的方式: deny,allow:以deny優(yōu)先處理,但沒有寫入規(guī)則的則默認(rèn)為allow。 allow,deny:以allow優(yōu)先處理,但沒有寫入規(guī)則的則默認(rèn)為deny。 在預(yù)設(shè)的環(huán)境中,因為是allow,deny,所以預(yù)設(shè)為deny(不可瀏覽)。但在下一行,有Allow from all,allow優(yōu)先處理,因此全部(all)客戶端都可以瀏覽。,其他和網(wǎng)站相關(guān)性高的參數(shù),DirectoryIndex index.html index.html.var 該參數(shù)用于首頁的文件名,可以修改。比如增加index.pl或index.cgi也可

57、以是首頁的文件名,則可以改成: DirectoryIndex index.html index.htm index.cgi index.pl 若上面的文件名都存在,則按順序讀??;若文件名通通不存在,即沒有首頁,則與Options里面的Indexes有關(guān)。,PHP的預(yù)設(shè)參數(shù)修改,配置文件為/etc/httpd/conf.d/php.conf rootwww#vim /etc/httpd/conf.d/php.conf LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so Ad

58、dHandler php5-script .php/擴(kuò)展名一定要.php結(jié)尾 AddType text/html .php /.php結(jié)尾的文件是純文本文檔 DirectoryIndex index.php /首頁文件名增加index.php #AddType application/x-httpd-php-source.phps 該文件一般不需要修改。,修改默認(rèn)配置針對本地用戶的設(shè)定(實例),要求: 希望使用本地時間代替GMT時間; 用戶登錄時顯示一些歡迎信息; 系統(tǒng)賬號不可以登錄主機(jī)(UID小于500的賬號); 一般本地用戶可以上傳、下載、建立目錄及修改文件等操作; 用戶新增的文件、目錄的

59、umask設(shè)定為002; 其他主機(jī)設(shè)定值保留默認(rèn)值。 操作步驟1:修改主配置文件 anonymous_enable=NO local_enable=YES write_enable=YES local_umask=002 userlist_enable=YES/允許裝入用戶列表文件清單 userlist_deny=YES /讀取的文件清單用戶是否拒絕訪問FTP服務(wù) userlist_file=/etc/vsftpd/user_list/指定用戶清單文件,修改默認(rèn)配置針對本地用戶的設(shè)定(實例),操作步驟1:修改主配置文件 use_localtime=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd tcp_wrappers=YES banner_file=/etc/vsftpd/welcome.txt/這個文件需要手動建立!,修改默認(rèn)配置針對本地用戶的設(shè)定(實例),操作步驟2:建立歡迎信息 rootwww#vim /etc/vs

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論