有时我想以 root 身份显式启动一个图形程序。现在我正在启动一个终端并 sudo 所需的应用程序。
但是有没有办法直接从启动程序(Gnome 或 KDE)以 root 身份启动应用程序?类似于 Windows 中的右键单击和“以管理员身份运行”?
我有一个 Amazon EC2 实例。我可以正常登录,但是“su”和“sudo”现在都不能正常工作(以前它们可以正常工作):
“su”要求输入密码,但我使用 ssh 密钥登录,我认为 root 用户甚至没有密码。
“sudo <anything>”这样做:
sudo: /etc/sudoers is owned by uid 222, should be 0
sudo: no valid sudoers sources found, quitting
Run Code Online (Sandbox Code Playgroud)
我可能做了“chown ec2-user /etc/sudoers”(或者,更可能是“chown -R ec2-user /etc”,因为我厌倦了rsync失败),所以这是我的错。
我该如何恢复?我停止了实例并尝试了 AWS EC2 控制台上的“查看/更改用户数据”选项,但这没有帮助。
编辑:我意识到我可以杀死这个实例并创建一个新实例,但希望避免极端情况。
我遵循了有关“如何使用 LKM 在 C 程序中创建 Linux Proc 文件”的教程指南。
我已经成功地制作了我的模块并加载了它。现在我想回显到我的 proc 文件以确保调用应该调用的方法。
我试过了:
$ echo "hello" > /proc/procEntry123 # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123 # Same error message.
Run Code Online (Sandbox Code Playgroud)
如何提升权限以回显到此文件?我是该系统的唯一用户和管理员。
我想在 sudoers 文件中添加一个用户,以便它只能启动、停止和重新启动特定服务。
我正在使用 Debian 并且可以使用 访问 sudoers 文件sudo visudo,但我现在对如何将这个用户设置为仅限于一项服务感到困惑。
此命令在 OpenSuSE 11.4 上失败:
root@host# sudo -S -u "coreapp_customer1_d" -g "coreapp_customer1_d" /bin/bash -l -c "mkdir -p /home/coreapp_customer1_d/.ssh"
Run Code Online (Sandbox Code Playgroud)
这条消息:
Sorry, user root is not allowed to execute
'/bin/bash -l -c mkdir -p /home/coreapp_customer1_d/.ssh'
as coreapp_customer1_d:coreapp_customer1_d
on workdevel114.
Run Code Online (Sandbox Code Playgroud)
但它适用于 OpenSuSE 12.3。
我比较了两个系统的 /etc/sudoers 文件,并且(注释行除外)它们是相同的。
经常在终端中(尽管我完全希望任何答案都适用于 bash 和大多数其他人),我输入一些命令,然后由于缺少sudo.
好的,所以按“向上”,按住/锤“向左”,输入sudo并点击“输入”。
这很烦人。命令越长,越是如此。
请注意,丢失sudo是最坏的情况;比开头更接近结尾的错字同样令人讨厌。
我想要的是一种执行“向上和主页”键击的方法。实际上,也许这两招就可以了 - 但我的 Macbook 键盘没有 Home,所以我无法尝试。
sudo也可以通过 CMD+Shift+S 自动神奇地插入和点击“输入”的方法的奖励积分。
这能做到吗,还是我在做梦?
我想控制谁可以在我的服务器上通过 SSH 登录。将组“ssh”添加到允许登录的用户中是否安全?
我看到一些发行版在用户 ID 中使用系统组,而其他发行版建议创建新组。例如,一些用户将拥有该sudo组,而其他发行版建议创建一个新组gSudo并将其添加到 sudoers 文件中。
什么是允许root使用 SSH在具有特权的远程服务器上自动执行命令或脚本的好的设置?
我知道(仅对某些选项含糊其辞)以下选项:
root( PermitRootLogin)直接登录(并可能强制进行密钥验证)。sudo不需要密码(NOPASSWD标志 in sudoers)和 TTY(requiretty标志)。sudo为允许在使用特定私钥进行身份验证时执行特定命令/脚本。root设置为并设置setuid 权限。但首先,我不确定这些的安全后果是什么。例如,我知道允许root登录是不受欢迎的。但我不确定,如果这不是一个过时的观点。据我所知,密码身份验证似乎是危险的。使用公钥认证,直接root登录可能没问题。对于某些选项,尤其是sudo,我什至不确定所需的配置。虽然我可以用谷歌搜索所有这些,但我可能会遗漏一些安全方面的考虑,这就是为什么我要征求专家的意见。
请注意,我要求进行服务器端设置。执行将由程序触发,而不是像 那样的工具ssh,所以我不是在寻找自动客户端身份验证之类的东西。
背景:活跃在sshStack Overflow 上的标记,这是经常出现的问题之一,是关于人们在尝试通过 SSH 在远程 Unix/Linux 上执行命令/脚本(甚至 SFTP 服务器)时尝试的各种黑客攻击服务器服务器使用root使用各种编程语言(C#、Java、VB.NET、Python 等)和 SSH 库(SSH.NET、JSch、Paramiko 等)的帐户。
人们尝试的实现通常尝试使用suor sudo。这些然后提示输入密码。因此,实现然后尝试将密码提供给命令输入。由于su和sudo经常需要终端仿真输入密码的提示,执行有权要求PTY。这反过来又会导致进一步的麻烦,因为与终端仿真的会话通常采用交互功能,如ANSI 转义码、分页等。足够的终端来避免分页。
举几个例子:
我正在尝试使用来自 Docker 中心的 Jenkins 映像在 AWS 上设置 CI。我已经在这个过程中花费了几个小时(为 Node 项目进行配置),现在我意识到我的一些 npm 依赖项需要make构建。Docker 映像没有make,也没有sudo,所以看起来我不能apt-get install make。是否有另一种方法make无需使用授予 root 访问权限的 Dockerfile 重新创建映像?