标签: sudo

一个 sudo 用于多个终端

Sudo root 权限是针对特定时间授予的,但仅限于一个终端。如果我想在那个时间段内在另一个终端中使用 sudo,我必须再次输入密码。如何强制 sudo 跨终端工作?

sudo bash shell

17
推荐指数
1
解决办法
2354
查看次数

无法在 Debian 7.2.0 上安装 Parallels Tools

(Parallels Desktop 9,最新版本)

按照说明,我切换到root:

$ su - root
$ whoami
root
$ echo $EUID
0
Run Code Online (Sandbox Code Playgroud)

然后执行安装程序:

$ cd /media/cdrom0
$ ./install
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

sudo: unable to execute ./install: Permission denied
Run Code Online (Sandbox Code Playgroud)

什么?我是根!这是怎么回事?我仔细检查以确保设置了执行位:

$ ls -lA | grep install$
-r-xr-xr-x 1 root root  17284 Oct 25 09:22 install
Run Code Online (Sandbox Code Playgroud)

是的。人们在网上说你需要输入sudo后安装脚本拖动到终端。所以我这样做了,这个命令就是这样形成的:

$ sudo '/media/cdrom0/install'
sudo: unable to execute /media/cdrom0/install: Permission denied
Run Code Online (Sandbox Code Playgroud)

这里的解决方案是什么?

parallels debian root sudo permissions

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

UNIX - mount:只有 root 可以这样做

我需要允许非 root 用户挂载/卸载设备。说到 UNIX,我完全是个菜鸟,所以请帮我把它弄糊涂。

我一直在寻找interwebz的所有答案,似乎每个人都给出了相同的答案,即修改/etc/fstab以将该设备包含在该user选项中(或者users,两者都尝试过)。我这样做了,它仍然说mount: only root can do that

这是我的 fstab 的内容:

# /etc/fstab:静态文件系统信息。
#
# 使用 'vol_id --uuid' 打印一个通用唯一标识符
# 设备; 这可以与 UUID= 一起使用,作为一种更强大的设备命名方式
# 即使添加和删除磁盘也能正常工作。请参见 fstab(5)。
#
#                
proc /proc proc 默认值 0 0
# / 在安装过程中位于 /dev/mapper/minicc-root
UUID=1a69f02a-a049-4411-8c57-ff4ebd8bb933 / ext3 relatime,errors=remount-ro 0 1
# /boot 在安装过程中位于 /dev/sda5
UUID=038498fe-1267-44c4-8788-e1354d71faf5 /boot ext2 relatime 0 2
# 安装期间交换位于 /dev/mapper/minicc-swap_1
UUID=0bb583aa-84a8-43ef-98c4-c6cb25d20715 无交换 sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 用户,noauto,exec,utf8 0 0
/dev/scd0 …

unix root mount sudo fstab

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

如何让共享密钥 .ssh/authorized_keys 和 sudo 一起工作?

我已经设置了 .ssh/authorized_keys 并且能够使用 pub/private 密钥使用新的“用户”登录......我还将“用户”添加到 sudoers 列表中......我现在遇到的问题是什么时候我尝试执行一个 sudo 命令,简单的像:

$ sudo cd /root
Run Code Online (Sandbox Code Playgroud)

它会提示我输入我输入的密码,但它不起作用(我使用的是我设置的私钥密码)

另外,我已经禁用了用户的密码

$ passwd -l user
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

某处我最初的评论被误解了......

我正在尝试强化我的系统......最终目标是使用公钥/私钥进行登录而不是简单的密码身份验证。我已经想出了如何通过authorized_keys 文件来设置所有这些。

此外,我将最终阻止通过 root 帐户登录服务器。但在我这样做之前,我需要 sudo 为第二个用户(我将一直登录系统的用户)工作。

对于第二个用户,我想阻止常规密码登录并仅强制发布/私钥登录,如果我不通过“ passwd -l user 锁定用户......那么如果我不使用密钥,我仍然可以使用常规密码进入服务器。

但更重要的是,我需要让 sudo 与禁用密码的用户一起使用公钥/私钥设置。


编辑:好的,我想我已经明白了(解决方案):

1) 我已经调整了 /etc/ssh/sshd_config 并设置了PasswordAuthentication no 这将阻止 ssh 密码登录(确保在执行此操作之前设置了有效的公钥/私钥

2)我调整了sudoers列表visudo并添加了

root      ALL=(ALL) ALL
dimas     ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

3) root 是唯一有密码的用户帐户,我正在测试两个没有设置密码的用户帐户“dimas”和“sherry”(密码为空,passwd -d user

以上基本上可以防止每个人使用密码登录系统(必须设置公钥/私钥)。

此外,sudoers 列表中的用户具有管理员权限。他们也可以su到不同的帐户。所以基本上“dimas”可以sudo su sherry,但是“dimas不能做su sherry。同样,不在sudoers列表中的任何用户都不能做su user …

linux ssh sudo ubuntu

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

为什么我不能 sudo 某些命令?(例如,vim)

我在我的朋友服务器上有 sudo 访问权限,运行 centos-6.3,但是当我尝试运行一些命令时,例如sudo vim /var/www/html/index.html出现错误sudo: vim: command not found,但是我可以运行sudo su,然后vim /var/www/html/index.html它按预期工作。

echo $PATH并且sudo echo $PATH都产生:

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jared/bin
Run Code Online (Sandbox Code Playgroud)

sudo which vim 然而产生:

which: no vim in (/sbin:/bin:/usr/sbin:/usr/bin)
Run Code Online (Sandbox Code Playgroud)

我试过添加

export PATH=$PATH:/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

/root/.bashrc其使用时,作为固定的问题,sudo su而不是只sudo <command>

我如何sudo <command>上班?

centos sudo

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

如何在不询问密码的情况下通过 SSH 启用 sudo 命令?

我有服务器 A 和服务器 B(都是 Ubuntu 10.04 LTS)执行不同的任务。服务器 A 需要戳服务器 B,它会生成一个文件,并在完成后通过 scp 将其发送回服务器 A。这一切都在内部进行,我不太关心安全问题。SSH 密钥交换已经在服务器 A 和 B 之间执行并且工作正常。

在服务器 B 上,脚本generateOfflineSig看起来像

#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp
Run Code Online (Sandbox Code Playgroud)

同样在服务器 B 上,visudo 有这个条目:

jeff ALL=NOPASSWD: ALL

如果我sudo ls在服务器 B 上执行,这会起作用……没有询问密码。

不幸的是,SSH 总是要求在服务器 A 上输入密码:

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?这个过程不能被密码输入中断。

linux ssh sudo ubuntu

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

通过 sudo 传递 PATH

简而言之:如何让 sudo 每次都不刷新 PATH?

我在我的服务器上部署了一些网站(Debian 测试),这些网站是用 Ruby on Rails 编写的。我使用 Mongrel+Nginx 来托管它们,但是当我需要重新启动 Mongrel(例如,在进行一些更改之后)时会出现一个问题。

所有站点都在 VCS 中检查(git,但这并不重要)并且将所有者和组设置为我的用户,而 Mongrel 运行在权限受到严格限制的 mongrel 用户下。所以Mongrel必须在root下启动(它可以自动改变UID)或mongrel。

为了管理 mongrel,我使用 mongrel_cluster gem,因为它允许只用一个命令启动或停止任意数量的 Mongrel 服务器。但是它需要目录 /var/lib/gems/1.8/bin 位于 PATH 中:这不足以以绝对路径启动它

在 root .bashrc 中修改 PATH 没有任何改变,调整 sudo 的 env_reset 和 env_keep 也没有。

所以问题是:如何将目录添加到 PATH 或将用户的 PATH 保留在 sudo 中?

更新:一些例子

$ env | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/var/lib/gems/1.8/bin
$ sudo cat /etc/sudoers | egrep -v '^$|^#'
Defaults    env_keep = "PATH"
root    ALL=(ALL) ALL
%sudo ALL=NOPASSWD: ALL
$ sudo env …
Run Code Online (Sandbox Code Playgroud)

linux sudo path gem

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

更改 sudo su 外壳

每当我sudo su从我的正常zsh(使用oh-my-zsh框架)运行时,sh默认情况下我被迫使用旧的 Bourne shell ( )(显然;这是大多数 *nix 类系统上的标准行为)。如果我在运行后zsh从内部sh运行sudo su,我会得到 Z shell,但没有 oh-my-zsh 的改进。

有没有办法将shellsudo su启动更改为zsh?如果是这样,是否也可以zsh使用oh-my-zsh?

我使用的是 OS X 10.8.4。

sudo zsh sh oh-my-zsh macos

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

限制用户执行选择性命令 (Linux)

如何限制我的用户仅执行选择性命令。我在 tomc 组中有一个用户 tomc。我需要这个用户成为 sudo 用户,然后限制 bash。我已经尝试在/etc/sudoers文件中遵循以下代码,但它不起作用,因为用户能够执行其他命令,例如mkdirrm

%tomc ALL=/bin/bash,/usr/bin/vim /*
Run Code Online (Sandbox Code Playgroud)

linux sudo

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

如何在 Mac 上的 /usr/bin 中创建符号链接?

环境:OSX Sierra,Darwin Kernel Version 16.3.0

根本问题:我想在中央存储库中使用一堆 shell 脚本,它们有一个 #!/usr/bin/zsh。在我的 Mac 上,zsh 位于 /bin/zsh 中。

尝试的解决方案:我想创建一个符号链接

ln -s /bin/zsh /usr/bin/zsh
Run Code Online (Sandbox Code Playgroud)

我的用户帐户具有管理员权限,但我不是 root,我不想在这台 Mac 上启用 root 用户。因此我首先做了一个

sudo su
Run Code Online (Sandbox Code Playgroud)

获取具有 root 权限的 shell,然后执行ln命令。但是我仍然收到错误消息ln: /usr/bin/zsh: Operation not allowed

问题:

  • 为什么我会收到此错误消息?

  • 我需要做什么来创建链接?

  • 有没有更好的方法来实现我最初的目标?请注意,修复 #! 线不是一种选择。

sudo shell symbolic-link ln su

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

标签 统计

sudo ×10

linux ×4

root ×2

shell ×2

ssh ×2

ubuntu ×2

bash ×1

centos ×1

debian ×1

fstab ×1

gem ×1

ln ×1

macos ×1

mount ×1

oh-my-zsh ×1

parallels ×1

path ×1

permissions ×1

sh ×1

su ×1

symbolic-link ×1

unix ×1

zsh ×1