Linux系统中的root用户管理

VSole2021-09-28 07:04:29

超级用户在操作系统管理中的作用

1. 可以对任何文件、目录或进程进行操作

超级用户的操作是在系统最高许可范围内的操作,有些操作就是具有超级权限的root也无法完成。比如/proc目录,/proc是用来反应系统运行的实时状态信息的,因此即便是root也无法对其进行写操作。

2. 对涉及系统全局的系统管理

硬件管理、文件系统管理、用户管理以及涉及的系统全局配置等,如果执行某个指令或工具时,提示无权限,大多是需要超级权限来完成。比如用adduser来添加用户,这跟只能使用通过超级权限的用户来完成。

普通用户授予root权限

1. su指令

su是英文“switch user”的缩写,即切换用户。使用su指令切换到其他用户模式,提示输入密码时,该密码为切换后账户的密码,用法为:su 账户名称

如果后面不加账户时默认为root账户,密码也为超级账户的密码。没有时间限制。

2. su指令使用条件

su指令就是切换用户的工具,当前系统登录为普通用户handuoduo,但要完成添加用户任务,执行useradd指令后,提示普通用户handuoduo没有权限,而这跟权限恰恰由root所拥有。解决的办法有两个:

1)退出handuoduo用户,重新以root用户登录,但这种办法并不是最好的。

2)不退出handuoduo用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。

我们可以看到当然通过su切换是一种比较好的办法。

通过su可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其他任何用户都需要密码验证。

3. su指令用法

su指令常用的选项如下所示:

  • -c, -command 执行相关指令,然后退出所切换到的用户环境
  • -l, -login 登录并改变到所切换的用户环境。

关于su指令更详细的使用,可以参考man su

4. su指令实例

su指令在不加任何参数,默认为切换到root用户,但没有转到root用户主目录的情况下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境,即用户默认登录环境。可以在/etc/passwd中查到,包括主目录、shell定义等。

#普通用户切换到root用户
$ whoami
handuoduo
$ su
Password:
$ whoami
root

在上述代码中,普通用户模式下,直接输入su指令即可切换到root用户,su加参数“-”表示默认切换到root用户,并且改变到root用户的环境。

# 普通用户切换到root用户并改变环境变量
$whoami
handuoduo
$ su
Password:
$ whoami
root
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/handuoduo/bin
$ exit
exit
$ su -
Password:
$ whoami
root
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

su 指令加上 “-” 参数,目标用户的环境变量一起被切换,“su 参数 - 用户名”,下面代码和上述实例中的作用相同。

$whoami
handuoduo
$ su
Password:
$ whoami
root
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/handuoduo/bin
$ exit
exit
$ su - root
Password:
$ whoami
root
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

“su - root”指令和“su -”功能相同。

5. su 的优缺点

su的确为管理带来方便,通过切换到root下,能完成所有系统管理工具。只要把root的密码交给任何一个普通用户,它都能切换到root来完成所有的系统管理工作。但通过su切换到root后,也有不安全因素,比如系统有10个用户,而且都参与管理。如果这10个用户都涉及超级权限的运用,作为管理员如果让其他用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威胁。

“没有不安全的系统,只有不安全的人”,我们不能保证这10个用户都能按正常操作流程来管理系统,这其中任何一个人对系统操作的重大失误,都可能导致系统崩溃或数据损失。所以su工具在多人参与的系统管理中,并不是最好的选择。

总结

  • su - root 和 su root 指令的区别如下:
  • su指令后面不加用户是默认切换到root;
  • su指令不改变当前变量;
  • “su -”指令组合改变为切换到用户的变量;
  • su指令只能获得root的执行权限,不能获得环境变量;
  • “su -”指令组合是切换到root用户,并获得root用户的环境变量及执行权限。
root权限linux切换用户
本作品采用《CC 协议》,转载必须注明作者和本文链接
一文吃透 Linux 提权
2021-10-23 07:09:32
特权升级意味着用户获得他们无权获得的特权。通常,当系统存在允许绕过安全性的错误或对使用方法的设计假设存在缺陷时,通常会发生这种情况。结果是,具有比应用程序开发人员或系统管理员想要的特权更多的应用程序可以执行未经授权的操作。
大多数计算机系统设计为可与多个用户一起使用。特权是指允许用户执行的操作。普通特权包括查看和编辑文件或修改系统文件。特权升级意味着用户获得他们无权获得的特权。这些特权可用于删除文件,查看私人信息或安装不需要的程序,例如病毒。
Linux 操作系统中每个用户都具有唯一标识 UID,当使用命令创建用户时,如果不指定用户的 UID,则系统将自动为其分配 UID。当使用 -u 指定用户 id 时,用户 id 尽量大于500,以免冲突。因为 Linux 操作系统安装后,会默认建立一些用户,所以可能会占用 500 之内的 id 号。Linux 权限机制有以下特点:系统有一个权限最大的用户,其名称为 rootroot 用户属于 root 用户组。root 切换到普通用户无需登录,普通用户切换root 用户需要登陆。
不可中断状态实际上是系统对进程和硬件设备的一种保护机制。当负载存在明显升高趋势时,及时进行分析和调查。系统调用过程中并不会涉及虚拟内存等进程用户态资源,也不会切换进程。因此系统调用通常称为特权模式切换。进程是由内核管理和调度的,进程上下文切换只能发生在内核态。因此相比系统调用来说,在保存当前进程的内核状态和CPU寄存器之前,需要先把该进程的虚拟内存,栈保存下来。
超级用户的操作是在系统最高许可范围内的操作,有些操作就是具有超级权限root也无法完成。比如/proc目录,/proc是用来反应系统运行的实时状态信息的,因此即便是root也无法对其进行写操作。
sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。不过有时间限制,Ubuntu默认为一次时长15分钟。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以。
当企业发生网络安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,同时还需进一步查找入侵来源,还原入侵事故过程,给出解决方案与防范措施,为企业挽回或减少经济损失。 常见的网络安全事件:
之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚
环境变量里,如果直接输入?不管用的话,就用绝对路径名的方式:/usr/sbin/useradd?。
VSole
网络安全专家