首頁 >運維 >linux運維 >linux nobody是啥用戶

linux nobody是啥用戶

青灯夜游
青灯夜游原創
2022-11-14 18:08:283303瀏覽

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

linux 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是啥用戶的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn