Linux 用户管理 1 之简介
Linux 用户管理 2 之切换用户
Linux 用户管理 3 之创建用户
Linux 用户管理 4 之密码管理
Linux 用户管理 5 之用户属性属性
在 Linux 中普通用户切换到 root 用户,需要输入 root 用户的密码,而 root 用户切换到普通用户,不需要用户名密码。
我们可以使用 su 命令进行用户切换。
切换用户方式:
- su UserName 不完全切换(不会改变用户环境变量)
- su - UserName 完全切换
通过 -s 选项,指定用户登录后使用的 shell:
root@ubuntusvr:~# su - -s /bin/bash user02
user02@ubuntusvr:~$ pwd
/home/user02
通过 -c 选项,可以使用指定的用户运行命令,而不需要切换到该用户:
root@ubuntusvr:~# su user01 -c "touch /data/testfile.txt"
root@ubuntusvr:~# ls -l /data/testfile.txt
-rw-rw-r-- 1 user01 user01 0 2月 23 15:06 /data/testfile.txt
我们也可以通过 sudo 直接进行提权,以 root 身份来运行该命令(相当于 Windows 中以管理员身份运行):
it@ubuntusvr:~$ sudo touch /data/f1
[sudo] password for it:
it@ubuntusvr:~$ ls -l /data/f1
-rw-r--r-- 1 root root 0 2月 23 15:08 /data/f1
* 运行 sudo 的命令需要分配专门的权限。在 Ubuntu 系统中,默认不允许直接使用 root 用户,所以在安装系统创建的用户就默认拥有 sudo 权限,系统创建好后,创建的用户都没有 sudo 权限;在 RHEL/CentOS 中,系统安装时,已经启用了 root,所有安装系统创建的用户没有 sudo 权限。
获取 sudo 权限
所有关于 sudo 的配置都写在 /etc/sudoers,不过不建议直接编辑 sudoers 文件,应使用 visudo 命令进行编辑。
使用 visudo 添加用户权限(添加用户 user1),在文件的末尾添加 “user1 ALL=(ALL) ALL”:
[root@CentOS8test ~]# visudo
[root@CentOS8test ~]# cat /etc/sudoers | grep -Ev "^$|#"
Defaults !visiblepw
Defaults always_set_home
Defaults match_group_by_gid
Defaults always_query_group_plugin
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS