当我做一些需要连续输入几十次 root 的事情时,我更喜欢将我的会话切换到 root 会话。在各种教程和说明我已经使用了互联网上,我看到了sudo su
,sudo su -
,sudo -i
和sudo /bin/bash
用来打开一个root会话,但我不会在这些当之间,或者说差异事项的区别清楚。
有人可以帮我解决这个问题吗?
我已经从手册中阅读了它,但我看不出有什么区别..
su
- 更改用户 ID 或成为超级用户
sudo -s [command]
Run Code Online (Sandbox Code Playgroud)
的-s
(壳)选项运行由SHELL环境变量指定的壳,如果它是一组或如passwd的(5)中规定的壳。如果指定了命令,则将其传递给 shell 执行。否则,将执行交互式 shell。
sudo -i
消失手册中的描述
我试图su
root 以便我可以安装灯,但是当我尝试时出现身份验证错误:
user@host:~$ su
Password:
su: Authentication failure
Run Code Online (Sandbox Code Playgroud) 我知道我可以通过su
命令成为 root(超级用户),但我必须在输入命令后对其进行授权。有没有一种方法可以成为 root 并在一行中授权(使用密码)
我在使用 su 命令时遇到问题。我知道我的密码并且我输入正确,但su
表明身份验证失败。
所以我上网查了一下,然后进入恢复模式,把我的用户名密码改成了我之前输入的密码。
即使现在输入相同的密码也会使su
我的身份验证失败。
请建议我做错了什么?
之间有什么区别sudo
,su
,visudo
,chroot
,和gksu
?
我定义了 2 个用户帐户:
sudo
权限)=> 让我们称之为adminuser
。normaluser
normaluser
因此,当我打开一个normaluser
会话并希望以管理员权限运行应用程序时,
我打开一个终端Ctrl+ Alt+T并:
su adminuser
sudo anyapplication ...
Run Code Online (Sandbox Code Playgroud)
它工作正常,无需退出normaluser
会话(无需打开adminuser
会话)。
但是,如果应用程序需要使用 GUI(图形用户界面)运行,我该怎么办?
我想:
su adminuser
gksu anyapplication ...
Run Code Online (Sandbox Code Playgroud)
但我明白了
** (gksu:9122): WARNING **: the connexion is closed
No protocol specified
No protocol specified
(gksu:9122): Gtk-WARNING **: cannot open display: :0.0
Run Code Online (Sandbox Code Playgroud) 我在 Ask Ubuntu 中看到了很多关于偏好使用sudo -s
而不是sudo su
.
对我来说,这两个命令完全一样。但为什么sudo -s
应该更好?
Ubuntu(或 Debian 衍生产品)通过禁用 root 用户获得的实际好处是什么?
在我读到的任何地方,它都说要防止没有经验的用户意外损坏。我想知道究竟是什么,因为sudo
可以执行所有命令(我知道/使用)。
那么在什么情况下 root 可以造成损坏而sudo
不能呢?
PS:我知道如何sudo
运作。
我正在尝试使用 su 命令以另一个用户身份运行应用程序
在这种情况下,我正在尝试运行 irssi
blah@ubuntu: su - [username] irssi
(enter password)
blah@ubuntu:
(nothing happens)
blah@ubuntu: su - [username] -c irssi
(nothing)
Run Code Online (Sandbox Code Playgroud)
我运行 gksu 并设置相同的参数,它可以工作,并且不会询问我的用户密码。问题是什么?我该如何解决?
我应该注意到用户是这样创建的
adduser --system --disabled-login [username]
Run Code Online (Sandbox Code Playgroud)
如果它有任何区别....叹息。