在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其它相關文章!