Linux禁用root用户
- 在创建各种云主机的时候,云服务商给的都是root用户,这很方便,但是有某些时候会造成一些困扰,日后在服务器上启动各种服务后,仅仅拥有root权限的用户才能访问更改这些服务,这样会造成一些不必要的困扰,而且也不安全。出于安全考虑,以及日后服务器的多用户管理,应该在一开始就对服务器的root用户进行禁用,仅使用sudo命令来执行某些root才能执行的命令。
- 工具准备:Linux云主机,SSH工具
- 创建拥有sudo权限的用户
- 注意 :在阻止对root帐户的访问之前,请确保已使用useradd命令创建了一个管理帐户,该帐户能够使用sudo命令获取root用户权限,并为该用户帐户提供强密码。 标志
-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
- 注意 :在阻止对root帐户的访问之前,请确保已使用useradd命令创建了一个管理帐户,该帐户能够使用sudo命令获取root用户权限,并为该用户帐户提供强密码。 标志
- 更改root用户的Shell
- 禁用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,ftp和email客户端可以访问root帐户。
- 禁用root用户登录的最简单方法是将其shell从
- 通过控制台设备(TTY)禁用root登录
第二种方法使用名为pam_securetty的PAM模块,只有当用户登录“ 安全”TTY时才允许root访问,如/etc/securetty中的列表所定义。
上述文件允许您指定允许root用户登录的TTY设备,清空此文件可防止在连接到计算机系统的任何设备上进行root登录。
要创建空文件,请运行。
$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod /etc/securetty此方法有一些限制,它只影响登录,显示管理器(即gdm,kdm和xdm)等程序以及启动TTY的其他网络服务。 诸如su,sudo,ssh和其他相关openssh工具之类的程序将可以访问root帐户。
- 禁用SSH root登录
- 访问远程服务器或VPS的最常用方法是通过SSH并阻止其下的root用户登录,您需要编辑/etc/ssh/ sshd_config文件。
$ sudo vim /etc/ssh/sshd_config
然后取消注释(如果它被注释)指令PermitRootLogin并将其值设置为
no,如屏幕截图所示。 
在SSh中禁用Root登录
完成后,保存并关闭文件。 然后重新启动sshd服务以应用最近的配置更改。
$ sudo systemctl restart sshd
OR
$ sudo service sshd restart您可能已经知道,此方法仅影响openssh工具集,ssh,scp,sftp等程序将被阻止访问root帐户。
- 访问远程服务器或VPS的最常用方法是通过SSH并阻止其下的root用户登录,您需要编辑/etc/ssh/ sshd_config文件。
- 通过PAM限制root用户登录
可插拔认证模块 (简称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访问。
有关更多信息,请参阅相关手册页。
$ man pam_securetty
$ man sshd_config
$ man pam
Linux禁用root用户的更多相关文章
- REDHAT一总复习1 ssh配置 禁用root用户SSH连接
生成SSH公钥 $ ssh-keygen 生成的公钥安装到指定的服务器上,这里安装到desktop0上的student账户 $ ssh-copy-id desktop0 $ su - 禁用root用户 ...
- Linux系统root用户忘记密码解决方法
一:在linux系统启动时(如下图),按e键 二:进入到设置页面,定位到如下行: 三:按e键,进入输入界面 四:在编辑行最后面,空格,输入single,回车后回到第二步界面,只是后面多了single ...
- 破解Linux系统root用户密码
linux系统的启动过程 在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程 开机自检(POST),初始化部分硬件 搜素可用于引导的启动设备(如磁盘的MBR) 读取并将控制权 ...
- Linux禁用root账户ssh登录
前言 今天登录服务器的时候,控制台输出如下信息 There were 48990 failed login attempts since the last successful login. Last ...
- 【Hadoop系列】linux下 root用户免密码登录远程主机 ssh
SSH原理:[Hadoop系列]linux SSH原理解析 操作环境: CentOS 6.5 操作对象: 用户A主机和远程主机B 正文部分:斜体加粗代表linux指令. linux下 非root用户免 ...
- Linux中root用户找不到JAVA_HOME
Linux中root用户找不到JAVA_HOME 在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubunt ...
- KingbaseES V8R6C5禁用root用户ssh登录图形化部署集群案例
案例说明: 对于KingbaseES V8R6C5版本在部集群时,需要建立kingbase.root用户在节点间的ssh互信,如果在生产环境禁用root用户ssh登录,则通过ssh部署会失败:在图形化 ...
- Ubuntu Linux启用root用户登录
Ubuntu Linux有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起.对于其他Linux系统来 说,一般在安装过程就设定root密码,这样 ...
- linux非root用户执行开机启动程序
问题 开机启动其他用户的程序或者说非root用户执行开机启动 编写开机启动脚本 编写开机启动脚本apple_tree,放到/etc/init.d,系统启动时会自动执行. 例如,/etc/init.d/ ...
随机推荐
- 图形界面GUI
JFrame jframe = new JFrame(); //创建一个窗口 jframe.setVisible(true) //设置窗口显示 jframe.setLocation() //设置窗口位 ...
- CodeForces1006C-Three Parts of the Array
C. Three Parts of the Array time limit per test 1 second memory limit per test 256 megabytes input s ...
- 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口
CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C6801 ...
- 01-使用pipenv管理项目环境
一.使用pipenv管理项目环境 首先为什么我们不在真实环境下做开发呢?真实环境的一些包被其他服务所依赖,我们安装的包和模块都混杂在一起,这样不便于项目管理,还有可能出现意想不到的错误,于是就出现了包 ...
- H5 app在真机调试的时候正常,打包成app后报错
在自己的一个用h5开发的项目中, 环境 IDE HBuilderX 打包工具 Hbuilder线上打包 开发语言 JS 现象 从一个列表进入详细页之后一直转圈圈.因为是调用系统原生的等待组件,界面无法 ...
- 3年Java开发10面阿里、京东、拼多多
拼多多 地点:2号线娄山关路地铁站(金虹桥国际中心) 环境:新的写字楼,环境很好,有种高大上的感觉.大厅进入后需要登记,然后进闸机.电梯是需要刷卡才能使用的.会议室都是用城市名称命名,例如杭州.香港等 ...
- typeof 与 instanceof之间的区别
JS中会使用typeof 和 instanceof来判断一个变量是否为空或者是什么类型的. ES6规范中有7种数据类型,分别是基本类型和引用类型两大类 基本类型(简单类型.原始类型):String.N ...
- 中国 700 万开发者中,370 万在使用 VS Code
近日(2019 年 12 月 10 日 - 11 日),Microsoft Ignite The Tour 北京站圆满落幕. 微软大中华区副总裁.市场营销及运营总经理康容先生,在大会上表示:“在中国 ...
- 《Javascript设计模式与开发实践》--读书笔记
第2章 this call apply bind()方法创建一个新的函数,在bind()被调用时,这个新函数的this被bind的第一个参数指定,其余的参数将作为新函数的参数供调用时使用. bind( ...
- Nginx实现负载均衡时常用的分配服务器策略
场景 Nginx配置实例-负载均衡实例:平均访问多台服务器: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103019576 在 ...