linux系統中與使用者管理相關的檔案解讀

2021-10-06 22:59:13 字數 3005 閱讀 5005

使用者的家目錄

每個使用者在登入linux系統時,必須有乙個預設的登入位置,該使用者對這個目錄一定的許可權,我們把這個目錄稱作使用者的家目錄。普通使用者的家目錄位於/home/下,目錄名和使用者名稱相同。例如,lamp 使用者的家目錄就是/home/lamp/,這個目錄的許可權如下:

[root@localhost ~]

# ll -d /home/lamp/

drwx------. 2 lamp lamp 62 mar 18

12:22 /home/lamp/

目錄的屬主是lamp使用者,屬組是lamp使用者組,許可權是700,lamp 使用者對/home/lamp/家目錄擁有讀、寫和執行許可權。

超級使用者的家目錄位於/下。例如,超級使用者的家目錄就是/root/,這個目錄的許可權如下:

[root@localhost ~]

# ll -d /root/

dr-xr-x---. 2 root root 167 mar 18

15:20 /root/

在linux中,家目錄用「~」表示,當前命令的提示符是「[root@localhost ~]」,表示當前所在目錄就是家目錄。而我當前是超級使用者,所以我的家目錄就是/root/。

使用者郵箱目錄

在建立每個使用者的時候,系統會預設給每個使用者建立乙個郵箱。這個郵箱在/var/spool/mail/目錄中,如lamp使用者的郵箱就是/var/spool/mail/lamp。

使用者模板目錄

剛剛我們說了每個使用者都有乙個家目錄,比如lamp使用者的家目錄就是/home/lamp/,我們進入這個目錄,看看裡面有什麼內容。

[root@localhost ~]

# ll /home/lamp/

total 0

這個使用者因為是新建立的,所以家目錄中中沒有儲存任何檔案,是空的。但真的是空的嗎?有沒有隱藏檔案呢?我們再來看看。

[root@localhost ~]

# ls -a /home/lamp/

... .bash_logout .bash_profile .bashrc

原來這個目錄中還是有檔案的,只不過這些檔案都是隱藏檔案。那麼這些檔案都是做什麼的?是從**來的呢?這些檔案都是當前使用者lamp的環境變數配置檔案,這裡儲存的都是該使用者的環境變數引數。那麼,什麼是環境變數配置檔案呢?我們這麼說吧,在windows中雖然只有一台計算機,但是如果使用不同的使用者登入,那麼每個使用者的操作環境(如桌面背景、解析度、桌面圖示)都是不同的。因為每個使用者的操作習慣不同,所以windows執行使用者自行定義的操作環境。在linux 中可以嗎?當然可以,只不過windows是通過更直觀的圖形介面來進行設定和調整的,而linux是通過檔案來進行調整的。我們將這些根據使用者習慣調整作業系統環境的配置檔案稱作環境變數配置檔案。/home/lamp/目錄中的這些環境變數配置檔案所定義的操作環境只對lamp使用者生效,其他每個使用者的家目錄中都有相應的環境變數配置檔案。

那麼,這些環境變數配置檔案都是從**來的呢?其實有乙個模板目錄,這個模板目錄就是/etc/skel/目錄,每建立乙個使用者,系統會自動建立乙個使用者家目錄,同時把模板目錄/etc/skel/中的內容複製到使用者家目錄中。我們看/etc/skel/目錄中有些什麼內容。

[root@localhost ~]

# ll -a /etc/skel/

total 24

drwxr-xr-x. 2 root root 62 jan 9

18:11 .

drwxr-xr-x. 74 root root 8192 mar 18

13:59 ..

-rw-r--r--. 1 root root 18 aug 8

2019 .bash_logout

-rw-r--r--. 1 root root 193 aug 8

2019 .bash_profile

-rw-r--r--. 1 root root 231 aug 8

2019 .bashrc

是不是和/home/lamp/目錄中的內容一致呢?我們做乙個實驗,在/etc/skel/目錄中隨意建立乙個檔案,我們看看新建立的使用者的家目錄中是否也會把這個檔案複製過來。

[root@localhost ~]

# touch /etc/skel/notice.txt

#建立乙個notice.txt檔案

[root@localhost ~]

# ls -a /etc/skel/

... .bash_logout .bash_profile .bashrc notice.txt

#檢視skel目錄,可以看到除了環境變數配置檔案後,多出了我們建立的notice.txt檔案

[root@localhost ~]

# useradd user1

#新建乙個使用者user1

[root@localhost ~]

# ls -a /home/user1/

... .bash_logout .bash_profile .bashrc notice.txt

#進入我們新建立的user1使用者家目錄,看到多除了乙個notice.txt檔案

這樣大家就明白模板目錄的作用了吧。如果需要讓每個使用者的家目錄中都有某個目錄或檔案,就可以修改模板目錄。

總結一下: linux系統中和使用者相關的檔案主要有7個。其中4個是使用者配置檔案,分別是/etc/passwd、/etc/shadow、/etc/group、/etc/gshdow。這幾個檔案主要定義了使用者的相關引數,我們可以通過手工修改這幾個檔案來建立或修改使用者的相關資訊,當然也可以通過命令修改。還有3個檔案是使用者管理相關檔案,分別是使用者的家目錄、使用者郵箱目錄、使用者模板目錄,這些目錄在建立使用者的時候都會起到相應的作用,一般不需要修改。

前面我們講了使用者相關檔案,如果要新增或刪除使用者,則通過手工修改配置檔案的方件的方法也是可以的。但是這樣做太麻煩了,linux 系統為我們準備了完善的使用者管理命令,我們現在來學習一下這些命令吧。

Linux系統中的使用者管理

使用者 3a機制 3a機制組成系統中最底層的安全架構 使用者組 由於電腦對數字敏感,所以針對電腦的存在方式就是使用者和使用者組的id 人類對字串敏感,所以針對人類的存在方式就是使用者及使用者組的名稱 id 名稱 root westoslinux id 檢視使用者id資訊 root westoslin...

Linux系統使用者與使用者組管理

一 使用者和使用者組的管理 1.新增組 groupadd 命令 格式 groupadd 組名 2.刪除組 groupdel 格式 groupdel 組名 3.增加用使用者命令 useradd 格式 useradd 使用者名稱 u 表示自定義uid。g 表示使新增使用者屬於已經存在的某個組,後面可以跟...

linux 系統使用者與使用者組管理

關於 etc passwd和 etc shadow etc passwd 第1個字段為使用者名稱 第一行中的root就是使用者名稱 第2個字段存放的是該賬號的口令。第3個字段為乙個數字,這個數字代表的使用者識別符號,也稱uid 這裡的0就是root 第4個字段也是數字,表示組識別符號,也稱為gid ...