标签: sudo

我可以让 sudo 在终端之间共享缓存的凭据吗?

在我的 Ubuntu 上,sudo 缓存凭据。但是,如果我打开另一个终端窗口并在该窗口中使用 sudo,则缓存的凭据不会共享,我必须重新输入密码。

我可以让多个终端中的 sudo 实例共享缓存的凭据吗?

sudo shell

4
推荐指数
1
解决办法
604
查看次数

CentOS,sudo 不接受 root 密码,但可以以 root 身份登录

我是 Linux 新手,我在双引导系统上运行 CentOS。我试图编辑一个需要 root 权限的文件,所以我使用了 sudo。我输入了root密码,但失败了。这种情况发生了 3 次,过程结束。然后我以 root (su) 身份登录并能够导航到该文件并以 root 身份进行更改。我错过了什么吗?我将如何编辑 sudoers 文件以使此密码有效?或者是否有另一种方式登录 sudo 组进行这些更改?如何设置 sudo 密码?

linux centos root sudo

3
推荐指数
1
解决办法
2829
查看次数

sudo 在 bash 脚本中显示输入的密码

我有一个使用sudo了几次的 bash 脚本。不过,它有一些奇怪的地方。

  1. 在我为上一个命令输入密码后,它会在几秒钟内询问我的密码。
  2. 我第二次输入密码时,它会回显到显示屏上。

这是脚本的相关部分。

sudo service apache2 stop
drush sql-dump --root="$SITE_DIR" --structure-tables-key=svn --ordered-dump | grep -iv 'dump completed on' | sudo tee "$DB_DIR/${SITE_NAME}.sql" > /dev/null
sudo svn diff "$DB_DIR" | less
sudo svn commit -m "$MESSAGE" "$DB_DIR"
sudo service apache2 start
Run Code Online (Sandbox Code Playgroud)

第一个密码是停止apache,它按预期工作。如前所述,sudo tee它不“记得”我有提升的权限,再次要求输入密码,然后将其回显到屏幕上。鉴于这完全tee是关于回显到屏幕,我已经使用了一些简单的脚本,这些脚本具有| sudo tee,并且它们都按预期工作。

编辑: 我查看了drush命令本身,它是一个 bash 文件,它使用exec. 这听起来可能有潜力 - 有什么想法吗?这是来自drush.

exec php $SCRIPT_PATH --php=`which php` "$@"
Run Code Online (Sandbox Code Playgroud)

Edit2: 正在查找与 Ruby 脚本有关的内容,并 …

script sudo bash

3
推荐指数
1
解决办法
1818
查看次数

sudo 命令有什么作用?

在我的整个职业生涯中,我都是 Windows 用户。我刚买了一台 MacBook Pro,想开始使用 Ruby on Rails 进行开发。

我遇到了几个推荐使用该sudo命令的安装指南。据我所知,该sudo命令允许您以管理员身份运行命令。

我不明白的是......我的Mac上只有1个用户帐户,默认情况下我不应该是管理员用户吗?

为什么我需要使用sudo命令?

我是否正确理解了什么sudo

mac terminal sudo

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

Sudo 找不到二进制文件

我有个问题。

最近我已经安装了nodejs(如果你不知道它是什么,它并不重要,可以是其他任何东西)从源到 /opt/node:

$ ls -la /opt
...
lrwxrwxrwx  1 root root   11 2012-07-25 13:48 node -> node-0.6.3/
drwxr-xr-x  6 root root 4096 2012-07-25 13:48 node-0.6.3
...
Run Code Online (Sandbox Code Playgroud)

所以,二进制文件在/opt/node/bin

$ ls -la /opt/node/bin
...
lrwxrwxrwx 1 root root      38 2012-06-20 11:44 npm -> ../lib/node_modules/npm/bin/npm-cli.js
...
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,npm在那里。为了更容易从命令行使用它,我$PATH.bashrc脚本中修复了它:

HOME=$HOME:...:/opt/node/bin

对 root 也是如此.bashrc

# which npm
/opt/node/bin/npm
Run Code Online (Sandbox Code Playgroud)

但是如果我用 sudo 运行 npm,npm则找不到:

$ sudo which npm
$ sudo npm -g install …
Run Code Online (Sandbox Code Playgroud)

linux sudo bashrc

3
推荐指数
1
解决办法
6721
查看次数

当我 sudo su 时,我用户的 .bashrc 中定义的函数会导致错误

我在用户的 .bashrc 文件中定义了一个函数,它在我的命令提示符下显示我当前的 git 分支名称:

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
PS1="\\[$(tput setaf 7)\\]\\w \$(parse_git_branch)> \\[$(tput sgr0)\\]"
Run Code Online (Sandbox Code Playgroud)

当我 sudo 到 su 时,看起来我的 PS1 被结转了,并且在每个命令之后我都会收到错误bash: parse_git_branch: command not found

我可以更改什么,以便当我对另一个用户 sudo 时,使用其 PS1 而不是我用户的 PS1?

编辑:这似乎只发生在我使用源 Python virtualenv 之后。如果我在获取 virtualenv 之前 sudo su ,则不会发生此错误。

sudo bash python bashrc

3
推荐指数
1
解决办法
3064
查看次数

预先授权sudo?(所以它可以稍后运行)

我经常在晚上回家之前让我的工作计算机运行一些耗时的计算。完成后,我希望它关闭。但是,由于关闭需要 root 权限,因此必须使用sudo执行。显然,7 小时后我没有在那里输入我的密码,到目前为止,我不得不以 root 身份执行整个命令列表(cmd1;cmd2;cmd3;...shutdown)——这并不理想。

有没有办法可以在命令列表的末尾“预授权”sudo?以某种方式我可以在执行开始时完成我的密码,这样 bash 以后就不需要我了?

谢谢!

linux sudo bash passwords command-line

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

sudo 实际上是如何工作的?

sudo 怎么可能实际运行?如果它只是一个普通的程序,难道你不能在不需要用户身份验证的情况下做同样的事情,让任何人都可以访问计算机自动 root 访问权限吗?它如何在没有 root 密码的情况下以 root 身份执行操作?

linux unix root sudo

3
推荐指数
1
解决办法
1012
查看次数

如何从 Bash 以 root 身份登录并执行操作

这是我的简单 bash:

cat test.sh

#!/bin/bash 
echo "hello"
su - root -c /path/to/script.sh <<EOF
password                              
EOF
whoami
echo "good bye"
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

./test.sh
hello
su: must be run from a terminal
<current-user>
good bye
Run Code Online (Sandbox Code Playgroud)

(或者)

cat test2.sh
#!/bin/bash 
echo "hello"
sudo su <<EOF
password                              
EOF
whoami
echo "good bye"
Run Code Online (Sandbox Code Playgroud)

又一个错误

(或者)

cat test3.sh
#!/bin/bash 
echo "hello"
su root <<EOF
password                              
EOF
whoami
echo "good bye"
Run Code Online (Sandbox Code Playgroud)

又是错误...

当我尝试:

#!/bin/bash
echo "hello"
sudo -s <<EOF
<password>
echo Now I am root
id                                                                      
echo "yes!" …
Run Code Online (Sandbox Code Playgroud)

linux sudo bash login su

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

使用 sudo 进行 ssh 配置

我正在将本地机器备份到远程服务器。因为我想备份整个本地机器,即使是我的本地用户通常无法访问的文件,我使用 sudo 来做,所以命令看起来像sudo rsync -M--fake-super --other-arguments / me@server:/backup/location.

这有一个问题,即 ssh 尝试使用 root 的 ssh 配置和证书,这些显然没有设置。最近我开始通过定义的别名来引用服务器,~/.ssh/config并且该方法停止正常工作。

问题是:有没有办法可以使用 sudo 的访问权限,但同时保留普通用户的 ssh 配置?

linux ssh sudo rsync

3
推荐指数
1
解决办法
8300
查看次数

标签 统计

sudo ×10

linux ×6

bash ×4

bashrc ×2

root ×2

centos ×1

command-line ×1

login ×1

mac ×1

passwords ×1

python ×1

rsync ×1

script ×1

shell ×1

ssh ×1

su ×1

terminal ×1

unix ×1