两个超级用户命令有什么区别,su -s
和sudo -s
?
他们都提供了一个可以访问超级用户帐户的 shell。
我曾经将我的用户帐户降级,以便它没有管理员权限,并使用了“类似 sudo”的技巧,您可以在其中创建 IE6 的快捷方式并启用“使用不同凭据运行”选项以作为本地管理员打开 shell 窗口,因此我可以安装和卸载东西等。
当我升级到 IE7 这停止工作 - IE7 单独启动 Windows 资源管理器。
我尝试使用不同的凭据运行 Windows 资源管理器,但这不起作用。
有谁知道如何重新启用此行为,以便我不必每天以管理员权限运行我的计算机?
如果我在su
提示时输入密码,则它sudo su
不起作用。此外,当使用 执行命令时sudo (command)
,默认情况下 sudo 是否会自动以 root 执行它(因为手册页说sudo, sudoedit - execute a command as another user
michaelxu@michaelxu-server:~$ su
Password:
su: Authentication failure
michaelxu@michaelxu-server:~$ sudo su
[sudo] password for michaelxu:
root@michaelxu-server:/home/michaelxu# exit
Run Code Online (Sandbox Code Playgroud) 我试图通过覆盖此文件上的值来更改亮度:
sudo echo 5 > /sys/class/backlight/acpi_video0/brightness
-bash: /sys/class/backlight/acpi_video0/brightness: Permission denied
Run Code Online (Sandbox Code Playgroud)
即使使用 sudo 也不起作用。但是,如果我使用 su 切换到超级用户,它就可以工作。这是为什么?
我尝试了以下命令:
$ wget -q --tries=10 --timeout=20 --spider http://google.com
Run Code Online (Sandbox Code Playgroud)
(来自this SO post。我想在bash中检查我的互联网连接。)
我得到以下输出:
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50-- http://google.com/
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 302 Found
Location: http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA [following]
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50-- http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.
Run Code Online (Sandbox Code Playgroud)
似乎没问题,但是运行 …
在 Linux 环境中,如果我是 user1 而不是 sudoers 或使用 root,我需要终止一个由 user2 启动的进程。您知道在启动进程时是否有设置方法吗?比如允许杀死进程的用户列表?
事实是同一个进程的并发实例可以从不同的用户启动,这就是为什么我不方便为进程设置组ID。不在该组中的其他用户将无法启动第二个并行进程。
我有一个允许启动进程的用户列表,在数据库中定义,在启动进程之前,我检查列表中的当前用户,如果是,我用当前用户启动进程。如果允许这样做的第二个用户想要终止进程,我希望它被允许这样做,但我不希望它成为 sudoers。
因此,我想创建一个以 root 身份运行的进程,它接收来自用户的终止进程的请求,检查是否允许用户启动/停止进程并终止进程。
你认为这可能是最好的解决方案吗?
是否有一种直接的方式来允许用户运行(例如)
/usr/bin/pacman -S -u
Run Code Online (Sandbox Code Playgroud)
以 root 身份,不允许他运行
/usr/bin/pacman -S -u some_package
Run Code Online (Sandbox Code Playgroud)
?
线
user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u
Run Code Online (Sandbox Code Playgroud)
允许两者,并且
user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""
Run Code Online (Sandbox Code Playgroud)
似乎在语义上是等价的。
#Vim 中的 irc 用户敦促我不要将 Sudo 与 Vim 一起使用,例如:
sudo vim bad_idea
Run Code Online (Sandbox Code Playgroud)
当我在 /var/www/ 等位置做事时,没有它我无法写作。所以不使用 sudo 成为一个问题。当然,我可以在不同的位置进行更改,例如 /tmp/,然后将目录复制到 /var/www。不过,我觉得有一种更简单的方法。
最近,我通过 /etc/hostname.conf 更改了 sudoers 文件和主机名。更改此文件后,我的 sudo 命令需要花费大量时间。此外,它说 sudo 无法解析主机 kaagini(我机器的主机名)。
为什么 sudo 必须知道主机名才能为某些东西提供权限?
我的 sudoers 文件有一个命令“默认值 env_reset”。我看到了一些类似的问题,但这里的上下文不是远程登录。错误显示在本地主机上。
该问题的初始谷歌搜索表明 /etc/hosts 文件必须具有 127.0.0.1 的实际主机名。这解决了我的问题。但我的实际问题是:为什么我们需要这个 sudo ?无论登录位置如何,sudo 都应该工作。
Ubuntu 中的 sudo 不断向我询问每个命令的密码。以前,我只需要输入一次密码,然后就会记住一段时间。这最近发生了变化,可能是在“升级”到 Natty 之后。
我已经完成sudo visudo
并设置Defaults env_reset, timestamp_timeout = 60
,尝试重新启动,但它仍然无法正常工作。我该如何解决?
经过以下建议,我/etc/sudoers
看起来像这样:
#
# 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:endolith timestamp_timeout=60
# Host alias specification
# User alias specification
# Cmnd alias specification …
Run Code Online (Sandbox Code Playgroud)