如何在Debian,CentOS和FreeBSD上使用sudo
在Linux和Unix系统管理员中,使用用户访问服务器并在root级执行命令是一种非常普遍的做法。sudo
用户的使用通常是通过禁止对用户服务器的直接root访问来进行的,以防止未经授权的访问。
在本教程中,我们将介绍在CentOS,Debian和FreeBSD上禁用直接root访问,创建sudo用户以及设置sudo组的基本步骤。
先决条件
- 带有首选发行版的新安装的Linux服务器。
- 服务器上安装的文本编辑器,无论是nano,vi,vim,emacs。
步骤1:安装sudo
Debian
apt-get install sudo -y
CentOS的
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
要么
pkg install sudo
步骤2:添加sudo用户
甲sudo
用户是Linux或Unix机器上的一个普通用户帐户。
Debian
adduser mynewusername
CentOS的
adduser mynewusername
FreeBSD
adduser mynewusername
步骤3:将新用户添加到Wheel Group (可选)
Wheel组是一个用户组,它限制了能够su
生根的人数。将您的sudo
用户添加到wheel
组中完全是可选的,但是建议这样做。
注意:在Debian中,sudo
通常会找到而不是wheel
。但是,您可以wheel
使用groupadd
命令手动添加组。就本教程而言,我们将使用sudo
Debian组。
wheel
和之间的区别sudo
。
在CentOS和Debian中,属于该wheel
组的用户可以执行su
并直接升至root
。同时,sudo
用户将使用第sudo su
一个。本质上,除了用于成为root的语法外,没有任何实际区别,并且属于这两个组的用户都可以使用该sudo
命令。
Debian
usermod -aG sudo mynewusername
CentOS的
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
步骤4:确保sudoers
文件设置正确
确保正确设置其中的sudoers
文件很重要/etc/sudoers
,以便sudo users
有效使用该sudo
命令。为此,我们将查看其中的内容/etc/sudoers
并在适用的地方对其进行编辑。
Debian
vim /etc/sudoers
要么
visudo
CentOS的
vim /etc/sudoers
要么
visudo
FreeBSD
vim /etc/sudoers
要么
visudo
注意:该visudo
命令将/etc/sudoers
使用系统的首选文本编辑器(通常为vi或vim)打开。
在此行下开始审阅和编辑:
# Allow members of group sudo to execute any command
该部分的内容/etc/sudoers
通常如下所示:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
在一些系统中,您可能无法找到%wheel
替代的%sudo
; 在这种情况下,这就是您要开始修改的行。
如果未注释掉%sudo
以Debian或%wheel
CentOS和FreeBSD 开头的行(以#开头),则意味着sudo已经设置并启用。然后,您可以转到下一步。
步骤5:允许既不属于wheel
也不属于该sudo
组的用户执行sudo
命令
sudo
只需将两个用户添加到/etc/sudoers
以下用户组中,就可以允许这两个用户组中的用户都不执行命令:
anotherusername ALL=(ALL) ALL
步骤6:重新启动SSHD服务器
为了应用对所做的更改/etc/sudoers
,您需要按以下方式重新启动SSHD服务器:
Debian
/etc/init.d/sshd restart
CentOS的6
/etc/init.d/sshd restart
CentOS的7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
步骤7:测试
重新启动SSH服务器后,注销,然后以身份重新登录sudo user
,然后尝试执行一些测试命令,如下所示:
sudo uptime
sudo whoami
以下任何命令都将使sudo user
成为root
。
sudo su -
sudo -i
sudo -S
笔记:
- 与结合使用时,该
whoami
命令将返回。root
sudo
- 执行
sudo
命令时,系统将提示您输入用户的密码,除非您明确指示系统不提示用户sudo users
输入密码。请注意,这不是推荐的做法。
可选:允许sudo
不输入用户密码
如前所述,这不是推荐的做法,本教程中仅包含此内容,仅用于演示目的。
为了让你的sudo user
执行sudo
,而不会提示他们的密码命令,后缀接入线路中/etc/sudoers
有NOPASSWD: ALL
如下:
%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL
注意:您需要重新启动SSHD服务器才能应用更改。
步骤8:禁用直接root访问
既然您已经确认可以sudo user
无问题地使用您的服务器,那么现在是第八步,也是最后一步,禁用直接root访问。
首先,/etc/ssh/sshd_config
使用您喜欢的文本编辑器打开并找到包含以下字符串的行。它可以以#
字符为前缀。
PermitRootLogin
不管前缀或选项中的值如何/etc/ssh/sshd_config
,都需要将该行更改为以下内容:
PermitRootLogin no
最后,重新启动SSHD服务器。
注意:不要忘记尝试通过SSH进入服务器来测试您的更改root
。如果您无法执行此操作,则表示您已成功完成所有必要步骤。
到此结束我们的教程。
评论0