• 在创建各种云主机的时候,云服务商给的都是root用户,这很方便,但是有某些时候会造成一些困扰,日后在服务器上启动各种服务后,仅仅拥有root权限的用户才能访问更改这些服务,这样会造成一些不必要的困扰,而且也不安全。出于安全考虑,以及日后服务器的多用户管理,应该在一开始就对服务器的root用户进行禁用,仅使用sudo命令来执行某些root才能执行的命令。
  1. 工具准备:Linux云主机,SSH工具
  2. 创建拥有sudo权限的用户
    1. 注意 :在阻止对root帐户的访问之前,请确保已使用useradd命令创建了一个管理帐户,该帐户能够使用sudo命令获取root用户权限,并为该用户帐户提供强密码。 标志-m表示创建用户的主目录, -c表示注释:

       # useradd -m -c "Admin User" admin
      # passwd admin
    2. 接下来,使用usermod命令将此用户添加到适当的系统管理员组,其中开关-a表示附加用户帐户, -G指定用于添加用户的组(wheel或sudo,具体取决于您的Linux发行版):
       # usermod -aG wheel admin    #CentOS/RHEL
      # usermod -aG sudo admin #Debian/Ubuntu
    3. 创建具有管理权限的用户后,请切换到该帐户以阻止root访问。
       # su admin
  3. 更改root用户的Shell
    1. 禁用root用户登录的最简单方法是将其shell从/bin/bash/bin/bash (或允许用户登录的任何其他shell)更改为/etc/passwd文件中的/sbin/nologin ,您可以使用您喜欢的任何命令行编辑器打开进行编辑,如图所示。

       $ sudo vim /etc/passwd

      编辑保存

       root:x:::root:/root:/bin/bash
      to
      root:x:::root:/root:/sbin/nologin

      保存文件并关闭它。

      从现在开始,当root用户登录时,他/她将收到消息“ 此帐户当前不可用。 “这是默认消息,但是,您可以更改它并在文件/etc/nologin.txt中设置自定义消息。此方法仅对需要用于用户登录的shell的程序有效,否则,sudo,ftpemail客户端可以访问root帐户。

  4. 通过控制台设备(TTY)禁用root登录
    1. 第二种方法使用名为pam_securettyPAM模块,只有当用户登录“ 安全”TTY时才允许root访问,如/etc/securetty中的列表所定义。

      上述文件允许您指定允许root用户登录的TTY设备,清空此文件可防止在连接到计算机系统的任何设备上进行root登录。

      要创建空文件,请运行。

       $ sudo mv /etc/securetty /etc/securetty.orig
      $ sudo touch /etc/securetty
      $ sudo chmod /etc/securetty

      此方法有一些限制,它只影响登录,显示管理器(即gdm,kdmxdm)等程序以及启动TTY的其他网络服务。 诸如su,sudo,ssh和其他相关openssh工具之类的程序将可以访问root帐户。

  5. 禁用SSH root登录
    1. 访问远程服务器或VPS的最常用方法是通过SSH并阻止其下的root用户登录,您需要编辑/etc/ssh/ sshd_config文件。

       $ sudo vim /etc/ssh/sshd_config

      然后取消注释(如果它被注释)指令PermitRootLogin并将其值设置为no ,如屏幕截图所示。

    2. 在SSh中禁用Root登录

      完成后,保存并关闭文件。 然后重新启动sshd服务以应用最近的配置更改。

       $ sudo systemctl restart sshd
      OR
      $ sudo service sshd restart

      您可能已经知道,此方法仅影响openssh工具集,ssh,scp,sftp等程序将被阻止访问root帐户。

  6. 通过PAM限制root用户登录
    1. 可插拔认证模块 (简称PAM )是Linux系统上集中,可插拔,模块化和灵活的认证方法。 PAM通过/lib/security/pam_listfile.so模块,可以极大地灵活地限制特定帐户的权限。

      上述模块可用于引用不允许通过某些目标服务(如login,ssh和任何PAM感知程序)登录的用户列表。

      在这种情况下,我们希望通过限制对login和sshd服务的访问来禁用对系统的root用户访问。 首先在/etc/pam.d/目录中打开并编辑目标服务的文件,如图所示。

      $ sudo vim /etc/pam.d/login
      OR
      $ sudo vim /etc/pam.d/login

      接下来,在两个文件中添加以下配置。

      auth    required       pam_listfile.so \
      onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers

      完成后,保存并关闭每个文件。 然后创建普通文件/etc/ssh/deniedusers ,每行应包含一个项目,而不是世界可读的。

      在其中添加名称root,然后保存并关闭它。

      $ sudo vim /etc/ssh/deniedusers

      还要为此设置所需的权限。

      $ sudo chmod  /etc/ssh/deniedusers

      此方法仅影响支持PAM的程序和服务。 您可以通过ftp和电子邮件客户端等阻止对系统的root访问。

      有关更多信息,请参阅相关手册页。

    2. $ man pam_securetty
      $ man sshd_config
      $ man pam

Linux禁用root用户的更多相关文章

  1. REDHAT一总复习1 ssh配置 禁用root用户SSH连接

    生成SSH公钥 $ ssh-keygen 生成的公钥安装到指定的服务器上,这里安装到desktop0上的student账户 $ ssh-copy-id desktop0 $ su - 禁用root用户 ...

  2. Linux系统root用户忘记密码解决方法

    一:在linux系统启动时(如下图),按e键 二:进入到设置页面,定位到如下行: 三:按e键,进入输入界面 四:在编辑行最后面,空格,输入single,回车后回到第二步界面,只是后面多了single ...

  3. 破解Linux系统root用户密码

    linux系统的启动过程  在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程 开机自检(POST),初始化部分硬件 搜素可用于引导的启动设备(如磁盘的MBR) 读取并将控制权 ...

  4. Linux禁用root账户ssh登录

    前言 今天登录服务器的时候,控制台输出如下信息 There were 48990 failed login attempts since the last successful login. Last ...

  5. 【Hadoop系列】linux下 root用户免密码登录远程主机 ssh

    SSH原理:[Hadoop系列]linux SSH原理解析 操作环境: CentOS 6.5 操作对象: 用户A主机和远程主机B 正文部分:斜体加粗代表linux指令. linux下 非root用户免 ...

  6. Linux中root用户找不到JAVA_HOME

    Linux中root用户找不到JAVA_HOME   在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubunt ...

  7. KingbaseES V8R6C5禁用root用户ssh登录图形化部署集群案例

    案例说明: 对于KingbaseES V8R6C5版本在部集群时,需要建立kingbase.root用户在节点间的ssh互信,如果在生产环境禁用root用户ssh登录,则通过ssh部署会失败:在图形化 ...

  8. Ubuntu Linux启用root用户登录

    Ubuntu Linux有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起.对于其他Linux系统来 说,一般在安装过程就设定root密码,这样 ...

  9. linux非root用户执行开机启动程序

    问题 开机启动其他用户的程序或者说非root用户执行开机启动 编写开机启动脚本 编写开机启动脚本apple_tree,放到/etc/init.d,系统启动时会自动执行. 例如,/etc/init.d/ ...

随机推荐

  1. STM32调试总结

    1.卡死在这里的问题:没有中断处理函数,程序无法进入中断处理函数.DMA2_Channel3_IRQHandlerDMA2_Channel4_IRQHandlerDMA2_Channel5_IRQHa ...

  2. 快速掌握zabbix配置

    有人说zabbix难点在配置,面对很多的配置项,不知道所以然了,其实我觉得这是没掌握好zabbix的学习方法,要掌握了zabbix的学习思路,可以在一个小时内快速掌握zabbix的各种配置,下面我将重 ...

  3. 【CSS】346- 你所不知道的 CSS 阴影技巧与细节

    偷懒了1个多礼拜,在工作饱和的情况下,怎么坚持学习?今天的分享来自@Coco国服第一切图仔,我们聊聊CSS属性box-shadow- 关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 ...

  4. Vue中slot插槽的使用

  5. Ubuntu上面安装sqlite3可视化数据库软件

    .介绍:sqlite 3是linux上的小巧的数据库,一个文件就是一个数据库. 2.安装:要安装sqlite 3,可以在终端提示符后运行下列命令: sudo apt-get install sqlit ...

  6. ESD选型

    通常情况ESD保护电路如下 当系统没有干扰,正常工作时,ESD器件可以忽略,几乎不起作用 当外部接口电压超过ESD器件的击穿电压(VBR),ESD器件开始起作用,并将电流分流到地. 实际ESD器件的工 ...

  7. Cesium案例解析(二)——ImageryLayers影像图层

    目录 1. 概述 2. 实例 2.1. ImageryLayers.html 2.2. ImageryLayers.js 2.2.1. 代码 2.2.2. 解析 3. 结果 1. 概述 Cesium支 ...

  8. 去掉 Idea 中注入 Mapper 警告的方法

    使用 Idea 的时候,自动装配 Mybatis 的 mapper.会一直出现红色波浪线的警告.看着难受.下面提供几种方式 方式一 为 @Autowired 注解设置required = false ...

  9. SpringBoot内容聚合

    分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复 “Springboot聚合” SpringBoot+Mybatis多模块(module)项目搭 ...

  10. Python实现的手机信息骚扰技术,切勿用作违法!

    今天我来讲讲我最近找到的一个小思路,利用python进行短信轰炸 首先 这是一个网站,他的业务存在短信发送 这个时候,我们打开神器burp或者其他抓包工具(最好用burp,因为repeater模块可以 ...