本文的Linux操作系統運行在Cortex-A8的硬件之上,其為我們公司的一款產品,為了保護產品的安全,我們限制了root用戶的本地登錄和遠程登錄權限。
一、禁止root本地登錄:
方法: 在/etc 目錄下創建文件 securetty,即 touch /etc/securetty
原因:本地登錄login會讀取文件/etc/login.defs, 該文件65 - 70行的內容如下
# If defined, either full pathname of a file containing device names or a ":" delimited list of device names. Root logins will be allowed only upon these devices.
CONSOLE /etc/securetty
#CONSOLE console:tty01:tty02:tty03:tty04
創建securetty文件即可。該段英文釋義本人不是很理解,希望能看懂的朋友解釋一下。
二、禁止root遠程登錄:
1. 首先考慮目標板能夠被遠程登錄是使用了ssh服務,本產品已經有ssh服務,故不需要移植,若沒有ssh服務還需要移植。
2.本產品移植的ssh服務為dropbear, 它是一款輕量級的ssh服務
3.方法:該服務是由腳本啟動,查看/etc/init.d/dropbear 文件,發現第77行對應root登錄權限,且最后參數為1, 將其改為0發現正好實現了功能,將
# F) root login
config_get_bool val "${section}" RootLogin 1
修改為
# F) root login
config_get_bool val "${section}" RootLogin 0
啟動ssh服務:
/etc/init.d/dropbear restart
即可。
若ssh服務為openssh,則在/etc/ssh/sshd_config文件下將
#PermitRootLogin yes
改為
PermitRootLogin no
即可
綜上為限制root用戶本地登錄和遠程登錄的方法。