限制 root 远程登录

平时登录 Linux 系统中,都是使用 root 用户的身份登录的。实际上,使用 root 登录是有一定的危险性。假如 root 用户没有使用密钥而是使用密码登录,密码设置简单容易被破解,设置复杂自己也记不住,存放在第三方还是有被窃取的风险。密码丢失会导致其他用户可以远程登录 root 用户,存在风险。
所以安全起见,可以禁止 root 远程登录,本地 root 登录是禁止不了的。现在可以设置为只允许登录普通用户,普通用户要想拿到一些 root 用户的权限,可以使用 su 和 sudo 命令,来实现临时切换 root 用户,而无法知道 root 用户密码。具体操作是把 su 命令放到 sudo 命令列表里面,之后就可以使用 sudo 命令远程使用 root 权限。
简单来说一下限制 root 远程登录的逻辑:
因为 root 用户无法登录,所以先登录到普通用户里,再 su 切换到 root 用户下面,这时候就需要输入 root 用户密码,而密码又是不知道的。而在 root 用户下面切换到 root 是不需要密码的,见下图,
限制 root 远程登录
输入命令 visudo ,进入编辑模式,在 User_Alias 下面增加一条设置,见下图,
限制 root 远程登录
然后在下面继续设定一个规则,见下图,
限制 root 远程登录
保存退出后,见下图,
限制 root 远程登录
先切换到普通用户 lys ,再切换到 root 用户,这时候就可以不输入密码登录了。
以上操作的前提是远程登录 root 。不过这个 ALL 权限有点大,可以直接更改 root 密码,然后直接登录 root 用户。这还是不行的,所以需要限制 root 用户远程登录的功能。输入命令 vi /etc/ssh/sshd_config ,回车,见下图,
限制 root 远程登录
这边直接输入“/”,后面加查找内容,就可以查找。输入“/Root”,回车,
限制 root 远程登录
我们需要的是上图红色框框的内容,将前面的 # 号删除,yes 改为 no ,见下图,
限制 root 远程登录
接着保存后退出。改完配置文件后,需要重启网络服务,输入命令 systemctl restart sshd.service ,回车即可。然后重新打开一个服务器 PuTTY ,看看还能不能登录,见下图,
限制 root 远程登录
可以看出不能登录,而且输入了 root 密码也还是不能登录。接着在 PuTTY 上登录用户 lys ,见下图,
限制 root 远程登录
可以登录普通用户 lys ,访问目录 /root/ 被拒绝,切换用户 root 的时候,提示需要输入密码,我们这边假定是不知道 root 密码的,所以最后使用 sudo 命令就可以成功登录 root 用户。
以上说明限制 root 远程登录成功了。为了以后方便做实验,还是要把远程登录限制去掉的。
限制 root 远程登录
输入命令 vi /etc/ssh/sshd_config ,回车,恢复上图内容,保存后退出,输入命令 systemctl restart sshd.service ,回车即可重启网络。然后 PuTTY 上就可以重新登录 root 了。
限制 root 远程登录

转载于:https://blog.51cto.com/13503302/2058125

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种流行的开源数据库管理系统,管理员帐户root可以拥有完全的访问权限,包括允许从任何远程主机连接到MySQL服务器。 然而,出于安全考虑,应该对root用户实施访问限制,以保护您的数据库系统免受非法访问和攻击。 MySQL提供了一种简单的方法来限制root用户的远程登录。这可以通过以下两种方法之一实现: 1. 修改MySQL服务器配置文件my.cnf: 用户可以通过编辑my.cnf配置文件来禁用root用户的远程访问。 ``` # vim /etc/mysql/my.cnf ``` 找到[mysqld]部分,加入一行: ``` bind-address = 127.0.0.1 ``` 这个选项会强制MySQL服务器只监听本地IP地址127.0.0.1的连接,这意味着root用户只能从本地主机登录MySQL,而无法从远程主机访问。保存并退出配置文件,然后重启MySQL服务。 ``` # systemctl restart mysql ``` 2. 删除root用户的远程访问权限: 用户可以在MySQL命令行中通过执行以下命令来删除root用户的远程访问权限: ``` # mysql -u root -p Enter password: ``` 进入MySQL命令行后,运行以下命令: ``` mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'root'@'%'; mysql> DELETE FROM mysql.user WHERE User='root' AND Host='%'; mysql> FLUSH PRIVILEGES; mysql> exit; ``` 这些命令将取消root用户所有数据库的权限,并删除所有具有远程主机连接权限的root用户。然后刷新它们的权限设置并退出MySQL命令行。这会禁用root用户的远程访问权限。 尽管在MySQL中限制root用户的远程访问权限可以增加数据库的安全性,但是如果必须从远程主机访问数据库,您可以在MySQL中创建一个非root用户,授予他们最低限度的安全权限来进行数据库的操作。这样可以保护数据库免受潜在的安全威胁,同时保持正确的访问权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值