天天看點

linux etc nologin,詳解linux下/etc/nologin檔案的作用

詳解linux下/etc/nologin檔案的作用

釋出:thatboy   來源:Net   【大 中 小】

本文介紹下,linux下的一個特殊檔案/etc/nologin,說說它的作用及應用場合。有需要的朋友參考下。

在linux中,與使用者與密碼相關的檔案有兩個,分别為/etc/passwd和/etc/shadow。

其中/etc/passwd是用來存儲登陸使用者資訊的,基本格式如下:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

每一行代表一個使用者的資訊,一共包括7個字段的資訊,每個字段的資訊用冒号隔開。

這7個字段分别代表:

1. 賬号名稱:即登陸時的使用者名

2. 密碼:早期UNIX系統的密碼是放在這個檔案中的,但因為這個檔案的特性是所有程式都能夠讀取,是以,這樣很容易造成資料被竊取,是以後來就将這個字段的密碼資料改放到/etc/shadow中了

3. UID:使用者ID,每個賬号名稱對應一個UID,通常UID=0表示root管理者

4. GID:組ID,與/etc/group有關,/etc/group與/etc/passwd差不多,是用來規範使用者組資訊的

5. 使用者資訊說明欄: 用來解釋這個賬号是幹什麼的

6. 家目錄:home目錄,即使用者登陸以後跳轉到的目錄,以root使用者為例,/root是它的家目錄,是以root使用者登陸以後就跳轉到/root目錄這裡

7. Shell:使用者使用的shell,通常使用/bin/bash這個shell,這也就是為什麼登陸Linux時預設的shell是bash的原因,就是在這裡設定的,如果要想更改登陸後使用的shell,可以在這裡修改。另外一個很重要的東西是有一個shell可以用來替代讓賬号無法登陸的指令,那就是/sbin/nologin。

登入linux主機,打開/etc/passwd這個檔案,可以看到很多類似上面格式的使用者賬号資訊。

由于機器開放了ftp服務,我的ftp賬戶資訊如下:

lxb:x:530:525::/opt/ftp:/sbin/nologin,

使用者名是lxb,x表示密碼經過加密放到/etc/shadow檔案中了,UID是530,GID是525,通路的目錄是/opt/ftp,請注意這裡的/sbin/nologin。

用root權限登陸到裡面,把後面的/sbin/nologin改成了/bin/bash,重新用ssh進行登陸,真的登陸進去了,而且登陸後的目錄正好是/opt/ftp。

但是權限依舊沒有改變,很多檔案還是打不開。

這個nologin的作用就是限制某些使用者通過ssh登陸到shell上。

有時可以用使用 nologin 檔案臨時禁止其他使用者登入,具體做法是在/etc/目錄下建立一個名稱為 nologin 的檔案。

例如:

複制代碼 代碼示例:

#touch /etc/nologin

這樣将禁止随後的使用者登入到系統中。

禁止使用者登入時,/etc/nologin 檔案中的内容将會顯示給使用者,會一閃而過。

例如,按如下方式建立 nologin 檔案:

disable login by admin temperarily!

當使用者試圖登陸時,将會給使用者顯示"disable login by admin temperarily!",當系統維護結束以後,再删除/etc/nologin檔案,其他使用者就又可以恢複登陸了,這隻是限于能登陸shell的使用者來說的,對于那些登陸shell為/sbin/nologin的使用者來說沒有影響,因為他們本身就無法登陸shell。

補充:

/etc/nologin 和/etc/nologin.txt這兩個檔案的作用并不相同。

當/etc/nologin檔案存在時,則任何一個一般身份帳号在嘗試登入時,都僅會獲得/etc/nologin的内容,而無法直接登入主機。

即當建立/etc/nologin ,并且内容設定為『This Linux server is maintaining....』,則任何嘗試登入者,會看到這些提示内容,而不能登入進系統。

直到删除/etc/nologin檔案後,一般使用者才可以正常登入。