如果我在 xterm、gnome-terminal 等中使用命令行,我可以sudo
在某些限制内避免重新提示输入密码,或者我可以禁用它。
作为可用性和安全性之间的折衷方案,我通常只希望延长重新查询的等待时间。
默认情况下,输入 sudo 密码后只有 15 分钟的宽限期,然后才会再次提示输入。要将其更改为 45 分钟,我可以编辑/etc/sudoers
并将 timestamp_timeout 设置为我想要的等待时间(以分钟为单位)。
如果我在同一个终端会话中,并启动一个新的 shell(输入csh
或bash
),则等待时间得到尊重。
但是,如果我去另一个窗口访问那里的命令行,如果我尝试,它会立即询问我的密码sudo
。
在同一个伪pts
终端会话 ( ) 中(例如,如果我在同一个 gnome-terminal 窗口中生成一个新的 shell),超时是被遵守的。
如果我启动新的 xterm、gnome-terminal 等,我必须再次输入凭据。
尽管是我的家庭系统(单用户系统)等上唯一活动的用户,但 sudo 不相信我的所有pts
条目都来自同一用户:
~/pseudoland$ w
01:27:39 up 1 day, 15:03, 7 users, load average: 0.32, 0.71, 0.77
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
jgb tty1 23:56 1:30m 0.55s 0.51s -bash
jgb tty7 :0 Tue10 39:03m 2:28m 0.76s gnome-session …
Run Code Online (Sandbox Code Playgroud) 目前sudo
会提示输入密码,但之后绝对没有任何反应。没有任何错误。
我检查了 sudoers 文件,它通过了 visudo 语法检查,这是设置:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the …
Run Code Online (Sandbox Code Playgroud) sudo -i
在终端中将普通用户变成root用户&如果我们退出后又变成root用户,我们将回到普通用户。如果我们再试一次,下次它会直接带我进入root用户而不询问密码。
那么为什么会发生这种情况以及该设施的超时时间是多少?
我不需要管理员来更改我的 root 密码。我不希望任何 sudo 用户执行此命令:
sudo passwd $root
Run Code Online (Sandbox Code Playgroud)
我已经使用以下命令在 sudoers 文件中尝试过:
%sudo ALL=(ALL) ALL, !/usr/bin/passwd $root
Run Code Online (Sandbox Code Playgroud)
我怎样才能阻止它?
目前,对于需要 root 访问权限的所有命令,我必须在命令行中输入它们。
当需要 sudo 时,我希望 GUI 提示我输入密码,而不必从命令行输入命令。
有什么办法可以启用它吗?以前有一个版本的 Ubuntu 桌面具有开箱即用的功能。
这个版本的 Ubuntu(我现在正在运行)我是从服务器安装升级的。
我要补充的是,我的用户帐户已添加到 sudo 组。因此,我可以运行诸如sudo gedit
或之类的命令,sudo apt-get
但我无法在 Ubuntu 软件中心安装软件。
因为好奇而问。:)
当我打字
sudo su
Run Code Online (Sandbox Code Playgroud)
它要求我的用户密码。当我输入时
su
Run Code Online (Sandbox Code Playgroud)
它要求输入 root 用户密码。但是这两个命令都将我定向到根终端。那为什么会有这么大的差别呢?
我知道“不使用sudo su -
”等。但老实说,几乎我们所有人都这样做。
所以,这就是问题所在。我们不能启用 root 登录,所以我们必须以我们的用户身份 ssh 进入,然后 su 到 root。
这是进程树:
1 7897 7826 7826 ? -1 S 1000 0:00 sshd: josh@pts/0
7897 7898 7898 7898 pts/0 8182 Ss 1000 0:00 \_ -bash
7898 7990 7990 7898 pts/0 8182 S 0 0:00 \_ sudo su -
7990 7991 7990 7898 pts/0 8182 S 0 0:00 \_ su -
7991 7992 7992 7898 pts/0 8182 S 0 0:00 \_ -su
7992 8182 8182 7898 pts/0 8182 R+ 0 …
Run Code Online (Sandbox Code Playgroud) 可以使用sudo以 root 身份打开文件。但是,如何右键单击文件并使其以 root 身份运行?
我正在使用鹦鹉螺。
每当我运行 sudo 命令时,都会收到一条错误消息。
jay@ignumtop:~$ sudo true
sudo: unable to resolve host ignumtop: Connection timed out
Run Code Online (Sandbox Code Playgroud)
我不确定这对我的电脑或任何东西有什么影响,但如果这是一个会导致我的电脑卡死的问题,我想知道我能做些什么。谢谢。
所以,我在 linux 的 windows 子系统中弄乱了我的 sudoers 文件。我试图添加一些东西,教程的家伙说用nano/vim编辑sudoers文件,这就是我所做的(后来我发现你应该只用visudo编辑它,很好)。当我保存时,我意识到我不能再使用“sudo”了,终端会抱怨说:
>>> /etc/sudoers: syntax error near line 33 <<<
sudo: parse error in /etc/sudoers near line 33
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Run Code Online (Sandbox Code Playgroud)
我读过很多文章说我必须运行:
pkexec /usr/sbin/visudo
Run Code Online (Sandbox Code Playgroud)
但结果总是一样的:
Error getting authority: Error initializing authority: Could not connect: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我什么都试过了,花了两个小时读东西,却什么也做不了。谁能帮我?如您所见,当涉及到真正的 linux 时,我显然是新手。
sudo ×10
root ×3
command-line ×2
gksudo ×2
12.04 ×1
bash ×1
context-menu ×1
gksu ×1
nautilus ×1
networking ×1
password ×1
permissions ×1
policykit ×1
ssh ×1
su ×1
upgrade ×1