介绍

root账号 是 Linux 和其他类 Unix 操作系统上的超级帐户。此帐户可以访问系统上的所有命令和文件,并具有完全读取、写入和执行权限。它用于在系统上执行任何类型的任务;create/update/access/delete其他用户的帐户,install/remove/upgrade软件包。

root用户拥有绝对权力,执行的任何操作都对系统至关重要。在这方面,任何错误由root用户可能对系统的正常运行产生巨大影响。此外,该帐户也可能因意外、恶意或人为无视规则而被不当或不当使用而被滥用。

因此,建议禁用 Linux 服务器中的 root 访问权限,而是创建一个管理帐户,该帐户应配置为使用sudo 命令获得 root 用户权限,以在服务器上执行关键任务。

禁止访问 root帐户之前,确保你已经创建了一个管理帐户,能够使用sudo 命令获得 root 用户权限,使用useradd 命令并为此用户帐户提供强密码。该标志-m表示创建用户的主目录并-c允许指定注释:


# useradd -m -c "Admin User" admin
# passwd admin

接下来,使用usermod 命令将此用户添加到适当的系统管理员组,其中开关-a表示追加用户帐户并-G指定一个组以将用户添加到(wheel 或 sudo 取决于你的 Linux 发行版):


# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu

创建具有管理权限的用户后,切换到该帐户以阻止 root 访问。
#su admin

1.更改root用户的Shell

禁用 root 用户登录的最简单方法是将其 shell 从/bin/bash或/bin/bash(或任何其他允许用户登录的 shell)更改为/sbin/nologin, 在/etc/passwd 文件,你可以使用任何你喜欢的命令行编辑器打开该文件进行编辑

> vim /etc/passwd

更改行:

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

当 root 用户登录,将收到消息This account is currently not available. 这是默认消息,但是,你可以更改它并在文件中设置自定义消息 /etc/nologin.txt.

此方法仅对需要 shell 进行用户登录的程序有效 sudo, ftp 和 email 客户端可以访问 root 帐户。

2. 通过控制台设备 (TTY) 禁用 root 登录

第二种方法使用 PAM 模块调用 pam_securetty,仅当用户登录secure TTY,如列表中所定义 /etc/securetty.

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

创建一个空文件

> mv /etc/securetty /etc/securetty.orig
> touch /etc/securetty
> chmod 600 /etc/securetty

这种方法有一定的局限性,它只影响登录、显示管理器(即 gdm, kdm 和 xdm) 和其他启动 TTY 的网络服务。su、sudo、ssh 等程序以及其他相关的openssh 工具都可以访问root 帐户。

3. 禁用 SSH Root 登录

访问远程服务器或 VPS 的最常见方式是通过 SSH 并阻止 root 用户在其下登录,你需要编辑 /etc/ssh/sshd_config 文件。

> vim /etc/ssh/sshd_config

然后取消注释(如果已注释)该指令 PermitRootLogin并将其值设置为no

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

> systemctl restart sshd
OR
> service sshd restart

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

4. 通过 PAM 限制对服务的根访问

Pluggable Authentication Modules (PAM简而言之)是一种在 Linux 系统上的集中式、可插拔、模块化和灵活的身份验证方法。PAM,通过/lib/security/pam_listfile.so 模块,在限制特定帐户的权限方面具有很大的灵活性。

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

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

> vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

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

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

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

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

> vim /etc/ssh/deniedusers

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

> chmod 600 /etc/ssh/deniedusers

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

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


$ man pam_securetty
$ man sshd_config
$ man pam

参考链接 :

linux中禁用Root帐户的4种方法

https://mp.weixin.qq.com/s/QS566tO5VQuuyp3elmTOxw

linux中禁用Root帐户的4种方法相关推荐

  1. linux关闭root权限管理,如何在Ubuntu中启用和禁用root帐户?

    在Ubuntu Linux中,出于安全原因,默认情况下是禁用root帐户的.下面本篇文章就来带大家了解一下在在Ubuntu中启用和禁用root帐户的方法,希望对大家有所帮助. Sudo用户 Ubunt ...

  2. 在Linux中查找用户帐户信息和登录详细信息的11种方法

    本文将介绍 11 种在 Linux 系统查找用户相关信息的有用方法.这里,我们会讲解在系统中获取一个用户账户详细信息.展示登录详细信息以及用户行为数据的命令. 如果你想要在 Linux 中添加用户,可 ...

  3. 热备用冷备用_个性化您的备用帐户的10种方法

    热备用冷备用 Slack is a popular communication service primarily used in workplace environments. The defaul ...

  4. 在 Linux 中查找用户帐户和登录详细信息的 11 种方法

    本文将介绍 11 种在 Linux 系统查找用户相关信息的有用方法.这里,我们会讲解在系统中获取一个用户账户详细信息.展示登录详细信息以及用户行为数据的命令. 首先,我们会来看看如何使用命令查找一个用 ...

  5. linux限制root用户访问权限,Linux中限制用户访问权限的3种方法

    现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中.现实情况下,还是能遇到这样的需求的,比如说ubuntu下有多个可登录用户,默认情况下,用户A的工作目录( ...

  6. Linux 中识别 USB 设备名字的 4 种方法

    对于初学者来说,在 Linux 系统里你必须掌握的技术之一就是识别出插入系统里的各种设备.这也许是你的系统硬盘.外部的存储设备或者是可移动设备,比如 USB 设备或 SD 闪存卡等. 现如今,使用 U ...

  7. linux中usb设备名,Linux 中识别 USB 设备名字的 4 种方法

    摘要: 对于初学者来说,在 Linux 系统里你必须掌握的技术之一就是识别出插入系统里的各种设备.这也许是你的系统硬盘.外部的存储设备或者是可移动设备,比如 USB 设备或 SD 闪存卡等. 现如今, ...

  8. linux 服务器访问限制,Linux中限制用户访问权限的3种方法

    现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中.现实情况下,还是能遇到这样的需求的,比如说ubuntu下有多个可登录用户,默认情况下,用户A的工作目录( ...

  9. Linux中ps配合Kill进程的N种方法

    常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal smx ...

最新文章

  1. Java算法练习——正则表达式匹配
  2. win 安装Polygon
  3. 黑马程序员C语言基础(第五天)运算符与表达式、程序流程结构、数组和字符串、函数
  4. java switch char_Java7中Switch为什么只支持byte、short、char、int、String
  5. oracle使用游标批量删除数据,oracle 游标批量处理数据
  6. 如何通过细节来看业务流程ERP管理系统的成熟度?
  7. 书写程序时应遵循的规则_您可能在计算自由职业者率时全错了,因此请遵循此策略...
  8. cad用计算机怎么计算坐标,CAD如何快速计算出图纸中任意点的坐标值
  9. oracle rman异地备份,通过RMAN磁盘备份进行异地恢复
  10. Badboy工具:简介,安装,脚本录制
  11. 使用APICloud开发物流仓储app项目实践
  12. Spring MVC学习(6)—Spring数据类型转换机制全解【一万字】
  13. PC 护眼模式(凑合用)
  14. 计算机无法检测到键盘,电脑检测不到键盘怎么办
  15. python登录脚本_python实现的登录和操作开心网脚本分享
  16. v36.05 鸿蒙内核源码分析(工作模式) | 程序界的韦小宝是谁 | 百篇博客分析HarmonyOS源码
  17. AE 图层分解与动画循环
  18. C# Newtonsoft.Json
  19. 院士任校长!“东方理工大学” 正式开工!
  20. 微信小程序里面的标签和html标签做对比

热门文章

  1. SGD、Adam优化器
  2. 特征工程(六): 非线性特征提取和模型堆叠
  3. LSTM模型实战案例:TensorFlow实现预测3位彩票号码
  4. php视图最佳实践,PHP 的最佳实践
  5. 高二学生学习计算机软件,精选高二信息技术教学计划三篇
  6. android 中的 odex 文件
  7. 设置Activity进入退出动画
  8. iOS申请发布证书-图文详解
  9. innodb_file_format设置
  10. 经典SQL语句大全(1)