标签: sudo

授予用户 sudo 权限来启动/停止/等 systemd 服务,无需 sudo 密码

我有一个非 root 用户,我想授予他们 sudo 权限来启动和停止(等)systemd 服务文件,而无需密码。

\n

我尝试在/etc/sudoers.d/servicename (其中[username][servicename]是实际名称)中创建以下文件:

\n
[username] ALL=(root) NOPASSWORD: systemctl start [servicename]\n[username] ALL=(root) NOPASSWORD: systemctl stop [servicename]\n[username] ALL=(root) NOPASSWORD: systemctl restart [servicename]\n
Run Code Online (Sandbox Code Playgroud)\n

(对许多系统命令重复,例如reload// try-restart/ enable\xe2\x80\xa6)

\n

visudo告诉我这是一个语法错误。我该如何解决这个问题?

\n

我想放入脚本(正在以非 root 用户身份运行)sudo systemctl stop [servicename]

\n

Ubuntu Linux 18.04,来自 ubuntu 的 systemd(这是 v245)。我也希望它能在 Ubuntu 20.04 上运行。

\n

sudo systemd

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

灵活的 sudo 访问

我希望能够在我管理的系统上为用户提供访问文件 X 的能力,使用命令 Y 使用 sudo。

有没有办法做到这一点,同时允许对命令 Y 的参数有一定的灵活性?

下列:

用户 ALL=NOPASSWD: /usr/bin/X /path/to/Y

将允许用户以 Y 作为唯一参数运行 X,但是如果我想允许用户为 X 提供一些可选参数怎么办?

这个:

用户 ALL=NOPASSWD: /usr/bin/X * /path/to/Y

不安全,因为用户可以使用通配符将其他文件参数传递给 X。我需要一些更严格的限制。

我可以用 sudo 简单地做到这一点吗?还是我需要使用不同的方法?

security unix sudo

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

在无壳帐户上获得壳?

出于安全原因,我正在管理一个 CentOS 4.7 服务器,其中有几个无壳用户帐户。但有时无论如何我都需要一个用户外壳来进行安装。获得登录外壳的最佳方法是什么?刚才我用

sudo –u <user> bash –rcfile /home/<user>/.bash_profile
Run Code Online (Sandbox Code Playgroud)

但这并不完美。许多环境变量没有初始化。

埃里希

bash centos sudo

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

sudo 和 sudo -i 访问功能

sudo 和 sudo -i 之间的特权区别是什么?

有了sudo

    $sudo echo "search foo.bar.baz" >> /etc/resolv.conf
    bash: /etc/resolv.conf: Permission denied
Run Code Online (Sandbox Code Playgroud)

...与 sudo -i

    $sudo -i
    #echo "search foo.bar.baz" >> /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

...有用。特权是:

    drwxr-xr-x 166 root root 12288 2009-10-17 21:02 .
    -rw-r--r--   1 root root 42    2009-10-17 20:55 /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

我很惊讶这些命令有不同的行为,是什么导致 justsudo版本失败?

sudo unix-shell file-permissions

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

su 对自己没有密码

如何设置它以便对于su当前登录的同一用户,即

foo$ su -c 'something' foo
Run Code Online (Sandbox Code Playgroud)

不需要密码?这不会添加或删除任何安全性,因为它应该是一个 noop。

想要这个的原因是我希望有一类“低于”root 的用户可以管理在该用户下运行的机器上的某些特定服务,例如,news或者mysql(检查他们的数据,更改配置,重新启动等.) 这些用户将获得sudo该帐户的权限,并且通常运行良好,除了在某些情况下 init 脚本调用

su -c 'start_daemon ...' daemonuser
Run Code Online (Sandbox Code Playgroud)

这使这个计划落空。当然,我可以更改 init 脚本或添加额外的sudo权限,但我想避免此类异常,因为从长远来看,它们是一团糟。

的配置su在 PAM 中,所以正确的魔法可能就在那里。

linux debian sudo pam

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

编写只能由 sudo 用户在 Ubuntu 中运行的 shell 脚本

我正在编写一个只能由用户在 sudo 用户列表中运行的 shell 脚本,这样做的合适方法是什么?

我在想的是在 shell 脚本中,尝试在系统目录中创建一个虚拟文件,例如 /var/run/ 并将其删除,因此不在 sudo 列表中的用户将收到权限错误,但我相信必须有一个更合适的方法,最好检测用户是否在 shell 脚本中的 sudo 列表中。谢谢你的帮助

scripting ubuntu shell sudo

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

配置 sudo 以询问 root 密码

是否可以将 sudo 配置为要求输入 root 密码而不是用户密码?

服务器配置了一个 root 用户和一个具有有限权限的简单用户(我们称他为简单用户),用于部署托管在服务器上的所有应用程序。用户 simple 不在 sudoers 列表中,因此

$ sudo command
Run Code Online (Sandbox Code Playgroud)

不会工作,因为简单的密码不能授予他 root 权限。

有时,我需要通过 Capistrano(一种 ruby​​ 部署工具)运行一些需要 root 访问权限的脚本,并且编写脚本以便以 root 身份登录、运行脚本然后注销非常困难。我希望能够执行以下语句

$ sudo god restart tasks-group
Run Code Online (Sandbox Code Playgroud)

并让 Capistrano 提示我输入 root 密码。目前,Capistrano 提示输入部署用户密码,这显然是一个非管理员帐户。

su password root sudo capistrano

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

Ubuntu VPS 上 sudo 的 Bash 完成问题

我有一个 Linode 的 VPS。我部署了 Ubuntu 10.04 服务器。我添加了一个用户并将其放在 sudoers 文件中。当我以用户身份写作时

apti <TAB>
Run Code Online (Sandbox Code Playgroud)

它与选项卡一起完成

aptitude <TAB>
Run Code Online (Sandbox Code Playgroud)

但是当我继续

aptitude upd <TAB>
Run Code Online (Sandbox Code Playgroud)

它没有完成,但在我的桌面上效果很好。更糟糕的是,如果我用 sudo 尝试相同的命令

sudo apti <TAB>
Run Code Online (Sandbox Code Playgroud)

不起作用我检查了 .basrc、.profile/.bashrc 和 /etc/bash.basrc 文件,但它们都没有被注释掉,所以出了什么问题。顺便说一句,当我扎根时它可以工作

我的 ~/bashrc

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi
Run Code Online (Sandbox Code Playgroud)

vps bash sudo

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

sudo 命令用于什么

任何人都可以解释或指出 sudo 命令的使用,也许操作系统给出 su 命令。是不是解决了超级用户登录的问题。

让我重新表述一下 1) sudo 比 su 有什么优势?2) sudo 的显着特点是什么?

sudo

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

如何通过 sudo 以另一个用户身份通过​​ ssh 运行 GUI 应用程序

我在我的服务器上配置了 ssh,有时我必须在它上面运行一些图形应用程序。当我与-X选项连接时,它工作得很好。我可以运行,例如google-chrome。但是,如果我将用户更改为sudo -i -u other_user,则无法以该用户身份运行 GUI 应用程序。

我认为它与环境和显示有关,但不知道该怎么做。我尝试添加-E,但随后收到错误消息,提示我无法将其与-i. 如何以其他用户身份通过​​ ssh 运行 GUI 应用程序?

ssh sudo

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

标签 统计

sudo ×10

bash ×2

capistrano ×1

centos ×1

debian ×1

file-permissions ×1

linux ×1

pam ×1

password ×1

root ×1

scripting ×1

security ×1

shell ×1

ssh ×1

su ×1

systemd ×1

ubuntu ×1

unix ×1

unix-shell ×1

vps ×1