标签: sudo

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

如何让 sudo 保留我的环境变量?

在 Solaris 5.10 上使用 sudo 1.7.4p4,在 RHEL4 u6 上使用 sudo 1.6.7p5 我看不到如何保留我的环境变量,例如 $PYTHONPATH。我已将此行添加到 sudoers,但没有任何区别:

Defaults !env_reset
Run Code Online (Sandbox Code Playgroud)

我做错了什么,还是 sudo 安装根本不尊重 env_reset 标志?

编辑:至少在 Solaris 上,我们发现这个问题取决于 shell!标准的 root shell 是 Bourne,sudo bash另一方面,如果我们在 sudo ( )下运行 bash ,!env_preset 将保留环境(包括 PATH 和 LD_LIBRARY_PATH)。我不得不说,这是相当令人困惑的行为。

sudo environment-variables solaris-10 redhat-enterprise-linux

50
推荐指数
2
解决办法
11万
查看次数

永远保持花哨的 sudo 警告

我第一次sudo使用 openSUSE 时,我总是收到一条奇怪的消息警告

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

root's password:
Run Code Online (Sandbox Code Playgroud)

第一次成功登录后,我不会再收到警告。

我想一直被警告。我觉得这个消息有点花哨。有什么办法可以通过 sudo prompt 发出这样的警告吗?

linux sudo

50
推荐指数
2
解决办法
6万
查看次数

须藤与根;任何实际差异?

我正在与一个产品的支持成员一起工作,他坚持说我需要成为 root 才能安装一系列补丁,而 sudo 不起作用;他没有提供任何理由,但他的信念似乎非常坚定。浏览超级用户我无法确定出现这种情况的任何可能原因,并确认,当我运行时:

sudo -l
Run Code Online (Sandbox Code Playgroud)

我得到:

...
User [MY USERNAME] may run the following commands on this host:
    (ALL) ALL
Run Code Online (Sandbox Code Playgroud)

据我所知,从 Linux/服务器团队获得真正的 root 访问权限并不是一个直接的过程,所以我更愿意自己安装它们。

是否有任何实际原因为什么 sudo 在服务器上安装软件时的行为与 root 不同?

linux root sudo command-line

49
推荐指数
3
解决办法
4万
查看次数

SSH:执行 sudo 命令

我有一个交互式 shell 脚本,在一个地方需要 ssh 到另一台机器(基于 Ubuntu)并以 root 身份执行一些东西(用户应该输入他的密码,但远程命令应该像脚本中提到的那样运行):

# ...
ssh remote-machine 'sudo ls'
# ...
Run Code Online (Sandbox Code Playgroud)

但是,我总是收到此错误消息:

sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)

好的,这很清楚。但是我怎样才能规避这一点呢?应该发生这样的事情:

$ ssh remote-machine 'sudo ls /'
[sudo] password for user1:

/bin
/etc
/var
Run Code Online (Sandbox Code Playgroud)

ssh script sudo remote

48
推荐指数
1
解决办法
7万
查看次数

在远程机器上以 root 权限运行 rsync

我想将我机器上的文件夹与远程机器上的文件夹同步。远程文件夹只能由root. 我在远程机器上有一个帐户,可以使用sudo. 如何运行 rsync 使其在远程计算机上具有 root 权限?

我尝试了以下方法:

rsync -avz -e ssh /home/ubuntu/my/lovely/folder ubuntu@x.x.x.x:/remote/lovely/folder --delete --rsync-path="sudo rsync"
Run Code Online (Sandbox Code Playgroud)

但是(输入密码后)出现以下错误:

sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)

sudo rsync ubuntu

46
推荐指数
5
解决办法
7万
查看次数

我可以在没有 sudo 权限的情况下安装 Homebrew 吗?

Homebrew 很好地允许没有 sudo 权限的包安装,但似乎我需要管理员权限才能安装 Homebrew 本身。

我想在没有 sudo 或管理员权限的 Mac 环境中安装 Homebrew。这可能吗?

sudo homebrew macos

46
推荐指数
3
解决办法
7万
查看次数

命令:sudo su -

我明白了什么su -

  • 使用 root 环境将您登录到 root 中
  • (与su将您登录到您的环境中的根相反)

我明白了什么sudo

  • 你是一个命令的 root

但我不确定这是做什么的: sudo su -

任何人都想澄清

unix sudo bash su

42
推荐指数
3
解决办法
15万
查看次数

如何将别名传递给 sudo?

我试过把我的别名放在~/.bash_profile, ~/.bashrc, /etc/profile, 和 中/etc/bashrc

我仍然无法执行以下操作:

alias zf2="php public/index.php"
Run Code Online (Sandbox Code Playgroud)

然后执行:

sudo zf2 orm:info
Run Code Online (Sandbox Code Playgroud)

问题似乎是我无法使用 visudo 将别名指定为命令——这会导致语法错误。

所以我无法调用:

sudo zf2 orm:info
Run Code Online (Sandbox Code Playgroud)

但是,我能够在 /usr/share/scripts/zf2 创建一个脚本,其中包含:

#!/bin/bash

alias zf2="php public/index.php"
zf2 $1
Run Code Online (Sandbox Code Playgroud)

并将此脚本添加为 visudo 中的命令。当此脚本位于最终用户的 PATH 中时,我可以执行

zf2 orm:info
Run Code Online (Sandbox Code Playgroud)

我有不同的别名zf2,我需要向最终用户公开。我更愿意维护别名而不是脚本集合。

sudo bash alias

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

什么是按需启动“sudo”的好方法,以便它现在(方便时)而不是稍后(不方便时)询问我的密码?

这是黑客行为。

我有时需要在终端中快速运行一个又一个的程序,其中一些命令需要,sudo而另一些则不需要,例如:

$ command1; c2; sudo c3 | c4; c5 | sudo c6; c7; sudo c8
Run Code Online (Sandbox Code Playgroud)

我想sudo先启动(也称为输入密码) ,这样等待密码command1时就不会出现瓶颈。c3

大多数时候,我会sudo使用在键盘上随意输入的随机命令,例如:

$ sudo laksdfjlskjf; command1; c2; sudo c3 | c4; c5 | sudo c6; c7; sudo c8
Run Code Online (Sandbox Code Playgroud)

它说command not foundfor laksdfjlskjf,但我已经成功完成了我需要做的事情:启动sudo。没有瓶颈c3

问题:

有没有比输入(非)随机字符来启动更好的方法sudo?是否有一个不执行任何操作并且可以安全使用的安全命令sudo

linux sudo command-line credentials

40
推荐指数
3
解决办法
4599
查看次数