1. 程式人生 > >Linux 目錄結構、基本許可權 UGO

Linux 目錄結構、基本許可權 UGO

一.Linux 目錄結構

Windows: 以多根的方式組織檔案 C:\ D:\ E: Linux: 以單根的方式組織檔案 /

在這裡插入圖片描述 1.目錄

① bin 普通使用者使用的命令 /bin/ls, /bin/date 用於存放二進位制可執行檔案和常用命令。 在這裡插入圖片描述 ②boot 存放的系統啟動相關的檔案,例如 kernel,grub(引導裝載程式) 在這裡插入圖片描述③dev 裝置檔案 /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero,/dev/null, /dev/random 在這裡插入圖片描述 ④etc 配置檔案(系統相關如網路/etc/sysconfig/network,應用相關配置檔案如/etc/ssh/sshd_config…) 在這裡插入圖片描述

⑤home 儲存普通使用者家目錄 在這裡插入圖片描述 在這裡插入圖片描述 ⑥root root 使用者的 HOME 在這裡插入圖片描述 ⑦tmp 臨時檔案(全域性可寫:程序產生的臨時檔案) 在這裡插入圖片描述 ⑧var 存放的是一些變化檔案,比如資料庫,日誌,郵件… 在這裡插入圖片描述

2.檔案時間

①ls -l 檔名 僅看的是檔案的修改時間 在這裡插入圖片描述 ②stat anaconda-ks.cfg //檢視檔案的詳細屬性(其中包括檔案時間屬性) 在這裡插入圖片描述 ③Linux 檔案有四種時間: 訪問時間:atime,檢視內容 //RHEL6 會延後修改 atime 修改時間:mtime,修改內容 改變時間:ctime,檔案屬性,比如許可權 刪除時間:dtime,檔案被刪除的時間

3.檔案型別

方法一:

ls -l 檔名 //看第一個字元 -普通檔案(文字檔案,二進位制檔案,壓縮檔案,電影,圖片。。。) d 目錄檔案(藍色) b 裝置檔案(塊裝置)儲存裝置硬碟,U 盤 /dev/sda, /dev/sda1 c 裝置檔案(字元裝置)印表機,終端 /dev/tty1 s 套接字檔案 p 管道檔案 l 連結檔案(淡藍色) 在這裡插入圖片描述

方法二:

[[email protected] ~]$ file /etc/hosts /etc/hosts: ASCII text [[email protected] ~]$ file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped [[email protected]

~]$ file /dev/sda /dev/sda: block special [[email protected] ~]$ file /dev/tty1 /dev/tty1: character special [[email protected] ~]$ file /etc/grub2.cfg /etc/grub2.cfg: broken symbolic link to `…/boot/grub2/grub.cfg’ /home: directory [[email protected] ~]$ file /run/dmeventd-client /run/dmeventd-client: fifo (named pipe)

3.路徑(定位檔案)

①命名規則: 1、長度不能超過 255 個字元; 2、不能使用/當檔名; 3、嚴格區分大小寫; 4、以.開頭的檔案為隱藏檔案; /etc/sysconfig/ . : 當前目錄;----------------------->. : sysconfig … : 當前目錄的上一級目錄;------->… : /etc ②絕對路徑: 從/開始的路徑 /home/alice/file1 ③相對路徑: 相對於當前目錄開始 a.txt ./a.txt …/bob/b.txt

4.檔案管理之:建立/ /複製/ /移動/ /刪除

①建立 a.touch:建立一個檔案: 在這裡插入圖片描述 b.touch:建立多個檔案: 在這裡插入圖片描述 c.mkdir:建立目錄 a.-v 在這裡插入圖片描述 b. -p 引數來遞迴創建出具有巢狀疊層關係的檔案目錄,包括其父母的建立,不會有任何訊息輸出 在這裡插入圖片描述 ②cp:複製: ③ mv:移動&重新命名 mv file1 /home/dir3 將 file2 移動到/home/dir3 mv file2 /home/dir3/file20 將 file2 移動到/home/dir3,並改名為 file20 mv file4 file5 將 file4 重新命名為 file5,當前位置的移動就是重新命名 ④rm:刪除 (-r—> 遞迴 -f—> force 強制 -v—> 詳細過程) [[email protected] ~]# mkdir /home/dir10 [[email protected] ~]# touch /home/dir10/{file2,file3,.file4} [[email protected] ~]# rm -rf /home/dir10/* //不包括隱藏檔案

二.基本許可權 UGO

檔案許可權設定: 可以賦於某個使用者或組 能夠以何種方式 訪問某個檔案 檔案許可權管理之: UGO 設定基本許可權(r、w、x)

許可權型別:

屬主:u,u 表示“使用者(user)”,即檔案或目錄的所有者。 屬組:g ,g 表示“同組(group)使用者”,即與檔案屬主有相同組ID的所有使用者 其他人: o,o 表示“其他(others)使用者”。 讀:r 4 寫:w 2 執 行: x 1

檔案:

-rw-r–r--. 1 root root 46571 6 月 1 23:37 /root/install.log** 最前面一位‘-’,表示檔案型別為普通檔案。 第一個組為"rw-",表示檔案屬主具有讀和寫許可權,但沒有執行許可權。 第二個組為"r–",表示同組其他使用者具有讀許可權,但沒有寫和執行許可權。 第三個組為"r–",表示其他組使用者具有讀許可權,但沒有寫和執行許可權。

r、w、x 許可權對檔案的意義 r:可獲取檔案的資料; w: 可修改檔案的資料; x:可將此檔案執行為程序;

目錄:

drwxr-xr-x 2 root root 4096 9 28 22:33 Desktop 最前面一位‘d’,表示檔案型別為目錄。 第一個組為"drwx",表示檔案屬主具有讀、寫和執行許可權。 第二個組為"r-x",表示同組其他使用者具有讀和執行許可權,但沒有寫許可權。 第三個組為"r-x",表示其他組使用者具有讀和執行許可權,但沒有寫許可權。

目錄和檔案的許可權位是一樣的,但目錄與檔案在許可權定義上有一些區別,目錄的讀操作指列出目錄中的內容,寫操作指在目錄中建立或刪除檔案,執行操作指搜尋和訪問目錄。

r、w、x 許可權對目錄的意義 r:可使用 ls 命令獲取其下的所有檔案列表; w: 可修改此目錄下的檔案列表;即建立或刪除檔案; x: 可 cd 至此目錄中,且可使用 ls -l 來獲取所有檔案的詳細屬性資訊;

1.設定許可權

  1. 更改檔案的屬主、屬組 =chown: =chgrp:

2. 更改許可權

①使用符號 物件 賦值符 許可權型別

②使用數字: 例如,如果想讓某個檔案的屬主有“讀/寫”二種許可權,需要把4(可讀)+2(可寫)=6(讀/寫)。

在這裡插入圖片描述

設定許可權示例:

針對 hr 部門的訪問目錄設定許可權,要求如下:

  1. root 使用者和 hr 組的員工可以讀、寫、執行
  2. 其他使用者沒有任何許可權 程式碼如下: ①建立hr組: [[email protected] ~]# groupadd hr ②新增使用者hr01 hr02到組hr中(-G:指定一個或多個擴充套件使用者組 #附加組) [[email protected] ~]# useradd hr01 -G hr [[email protected] ~]# useradd hr02 -G hr ③在家目錄下建立一個目錄hr [[email protected] ~]# mkdir /home/hr [[email protected] ~]# chgrp hr /home/hr [[email protected] ~]# chmod 770 /home/hr [[email protected] ~]# ll -d /home/hr/ drwxrwx—. 2 root hr 4096 3 月 13 14:26 /home/hr/

示例 1: 對檔案的影響

[[email protected] ~]# mkdir /dir10 [[email protected] ~]# touch /dir10/file1 [[email protected] ~]# chmod 777 /dir10/file1 [[email protected] ~]# ll -d /dir10/ drwxr-xr-x. 2 root root 4096 3 月 11 18:37 /dir10/ [[email protected] ~]# ll /dir10/file1 -rwxrwxrwx. 1 root root 0 3 月 11 18:37 /dir10/file1 在這裡插入圖片描述 切換成普通使用者alice: [[email protected] ~]$ cat /dir10/file1 [[email protected] ~]$ rm -rf /dir10/file1 rm: 無法刪除"/dir10/file1": 許可權不夠 在這裡插入圖片描述

示例 2: 對目錄有 w 許可權

[[email protected] ~]# chmod 777 /dir10/ [[email protected] ~]# chmod 000 /dir10/file1 [[email protected] ~]# ll -d /dir10/ drwxrwxrwx. 2 root root 4096 3 月 11 18:37 /dir10/ [[email protected]alhost ~]# ll /dir10/file1 ----------. 1 root root 0 3 月 11 18:37 /dir10/file1 在這裡插入圖片描述 切換成普通使用者alice: [[email protected] ~]$ cat /dir10/file1 cat: /dir10/file1: 許可權不夠 [[email protected] ~]$ rm -rf /dir10/file1 [[email protected] ~]$ touch /dir10/file2 在這裡插入圖片描述

2. 使用者命令

①新增使用者:useradd 使用者名稱

主要引數: -d 根目錄 -g 主組 -G 附加組列表(逗號隔開) 引數 作用 -d 指定使用者的家目錄(預設為/home/username) -e 賬戶到期時間 #預設建立使用者無過期 -u 指定該使用者的預設uid #系統建立時預設給使用者分配的uid -g 指定一個初始的使用者基本組 #主組 -G 指定一個或多個擴充套件使用者組 #附加組 -s 指定該使用者的預設Shell直譯器

②重置密碼:passwd 使用者名稱 在這裡插入圖片描述

引數 作用 -l 鎖定使用者,禁止其登入 -u 接觸鎖定,允許使用者登入 –stdin 通過標準輸入修改密碼 -d 使該使用者可用空密碼登入系統 -e 強制使用者在下次登入時修改密碼

③修改使用者:usermod -d 根目錄 -g 主組 -G 附加組列表(逗號隔開) 使用者名稱 ④刪除使用者:userdel 使用者名稱

引數 作用 -f 強制刪除使用者 -r 同時刪除使用者及使用者家目錄

⑤檢視所有使用者:cat /etc/passwd

3. 使用者組命令

①新增組:groupadd 使用者

引數 作用 -c 填寫賬戶的備註資訊 -e 賬戶的到期時間 -g 變更所屬使用者組 -G 變更擴充套件使用者組 -L 鎖定使用者禁止其登入系統 -U 解鎖使用者,允許其登入系統 -s 變更預設終端 -u 修改使用者uid

②修改組:groupmod -n 新組名 組名 ----------可以用來改組名。 ③刪除組:groupdel 組名-------------如果組內還有使用者,則無法刪除。 ④檢視使用者的組資訊:id 使用者名稱 ⑤將使用者新增入組裡:gpasswd -a 使用者名稱 組名 ⑥將使用者從組裡移除:gpasswd -d 使用者組 組名 ⑦檢視所有組+檢視某個組內的使用者:cat /etc/group。

課堂練習鞏固:

在這裡插入圖片描述 1.建立使用者user1,附加組委bin和root,預設shell為/bin/bash,註釋資訊為“user1_info" 在這裡插入圖片描述 檢視是否建立成功: 在這裡插入圖片描述 出現上圖所示即建立成功。 2.建立admins的組 在這裡插入圖片描述 3.建立使用者natasha,使用admins作為附加組 在這裡插入圖片描述 4.建立使用者harry,也使用admins作為附加組 在這裡插入圖片描述 5.建立使用者sarah,不可互動登入系統,且不是admins的成員 在這裡插入圖片描述 6.natasha,harry,sarah密碼都是centos7 在這裡插入圖片描述 7.建立user2 uid為10000,輔助組root,home目錄為/home/user200 在這裡插入圖片描述 在這裡插入圖片描述 8.刪除user1使用者及所在家目錄 在這裡插入圖片描述 命令執行完後,再進行檢視,若無,則表示user1使用者及所在家目錄已刪除; 9.建立使用者user100,並將使用者新增到group200組中 在這裡插入圖片描述 檢視:cat /etc/group 若出現下圖所示則新增成功 在這裡插入圖片描述 10.修改user100使用者名稱為user1000 法一:①vi /etc/passwd ②i /insert 100–>1000 ③Esc shift+ : wq enter 在這裡插入圖片描述 法二:usermod -l user1000 user100 在這裡插入圖片描述 11.鎖定使用者user1000,進行測試及結果 usermod -L user1000 12.解鎖使用者user1000,進行測試及結果 usermod -U user1000

檔案管理命令練習

在這裡插入圖片描述 在這裡插入圖片描述 1.在student使用者目錄下建立一個臨時目錄tmp useradd student 2.在臨時目錄下建立一個檔案,檔名為a.txt ① mkdir /home/student/tmp ② touch /home/student/tmp/a.txt 3.將a.txt複製成b.txt;將b.txt改名為c.txt ①cp /home/student/tmp/a.txt /home/student/tmp/b.txt ②mv /home/student/tmp/b.txt /home/student/tmp/c.txt 4.為c.txt建立符號連結,連結檔名為linkc.txt ln -s /home/student/tmp/c.txt /home/student/tmp/linkc.txt 5.使用gzip壓縮建立/etc的歸檔,將檔案另存 為/home/student/tmp/etc.tar.gz tar -czvf /home/student/tmp/etc.tar.gz /etc 6.將壓縮的歸檔檔案解壓到/backups目錄 tar -xzvf /home/student/tmp/etc.tar.gz -C backups 7.刪除tmp目錄 rm -rf /home/student/tmp