本文的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用户本地登录和远程登录的方法。