小編給大家分享一下Linux下如何禁用Root登陸,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司專注于延邊朝鮮族企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。延邊朝鮮族網(wǎng)站建設(shè)公司,為延邊朝鮮族等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
1. 修改 Root 用戶的登陸 Shell
我們可以通過編輯 /etc/passwd 文件將 Root 用戶的登陸 Shell 改為 /sbin/nologin。
$ sudo vim /etc/passwd root:x:0:0:root:/root:/bin/bash to root:x:0:0:root:/root:/sbin/nologin
此后,使用 Root 用戶登陸只會(huì)顯示一條信息 “This account is currently not available”。 當(dāng)然你也可以通過修改 /etc/nologin.txt 來自定義出錯(cuò)信息。
這種方法只能禁止那些需要 Shell 用戶的登陸場(chǎng)景,但像 Sudo、FTP 之類的操作依然可以使用 Root 賬戶。
2. 禁止 Root 用戶在任何終端設(shè)備上登陸
Linux 下 PAM 模塊中有一個(gè)叫做 pam_securetty 的模塊,它可以限定 Root 用戶只能在安全終端上登陸。
而所謂的安全終端由 /etc/securetty 來決定,該文件由包含數(shù)行 tty 設(shè)備名(每行一個(gè)設(shè)備名,前面不加 /dev/ ),只有這些設(shè)備名才可允許 Root 用戶登錄。
因此,我們可以通過清空安全終端列表的方式來禁止 Root 用戶登陸。
$ sudo mv /etc/securetty /etc/securetty.orig $ sudo touch /etc/securetty $ sudo chmod 600 /etc/securetty
這種方法只會(huì)影響需要分配終端的程序,比如 login,gdm/kdm/xdm 之類的顯示管理器等, 像 Su、Sudo、SCP、SFTP、SSH 之類的操作則無效。
3. 禁止 Root 用戶通過 SSH 登陸
修改 SSH 的配置文件 /etc/ssh/sshd_config,在其中加上 PermitRootLogin no 配置項(xiàng)。
然后,再重啟 SSHD 服務(wù)讓配置生效。
$ sudo systemctl restart sshd OR $ sudo service sshd restart
很明顯,這種方法只會(huì)影響 SSH、SCP、SFTP 之類的 SSH 系列工具。
4. 通過 PAM 模塊禁止 Root 用戶訪問 Login 和 SSHD 服務(wù)
我們可以通過 /lib/security/pam_listfile.so 模塊來限定指定用戶禁止訪問某些服務(wù)。其步驟如下:
創(chuàng)建一個(gè)需要禁止訪問用戶的文件,如:/etc/deniedusers。其中加上 Root 或任意不想讓它訪問服務(wù)的用戶名。
$ sudo echo root |tee -a /etc/deniedusers
設(shè)置這個(gè)文件的權(quán)限。
$ sudo chmod 600 /etc/ssh/deniedusers
在 /etc/pam.d/login 或 /etc/pam.d/sshd 文件中加上如下的配置。
auth required pam_listfile.so \ onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers
以上是“Linux下如何禁用Root登陸”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!