linux nobody是啥使用者

2022-11-14 22:01:26

在linux中,nobody是一個匿名使用者,非特權使用者,只能存取伺服器上的公共內容。使用nobody使用者名稱的「目的」是:使任何人都可以登入系統,但是其UID和GID不提供任何特權,即該uid和gid只能存取人人皆可讀寫的檔案。因為預設登入shell是「/sbin/nologin」,所以nobody使用者是無法直接登入系統的,也就是駭客很難通過漏洞連線到你的伺服器來做破壞。

程式設計師必備介面測試偵錯工具:

本教學操作環境:linux7.3系統、Dell G3電腦。

Windows系統在安裝後會自動建立一些使用者帳戶,在Linux系統中同樣有一些使用者帳戶是在
系統安裝後就有的,就像Windows系統中的內建帳戶一樣。

它們是用來完成特定任務的,比如nobody和ftp等,我們存取LinuxSir.Org的網頁程式時,官網的伺服器就是讓客戶以'nobody'身份登入的(相當於Windows系統中的匿名帳戶);

我們匿名存取ftp時,會用到使用者ftp或nobody。

Unix/Linux系統下的nobody使用者是什麼?

nobody是一個普通使用者,非特權使用者。 使用nobody使用者名稱的'目的'是,使任何人都可以登入系統,但是其 UID 和 GID 不提供任何特權,即該uid和gid只能存取人人皆可讀寫的檔案。

許多系統中都按慣例地預設建立一個nobody,儘量'限制它的許可權至最小',當伺服器向外服務時,可能會讓client以nobody的身份登入。

nobody就是一個普通賬戶,因為預設登入shell是'/sbin/nologin',所以這個使用者是無法直接登入系統的,也就是駭客很難通過漏洞連線到你的伺服器來做破壞。此外這個使用者的許可權也給設定的很低。因此有比較高的安全性。一切都只給最低許可權。這就是nobody存在的意義。

Unix/Linux系統下使用者shell為/sbin/nologin是什麼意思?

如果一個使用者的預設shell設定為/sbin/nologin 則這個使用者是禁止登陸系統的;

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

比如日常可以將 nginx mysql php-fpm這些應用的使用者預設shell設定為/sbin/nologin

主要是提升系統安全性

系統賬號的shell使用 /sbin/nologin ,此時無法登陸系統,即使給了密碼也不行。

所謂「無法登陸」指的僅是這個使用者無法使用bash或其他shell來登陸系統而已,並不是說這個賬號就無法使用系統資源。舉例來說,各個系統賬號中,列印作業有lp這個賬號管理,www伺服器有apache這個賬號管理,他們都可以進行系統程式的工作,但就是無法登陸主機而已。

有時候有些服務,比如郵件服務,大部分都是用來接收主機的郵件而已,並不需要登陸。假如有賬號試圖連線我的主機取得shell,我們就可以拒絕。

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

例如:

 #touch /etc/nologin
登入後複製

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

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

例如,在 /etc/nologin檔案中加入以下內容:

#vi /etc/nologin
disable login by admin temperarily!
登入後複製

當使用者試圖登陸時,將會給使用者顯示"disable login by admin temperarily!",當系統維護結束以後,再刪除/etc/nologin檔案,其他使用者就又可以恢復登陸了,這只是限於能登陸shell的使用者來說的

對於那些登陸shell為/sbin/nologin的使用者來說沒有影響,因為他們本身就無法登陸shell。

另外,如果我想要讓某個具有 /sbin/nologin 的使用者知道,他們不能登陸主機時,可以新建 /etc/nologin.txt 這個檔案,在檔案內面寫上不能登陸的原因,當使用者登入時,螢幕上就會出現這個檔案裡面的內容。

例如:

 #vi /etc/nologin.txt
 This account is system account or mail account.
 #su - mail
登入後複製

會提示"This account is system account or mail account."

補充:

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

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

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

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

總結:

  • nobody是linux/unix系統下的匿名使用者,只能存取伺服器上的公共內容

  • /sbin/nologin是linux/unix系統下的一種shell設定項對於登陸shell為/sbin/nologin的使用者是不允許登入系統的

  • /etc/nologin.txt只針對shell為/sbin/nologin的使用者

  • /etc/nologin可以理解為針對所有普通使用者

相關推薦:《Linux視訊教學

以上就是linux nobody是啥使用者的詳細內容,更多請關注TW511.COM其它相關文章!