在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視頻教程》