在 Ubuntu 中,sudo 允许授权用户以 root 级别权限执行任务,即使他们不知道 root 用户密码。这对于执行管理任务非常重要,因为它可以避免直接使用 root 用户,从而减少系统被误操作的风险,同时在企业生产中由于ubuntu系统都是root的用户名,为了防止被爆破也是要减少root用户的ssh连接,转为提供拥有sudo权限的用户!!!
概念
在Linux操作系统中,有一个特殊的用户叫做 root,root用户可以在系统中做任何事情。权限太大,可以对系统进行任意操作。例如:删除系统文件等危险操作。为了避免误操作导致系统崩溃或数据丢失,我们一般不使用超级用户账号进行日常操作。
因而创建一个普通用户并将他添加到 sudo 用户组以执行管理任务很重要的原因,因此,该用户在运行以 sudo 为前缀的命令时,既可以作为普通用户,也可以作为拥有root权限的管理用户。
其次管理员权限可以很容易地授予用户,如果不再需要,可以随时撤销。(centos系统禁止root用户ssh登录)ubuntu系统默认禁用 root 用户,外来用户没法对root用户发起暴力攻击。
再者,进入sudo 会话后,一定时间内超时,从而失去管理用户的权限。因此,其他用户无法执行任何进一步的管理任务。默认情况下,在当前会话中记住 sudo 密码 15 分钟。
以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作
地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录
相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客
驱动操作:ubuntu22.04系统 cuda驱动版本过高,更换驱动的方法 (常规通用)-CSDN博客
接下来跟着我进行实操
一、在 Ubuntu22.04系统中添加新用户
其他ubuntu版本大同小异,如ubuntu20.04、18.04基本无异
首先创建普通用户
在普通用户下
sudo adduser user
#user替换为自己需要的用户名字!
在root用户下
adduser user
#user替换为自己要新建的用户名
两者效果一直,如下图
在New password 和 Retype new password 中输入新建用户的登录密码即可
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
设置密码后,需要设置账户信息,默认回车即可, 输入y 用户创建就完成了
添加用户后,默认会在/home
路径下创建一个与用户名相同的用户目录。
二、确认新建用户有无sudo权限
由于新建的用户是普通用户,是没有sudo权限,我们是一定要记得要授权,否则新建的用户是不能管理系统中的任何任务
sudo -l -U roots
#roots更换为新建的用户名
三、授权sudo权限
将新建的用户添加到sudo组中即可获取sudo权限
方法一
sudo adduser roots sudo
不要妄想直接从步骤一的后面加上sudo就以为可以授权了,没有新建用户,这条命令走不通的
方法二
sudo usermod -aG sudo roots
检测新建用户是否加入到sudo中
sudo -l -U roots
(ALL:ALL)ALL 表示该roots用户拥有无限权限,可以在系统上运行任何命令,表明roors已被添加到sudo 用户组中,他可以执行各种管理任务。
打开sudoers文件
sudo cat /etc/sudoers
可以看到下面的几行
其中
第一个行 User privilege specification ALL 是允许的用户。
第二行 ALL 是主机。相同的sudoers文件分发给许多主机,相同的sudo用户组可以在所有主机上执行管理命令。
第三行是运行命令时的用户。
最后一行是允许的命令。
此处注意,在Debian系统中,创建新的sudo用户前,需要安装sudo包
在Debian系统中安装sudo包
apt install sudo
ubuntu桌面版和服务器版都是默认安装了sudo包
四、验证sudo权限是否生效
切换用户
由root用户切换到普通账号
sudo su roots
#roots替换为要切换的用户名
由普通用户切换到root用户
:
sudo su root
注意:切换为root用户时,输入的是root用户的密码,如若还没有设置root的用户密码,先对root用户进行密码设置,否则无法登录root用户
方法一
在有sudo权限的用户下输入
sudo -i
#进入root用户
passwd
#修改root密码
exit
#推出root
方法二
在有sudo权限的用户下输入
sudo passwd root
以上完成,下面继续
切换当前用户
sudo -i -u roots
#roots换成自己新建的用户
sudo apt-get update
#用sudo命令更新软件包
成功更新,说明新建的roots用户拥有sudo权限
以上完成
五、移除sudo权限
移除sudo权限,并非删除用户,在ubuntu系统中,sudo组至少有一个用户拥有sudo权限
在移除对应的用户的sudo权限时,确保对应的用户没有在登录
方法一
sudo deluser roots sudo
#roots更换为要移除sudo权限的用户名
此命令只会从 sudo 组中删除用户 roots,但不会从系统中永久删除用户,换句话说,roots用户从高权限的管理用户变成了最底层的普通用户
方法二
也可以通过下面的命令移除sudo权限
sudo gpasswd -d roots sudo
#roots替换对应的用户名
通过以下命令验证是否移除成功
sudo -l -U roots
#roots替换移除sudo权限的用户名
成功
可以通过步骤四,反向验证sudo权限是否真的被移除了,这里就提供结果,不重复讲解如何切换用户了
失去sudo权限后 如下图
六、在系统中删除用户
上面五个步骤只是在sudo组中加入用户和移除用户,并未把新建的用户给删掉,roots用户还是可以正常登录机器,接下来要想真正删除roots用户,需要拥有sudo权限的用户或在root用户下进行真正的删除用户
sudo deluser roots
#roots替换为要删除的用户名
删除时确保没有roots用户在登录,否则会删除失败
以下是删除成功
若要删除用户的数据 移除/home目录下已删除的用户的数据 这部要优先与上面删除用户的那一步
sudo deluser --remove-home roots
#roots替换为要删除的用户的数据
不然 会提示没有该用户 接下来就只能通过rm -rf 移除对应的文件夹资料
sudo rm -rf /home/roots/
其他详情
在系统中输入
#man adduser
#man deluser
#man sudo
#查看各个的使用手册和方法
请各位帅哥美女们多多支持!!小花花小心心 更多入门知识慢慢补充啦
后期持续关注!