week2(3)使用者管理、檔案查詢
一、使用者許可權管理 系統根據賬戶來區分每個使用者的檔案、程序、任務,給每個使用者提供特定的工作環境。對使用者組的管理主要包括:新增、修改、刪除以及配置訪問系統的資源。 1.給普通使用者提權 sudo 命令用於給普通使用者提供額外的許可權來完成原本 root 管理員才能完成的任務,格式為“sudo [引數] 命令名稱”。 sudo 命令具有如下功能: Ø 限制使用者執行指定的命令: Ø 記錄使用者執行的每一條命令; Ø 配置檔案(/etc/sudoers)提供集中的使用者管理、許可權與主機 等引數; Ø 驗證密碼的後 5 分鐘內(預設值)無須再讓使用者再次驗證密碼。 例:給alice使用者臨時提權可以檢視root的資訊 1)visudo 2)將第 93 行(大約)填寫上指定的資訊: 誰可以使用 允許使用的主機=(以誰的身份) 可執行命令的列表
3)切換到alice使用者 sudo -l發現alice有了許可權,直接檢視root失敗,在前面加上sudo 即可成功檢視 2. 練習題: 1)增加兩個使用者並設定好密碼(寫 2 行):John、Lucy useradd -p 123456 john useradd -p 123 lucy 2)檢視各使用者的基本資訊(相關檔案在/etc 中) cat /etc/passwd | grep ‘john’ cat /etc/passwd | grep ‘lucy’ 檢視各使用者的密碼資訊(相關檔案在/etc 中) cat /etc/shadow | grep ‘john’ cat /etc/shadow | grep ‘lucy’
9)使用者切換到 Lucy,刪除 Lucy 的密碼,刪除使用者 Lucy su lucy vi /etc/passwd 中去掉lucy 的x許可權,userdel lucy 例: 組管理命令練習 1)增加以一個 student 組 groupadd student 2)檢視所有組的基本資訊(相關檔案在 etc 中) cat /etc/group 3)檢視 summer 組中包含哪些使用者名稱? cat /etc/group | grep ‘summer’ 3)將 student 組名改為 teacher groupmod –n teacher student 刪除 teacher 組 groupdel teacher 二、檔案查詢 which找不到的而whereis可以找到是因為系統真癿有 ifconfig 這個檔案,但是使用者的 PATH 幵沒有加入/sbin;which是找可執行檔案,whereis,locate在資料庫中查詢資料 1.which 查詢可執行檔案的路徑 which 是通過 PATH 環境變數到該路徑內查詢可執行檔案 [[email protected] ~]# which [-a] command 2.whereis [[email protected] ~]# whereis [-bmsu] 檔案或者目錄名稱 引數說明: -b : 只找二進位制檔案 -m: 只找在說明檔案 manual 路徑下的檔案 -s : 只找 source 原始檔 -u : 沒有說明文件的檔案 只找出二進位制檔案 whereis -b ifconfig locate 語法: [[email protected] ~]# locate 檔案或者目錄名稱 選項或引數: -i :忽略大小寫的差異; -r :後面可接正則表示法的顯示方式 locate 尋找的資料是由『已建立的資料庫 /var/lib/mlocate/』裡面的資料所搜尋到的,不用直接在去硬碟中存取資料。 更新 locate 資料庫直接輸入 updatedb 就可以了! updatedb 指令會 去讀取 /etc/updatedb.conf 這個配置檔案的設定,然後再去硬碟 裡面迚行搜尋檔名的動作, 最後就更新整個資料庫檔案! 3.find [[email protected] ~]# find 路徑 引數 引數說明: 時間查詢引數: -atime n :將 n24 小時記憶體取過的的檔案列出來 -ctime n :將 n24 小時內改變、新增的檔案或者目錄列出來 -mtime n :將 n24 小時內修改過的檔案或者目錄列出來 -newer file :把比 file 還要新的檔案列出來 1)find ./ -mtime 0 0代表當前時間,從現在開始的24小時 2)找出/root中,即字尾為 sh的檔案 [[email protected]~]# find /root -type f -name ".sh"
額外操作: -exec command :command 為其他挃令,-exec 後面可再接額 外的指令來處理搜尋到癿結果。 -print :將結果列印到螢幕上,這個動作是預設! 3)找出/root中,即字尾為 sh的檔案,用ls -l列出來 [[email protected]~]# find /root -type f -name “.sh" | xargs ls -l 那麼他們有什麼區 #{} 代表癿是『由 find 找到癿內容』,find 癿結果會被放置到 {} 位置中; #-exec 一直到 ; 是關鍵詞,代表 find 額外動作癿開始 (-exec) 到結束 ( \ ; ) ,在這中間的就是 find 命令內的額外動作。 **exec與xargs的區別: -exec 1.引數是一個一個傳遞的,傳遞一個引數執行一次 rm 2.檔名有空格等特殊字元也能處理 -xargs 1.一次將引數傳給命令,可以使用-n 控制引數個數 2.處理特殊檔名需要採用如下方式: find . -name ".txt” print0 |xargs -0 rm {}** 練習: 1、查詢/var 目錄下屬主為 root,且屬組為 mail 的所有檔案或目錄; ~]# find /var -user root -a -group mail -ls
2、查詢/usr 目錄下不屬於 root, bin 或 student 的所有檔案或目錄; 用兩種方法; ~]# find /usr -not -user root -a -not -user bin -a -not -user student ~]# find /usr -not ( -user root -o -user bin -o -user student ) -ls 3、查詢/etc 目錄下最近一週內其內容修改過,且屬主不是 root 用 戶也不是 student 使用者的檔案或目錄; ~]# find /etc -mtime -7 -a -not ( -user root -o -user student ) -ls ~]# find /etc -mtime -7 -a -not -user root -a -not -user student -ls 4、查詢當前系統上沒有屬或屬組,且最近一週內曾被訪問過的檔案 或目錄; ~]# find / ( -nouser -o -nogroup ) -atime -7 -ls 5、查詢/etc 目錄下大於 1M 且型別為普通檔案的所有檔案; ~]# find /etc -size +1M -type f -exec ls -lh {} ; 6、查詢/etc 目錄下所有使用者都沒有寫許可權的檔案; ~]# find /etc -not -perm /222 -type f -ls 7、查詢/etc 目錄至少有一類使用者沒有執行許可權的檔案; ~]# find /etc -not -perm -111 -type f -ls
8、查詢/etc/init.d/目錄下,所有使用者都有執行許可權,且其它使用者 有寫許可權的所有檔案; ~]# find /etc -perm -113 -type f -ls