第四周學習總結

寫在最前

忙碌的一周又過去了,通過日夜兼程的追趕,也算基本上趕上了大部隊的步伐。本周將繼續對上一周的內容進行回顧加深,以達到對用戶更加熟悉的管理,并講講三劍客中的老三。

知識詳解

上一周我們說到了用戶的管理,其中有像useradd、usermod、groupadd、passwd和userdel等非常重要的命令,每個用戶都有自己特定的角色,在系統上完成不同的功能效用。root用戶就是專門用于管理全局的超級用戶,權利非常之大。除了root用戶以外還有一些系統用戶,他們主要是為了運行后臺進程或服務類進程,系統創建出來專門運行此類進程的一類用戶,并且他們不需要有登錄權限。還有一類就是我們自己創建的普通用戶,這類用戶的權限一般都比較小,在需要更大的權限時,我們才通過root授權開放更大的權限。

Linux中,一切皆文件,因此對于用戶的管理也不例外,他們在系統上也都有特定的文件用于管理用戶的信息。首先是存儲用戶基本信息的/etc/passwd文件,首先我們來看一下它都有哪些內容:

401

通過觀察,每一行都是由冒號隔開的七個字段組成,第一個字段是用戶名,第二個字段是密碼占位符,用戶的真實密碼不存放在這兒,而是由一個專門的文件存儲的。第三個字段是用戶ID號,第四個字段是組ID號,第五個字段是該用戶的附加描述信息,第六個字段是用戶的家目錄位置,第七個則是用戶默認的shell。對于這些信息我們可以通過命令行的方式生成,也可以直接在此文件中新增或修改得來。

用戶生成后,要想用于訪問或管理進程、文件,還需要有特定的權限,每個目錄、文件都對三類用戶分別設置了權限,對于屬主有讀、寫、執行權限,對于屬組也有讀、寫、執行權限,對于其他用戶也設定了讀、寫、執行權限。并且對于文件和目錄。相同的權限還代表不同的含義,對于目錄來說:

  • 讀權限:可使用ls命令查看目錄中的文件名列表;
  • 寫權限:可以在目錄中創建或刪除文件;
  • 執行權限則表示可以cd到此目錄中,以及使用ls -l顯示目錄中文件的元數據信息;

但是對于文件來說,權限則代表不同的信息,

  • 讀權限:可以查看文件的內容;
  • 寫權限:可以修改文件的內容;
  • 執行權限:把此文件啟動為一個運行的程序(進程);

因此文件想要被用戶管理,還必須要有相應的權限才行。如果一個用戶對文件有讀權限,但是這個文件有數萬行,如何才能快速的找到想要的內容呢?通過上次的講解,我們知道有文件處理的一些工具,這里再講解一個非常有名的工具。

Linux中有著名的三劍客,grep則被稱為老三,是一個強大的文本搜索工具,通過全局查找,它的輸入可以是一個文件,也可以是標準輸入,將匹配到的內容輸出到屏幕上,默認為將匹配到的整行輸出。grep也有固定的格式:

grep [options] ?pattern [file]

grep的選項主要用于調整執行查找或顯示結果的方式,有如下的常用選項:

  • -E:擴展的正則表達式,也即是grep -E=egrep;
  • -i:不叫字符時忽略大小寫的區別;
  • -v:取反,也即是輸出匹配模式相反的內容;
  • -o:只顯示匹配到的內容,而不是默認的一行內容;
  • -B:輸出滿足條件的前幾行;
  • -A:輸出滿足條件的后幾行;
  • -C:此選項相當于同時使用-A、-B,表示前后幾行都輸出;

此外grep為了讓用戶定義更精確的查找內容,還支持使用元字符,這類字符也是一種字符,但他們表達的含義不是字符本身的含義,而是用另外一層意思去解釋。

  • ^:行首定位符,匹配以特定字符開頭的行;
  • $:行尾定位符,匹配以特定字符結尾的行;
  • .:匹配單個字符;
  • *:匹配零個或多個前面的字符;
  • []:匹配指定字符集合內的任意一個字符;
  • [^]:匹配不在指定字符集合內的任一字符;
  • \<:詞首定位符,相當于\b;
  • \>:詞尾定位符,相當于\b;
  • x\{m\}:連續m次x;
  • x\{m,\}:至少連續m次x;
  • x\{m,n\}:至少m次,至多n次x;

實例展示

講解畢竟是講解,要想有提升,還必須要練習一番,那下面就是練習提升空間。

1、如何顯示/proc/meminfo文件中以大寫或小寫S開頭的行?

綜合上面講述的知識,抓住問題的關鍵字:開頭、或,那么此問題也就迎刃而解了。

402

此外由于grep -E=egrep,因此這里還有第二種方法:

403

2、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶。

405

3、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶。

406

4、找出/etc/passwd文件中的一位數或兩位數。

407

5、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行。

此處需要注意的是,centos7版本以后沒有此文件,因此建議在centos6及其以下版本中進行。408

6、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面至少跟一個空白字符,而后又有至少一個非空白字符的行。

說明:由于篇幅的原因,以下內容只截取了其中的一部分內容。

409

7、打出netstat -tan命令執行結果中以“LISTEN”,后或跟空白字符結尾的行。410

8、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。

使用cp -r /etc/skel/ /home/tuser1 && chmod -R 700 /home/tuser1即可,結果如下:

411

9、手動編輯/etc/group文件,添加組hadoop。

412

10、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號,其家目錄為/home/hadoop。

413

11、復制/etc/ske1目錄為/home/hadoop,要求修改hadoop目錄的屬組和其他用戶沒有任何訪問權限。

使用cp -r /etc/skel/ /home/hadoop && chmod -R 700 /home/hadoopp即可,結果如下:

414

12、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop。屬組為hadoop。

使用chown修改文件的屬主屬組,則為: chown -R hadoop:hadoop hadoop/ ?,結果如下:

415

13、添加用戶bash,testbash,basher,nologin(此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息。

416

417

寫在最后

今天的總結分享基本就是以上內容,當然很多知識不夠全面,因為每個人理解得不一樣,我覺得吧,學習還是要找一條屬于自己的路,別人的路你可以參考,因為站在巨人的肩膀上才能看的更遠,但是自己那一條人生路一定要有自己的特色,一定要屬于你。這樣才能走得更好,走得更遠。

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90534

(0)
蟲草君蟲草君
上一篇 2017-12-24
下一篇 2017-12-24

相關推薦

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-01-07 17:58

    贊~前后有自己的總結,期待來一篇比較全面的文本三劍客的博文~加油~

欧美性久久久久