如果我在 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) 这可能是我不明白的事情,因为我已经习惯了 Windows 并且只从 Ubuntu 开始。我知道linux中的软件是打包的,我不明白为什么非管理员用户不能安装软件。
我的意思是,每个应用程序都由特定用户运行,并且该用户只能以其权限运行该应用程序,因此如果他没有管理员权限,应用程序也将无法访问未经授权的目录等。
我希望大部分时间与非管理员用户在我的 PC 上工作,因为这对我来说似乎更安全,大部分时间我不需要管理员权限。即使我知道 linux 中的病毒并不常见,但我仍然认为最佳做法是在您自己无法对重要文件进行任何更改的状态下在计算机上工作,这样病毒也不会损害任何重要文件,但我需要安装用于编程和网页设计等的软件,首先我不想一直切换用户。但对我来说,在 PC 上完成的所有操作都将通过非管理员用户完成,这听起来更安全。
我很高兴知道我在这里有什么误解,因为这里的某些东西听起来不对。
可能重复:
无法在恢复模式下锁定“/etc/group”
我有一台装有 Ubuntu 11.10 的笔记本电脑,由我自己和其他两个家庭成员共享。我的用户 ID 被设置为笔记本电脑上唯一的“管理员”。其他用户被设置为“标准”用户。在我尝试将自己添加到其他用户的用户组时,我以某种方式将自己从管理员组中删除。我使用了终端中的“usermod”命令。我一定忽略了为更新包含正确的开关或语法。
看起来我成功地将我的用户 ID 添加到与我妻子帐户关联的组中。当我使用“groups”命令时,我只能在列表中看到我的id和我妻子的id。我不再看到“admin”或“adm”组以及以前列出的其他组。当我进入系统设置 > 用户帐户时,我的 ID 现在似乎被列为“标准”用户。我想将我的帐户改回“管理员”,但现在我不能。
我搜索了一些解决方案,发现我需要启动到恢复模式并从根会话执行 usermod 命令。我能够成功启动到恢复模式并进入根会话。我试图执行命令“usermod -a -G admin user1”将我的 id (user1) 添加回管理员组。
当我从 root 会话执行命令时,我收到错误消息“usermod:无法锁定 /etc/passwd;稍后再试”。我尝试在 usermod 命令前面加上“sudo”,但没有区别,同样的错误。然后我尝试使用 adduser 添加一个新用户,我想我会尝试创建一个新的 userid 并使新的 userid 成为管理员组的一部分。使用 adduser 命令时出现相同的错误。
我看到一些帖子建议在 etc 目录中查找和删除以“.lock”结尾的文件。我找到的唯一文件是 .pwd.lock,我没有碰过。
我不知道接下来要尝试什么。我对 Ubuntu 和 Linux 相对缺乏经验,所以很多这对我来说都是新的。您能提供的任何帮助将不胜感激。
在我的一台 Ubuntu 11.10 服务器上,当我sudo -i
成为 root 用户时,root 的 .bashrc 没有被执行。在所有其他服务器上,据我所知,其相关配置是相同的,它正在正确执行。
这是我检查过的:
source .bashrc
,之后该会话的一切正常。bash
在 sudoed 到 root 后手动键入执行 bash,然后执行 .bashrc还有什么要检查的吗?
我发现如果我使用sudo
that执行某事,然后如果我在使用之后不久执行其他事sudo
,它不会提示我输入密码,尽管这在某些情况下可能不方便,但在其他情况下会存在安全风险,并且麻烦继续返回并执行命令以使其在下次运行时提示您输入密码。所以我想知道是否以及如何让它每次都提示我,或者它至少只在很短的时间内记住我的密码?
当我su
在终端中输入命令时,我得到
su: Authentication failure
Run Code Online (Sandbox Code Playgroud)
为什么这在 Ubuntu 中不起作用?我已经在另一个 Linux 发行版(Parrot OS)中尝试过这个命令,它确实有效。
该apt-get
命令和sudo
命令不会为我工作。which apt-get
什么都不返回。我检查了 bin 文件夹以确保,没有aptget
. 然而我有wget
。我可以安装 apt-getwget
吗?如果没有,我该如何安装它?
如何安装sudo
软件包?
$ apt-get install sudo
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Run Code Online (Sandbox Code Playgroud) 我有一项服务 ( kado-demo.service
),普通用户 ( kado
) 应该能够在不输入任何密码的情况下重新启动它。
我创建/etc/sudoers.d/user_restart
并添加了
kado ALL=NOPASSWD: /bin/systemctl restart kado-demo.service
Run Code Online (Sandbox Code Playgroud)
权限:
-r--r----- 1 root root 585 Mar 5 10:47 user_restart
Run Code Online (Sandbox Code Playgroud)
作为用户 k,我现在应该能够执行给定的命令,但发生了这种情况:
/bin/systemctl restart kado-demo.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'kado-demo.service'.
Multiple identities can be used for authentication:
(...)
Run Code Online (Sandbox Code Playgroud)
这与我添加文件之前的结果相同。
该/etc/sudoers
包含
#includedir /etc/sudoers.d
Run Code Online (Sandbox Code Playgroud)
当我将user_restart
文件内容直接添加到/etc/sudoers
.
我的想法不多了...
当我在 Ubuntu 18.04 上安装 Python 3 时,我遇到了命令
sudo -H pip install -U pip
Run Code Online (Sandbox Code Playgroud)
有什么作用-H
?