su 和 sudo
新建用户的命令是 useradd
,直接输入useradd
不管用的话,就用绝对路径名的方式:/usr/sbin/useradd
。useradd
新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户。
ubuntu@VM-0-14-ubuntu:~$ su -
Password: # 输入 root 用户登录密码
root@VM-0-14-ubuntu:~# useradd -m test_user # 带上 -m 参数
root@VM-0-14-ubuntu:~# ls /home
test_user ubuntu # 可以看到 /home 目录下面有两个用户了
用 root 来设置 test_user 的登录密码。需要用到 passwd 命令:
passwd
root@VM-0-14-ubuntu:~# passwd test_user
Enter new UNIX password: # 输出 test_user 的密码
Retype new UNIX password:
passwd: password updated successfully
root@VM-0-14-ubuntu:~#
==================================================》
su =》(switch user)【切换用户】
switch user
su
的一般使用方法是:
su <user_name>
或者
su - <user_name>
=》
两种方法只差了一个字符 -,会有比较大的差异:
-
- 如果加入了
-
参数,那么是一种login-shell
的方式,意思是说切换到另一个用户 <user_name> 之后,当前的 shell 会加载 <user_name> 对应的环境变量和各种设置; - 如果没有加入
-
参数,那么是一种non-login-shell
的方式,意思是说我现在切换到了 <user_name>,但是当前的 shell 还是加载切换之前的那个用户的环境变量以及各种设置。
2.3 -c
参数 (不需要先切换用户再执行命令,可以直接在当前用户下,以另一个用户的方式执行命令,执行结束后就返回当前用户。)
ubuntu@VM-0-14-ubuntu:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied # ubuntu 用户不能直接查看 /etc/shadow 文件内容
ubuntu@VM-0-14-ubuntu:~$ su - -c "tail -n 4 /etc/shadow"
Password: # 输入 root 用户密码
ubuntu:$1$fZKcWEDI$uwZ64uFvVbwpHTbCSgim0/:18352:0:99999:7:::
ntp:*:17752:0:99999:7:::
mysql:!:18376:0:99999:7:::
test_user:$6$.ZY1lj4m$ii0x9CG8h.JHlh6zKbfBXRuolJmIDBHAd5eqhvW7lbUQXTRS//89jcuTzRilKqRkP8YbYW4VPxmTVHWRLYNGS/:18406:0:99999:7:::
ubuntu@VM-0-14-ubuntu:~$ # 执行完马上返回 ubuntu 用户而不是 root 用户
==========================================================================================================》
sudo 的英文全称是 super user do,即以超级用户(root 用户)的方式执行命令。
sudo
super user do
3.1 主要用法
ubuntu@VM-0-14-ubuntu:~$ tail -n 3 /etc/shadow
tail: cannot open '/etc/shadow' for reading: Permission denied # 没有权限
ubuntu@VM-0-14-ubuntu:~$ sudo !! # 跟两个惊叹号
sudo tail -n 3 /etc/shadow
ntp:*:17752:0:99999:7:::
mysql:!:18376:0:99999:7:::
test_user:$6$.ZY1lj4m$ii0x9CG8h.JHlh6zKbfBXRuolJmIDBHAd5eqhvW7lbUQXTRS//89jcuTzRilKqRkP8YbYW4VPxmTVHWRLYNGS/:18406:0:99999:7:::
ubuntu@VM-0-14-ubuntu:~$
sudo !!
表示重复上面输入的命令,只不过在命令最前面加上 sudo
。
因为我已经设置了 sudo
命令不需要输入密码,所以这里 sudo !!
就能直接输出内容。如果没有设置的话,需要输入当前这个用户的密码,例如本例中,我就应该输入 ubuntu 用户的登录密码。
(1)切换到 root 用户: sudo su -
注释:
- 前者输入
sudo su -
后,需要提供当前用户的登录密码,也就是 ubuntu 用户的密码; - 后者输入
su -
后,需要提供 root 用户的登录密码。
(2)sudo -i
注释:sudo su -
效果一致,也是切换到 root 用户,也是需要提供当前用户(ubuntu 用户)的登录密码。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战