小编Alw*_*ner的帖子

抱歉,你必须有一个 tty 才能运行 sudo

我已经在Stack Overflow 中问过这个问题,但我被要求在这里发布。所以做同样的事情。

我使用我的java程序运行了这个命令-

sudo -u <username> -S pwd
Run Code Online (Sandbox Code Playgroud)

我得到了这个输出-

command=sudo -u <username> -S pwd
exitCode=1
sudo: sorry, you must have a tty to run sudo
Run Code Online (Sandbox Code Playgroud)

我尝试编辑 /etc/sudoers 但它已经包含

<username>       ALL=(ALL)       NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

然后,我了解到这可以通过在 /etc/sudoers 中注释掉以下代码来完成

# Defaults requiretty
Run Code Online (Sandbox Code Playgroud)

此外,默认情况下,当尝试以其他用户身份使用 执行命令时sudo,我们必须提供自己的密码。但这可以通过在 /etc/sudoers- 中进行以下更改来更改

Defaults targetpw
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以在 Java 中执行我的上述命令而无需在任何地方进行任何更改,即通过默认设置

linux java sudo sudoers

13
推荐指数
1
解决办法
2万
查看次数

sudo 的替代品

我知道我们可以使用sudo命令以超级用户/其他用户的身份执行命令/脚本。但是是否有可能sudo用户不可用/删除该实用程序本身。如果是这样,sudo除了 之外还有什么替代方案su?另外,做sudosu服务于相同的目的吗?

linux sudo su

5
推荐指数
2
解决办法
3万
查看次数

标签 统计

linux ×2

sudo ×2

java ×1

su ×1

sudoers ×1