$ id
uid=1000(kev) gid=1000(kev) groups=1000(kev),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)
$ ls -l /etc/sudoers
-r--r----- 1 root root 723 Jan 31 2012 /etc/sudoers
$ sudo adduser kev root
Adding user `kev' to group `root' ...
Adding user kev to group root
Done.
$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied
Run Code Online (Sandbox Code Playgroud)
将自己( kev
)添加到 group 后root
,我仍然无法阅读/etc/sudoers
。
我不知道为什么。谢谢你的帮助。
当我插入拇指驱动器、媒体卡或 USB 硬盘驱动器以通过命令行卸载它时,我需要使用:
sudo umount /media/the_device
Run Code Online (Sandbox Code Playgroud)
但是,我可以在像 Nautilus 这样的文件管理器中卸载设备,只需单击弹出按钮或使用设备上的右键单击上下文菜单。
差异的原因是什么?如何更改它以便我可以在不需要 root 权限的情况下从命令行卸载?改变它是一个坏主意吗?
编辑:如果它发生了变化,我正在运行 9.04。我已经运行了大多数 5.10--9.04 版本,据我所知,它一直都是这样。
sudo cmd
and之间的区别,和
用and启动 shellgksu cmd
的区别一样吗? sudo -i
sudo -s
... 或者换一种说法,
是sudo cmd
一样sudo -i cmd
和gksu cmd
一样sudo -s cmd
吗?
编辑:根据我在Ubuntu 文档页面上阅读的内容,它说:
You should never use normal sudo to start graphical applications as root.
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files
in your home directory becoming owned by root.
(AFAICT, this is …
Run Code Online (Sandbox Code Playgroud) 我在 Ask Ubuntu 中看到了很多关于偏好使用sudo -s
而不是sudo su
.
对我来说,这两个命令完全一样。但为什么sudo -s
应该更好?
我的系统上有两个用户:itsadok
,我的主要用户,和elasticsearch
,一个用户具有不同的 ulimit 来运行 ElasticSearch。
我希望能够以次要用户身份运行东西,而无需每次都提示输入密码。
我将以下行添加到/etc/sudoers
:
itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
按照我的理解,这应该允许用户 itadok 在任何主机上以(用户或组)elasticsearch 身份运行任何命令,而无需密码。但是,尝试类似
itsadok@dev001$ sudo -u elasticsearch ls
Run Code Online (Sandbox Code Playgroud)
提示我输入密码。重新启动机器没有帮助。
我究竟做错了什么?
更新:
事实证明,行的顺序sudoers
很重要。我将这行放在“用户权限规范”下,这听起来像是正确的地方,但%admin
后来出现的组的行覆盖了设置。
将同一行放在 sudoers 文件的末尾修复了这个问题。
我执行了很多sudo
命令。
我注意到,如果我在几分钟内执行一个然后另一个,第二次我没有收到消息:
[sudo] my_username 的密码:
但是当两个命令的执行之间有更多时间时,我确实得到了它。
消息未出现的时间段是多少?我们如何检查/更新它?
每次我希望能够运行一些需要我做sudoer
太多次的东西时,我需要谷歌搜索格式/etc/sudoers
以再次提醒我到底什么是正确的编写方式。
现在我在我的sudoers
文件中看到不同的写作风格,这是几个月来不同谷歌结果的结果。我还注意到第二个示例(如下)似乎在 XFCE 中有效,但在 Cinnamon(Gnome 3)中无效。这可能完全无关,但尽管如此,我还是想一劳永逸地知道 sudoer 行的正确语法是什么,给定示例之间有什么区别?
redsandro ALL=NOPASSWD:/path/to/command
redsandro ALL=(ALL) NOPASSWD:/path/to/command
redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command
另外,所有的ALL
's 是做什么用的?一个用户,一个命令,ALL
关键字最多用三遍?我这样做错了吗?
当然,省略NOPASSWD:
会使您在被允许运行命令之前输入密码,但有一点混乱是使用=
and :
,因为作为该行主题的最后一个命令可以在前面加上=
, :
, , or
)
,混淆相似语义的语法。
我知道 sudo 密码可以保护我的计算机免受具有物理访问权限的人的本地黑客攻击(编辑:实际上,它没有)。我的密码足够强大,但我知道如果有人可以远程暴力破解它,它就不够强大。
罐头任何人进入我的电脑在根模式下使用sudo的我与密码的电脑没有物理访问,在一个标准的Ubuntu桌面安装?
我只是想知道,例如当我启动qtox
时:
qtox &
Run Code Online (Sandbox Code Playgroud)
然后关闭终端,qtox
用它关闭。但是在运行时etherape
使用:
sudo etherape &
Run Code Online (Sandbox Code Playgroud)
关闭终端不会关闭或对 Etherape 造成任何问题。并且在不同的应用程序之间有不同的行为,有些在终端关闭时关闭,有些则没有,这是怎么回事?为什么有些人关闭而其他人不关闭?我正在使用 GNOME 3.18 运行 Ubuntu GNOME 15.10。
当我试图从命令行打开Evince 时,它给了我一个错误
neo@Muhammad:~$ sudo evince
No protocol specified
** (evince:4164): WARNING **: Could not open X display
No protocol specified
error: XDG_RUNTIME_DIR not set in the environment.
Cannot parse arguments: Cannot open display:
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
sudo ×10
command-line ×5
evince ×1
gksu ×1
password ×1
permissions ×1
security ×1
su ×1
umount ×1