我希望用户对特定目录下的几个 shell 脚本(在我的情况下为 )拥有 sudo 权限(无需密码检查/usr/local/tomcat7/bin),而没有其他任何地方。实现这一目标的最简单方法是什么?
像这样的东西/etc/sudoers似乎不起作用:
jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin
Run Code Online (Sandbox Code Playgroud) 免责声明:我在系统管理员方面还是个新手。
我正在尝试在 AWS EC2 实例中设置端口转发,这必须在命令行中完成,因为我不想进入并编辑任何内容,它必须是自动的(这是构建过程的一部分)。
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
没有权限
奇怪的是我已经(成功地)使用sudo了几乎所有需要su特权的命令。如果我sudo su在命令之前执行(在ssh会话中手动尝试),则它可以工作。
这背后的原因?不涉及sudo su或手动编辑的可能解决方案?
我试图理解直接使用 root 进行 ssh 或在维护服务器的情况下创建辅助 sudo 用户之间的技术参数/安全影响。为了澄清这一点,我们讨论的是单个管理员拥有的服务器。对于在机器上工作的多人来说,很明显,为每个实际人员拥有唯一的用户和细粒度的权限可以带来审计跟踪的好处。
我的想法是,如果这是一个桌面站,那么这是有道理的,建议使用非root用户进行日常工作,但在服务器上,您通常登录来维护它,并且99%的时间您的所有活动都需要root权限。
那么,创建一个“代理”用户(无论如何都要 sudo 到 root,而不是直接提供对 root 的 ssh 访问权限)是否有任何安全优势呢?
我能想到的唯一好处是通过模糊性实现安全性,即机器人通常会尝试探测“root”用户。但从我的角度来看,如果 sudoers 的用户受到威胁,就等同于 root 用户受到威胁,所以游戏就结束了。
此外,大多数远程管理框架、NAS 系统、虚拟机管理程序都鼓励使用 root 用户进行 Web 登录。
当我su -进入 root 时,我的当前目录被设置为 root 的家。无论如何要保留我所在的当前目录,就像sudo -s. 或者是使用 sudo 的答案?
我正在运行一个生产级 Amazon ec2 实例,我想关闭所有用户的 root 权限。通常,当以 ec2-user 身份登录实例时,ec2-user 会立即获得 sudo 权限,我试图取消该权限以确保安全。
我能够为 root 用户设置一个新密码,我进入 /etc/sudoers 尝试从 sudo 权限中删除 ec2-user,但该用户甚至没有列在文件中。有人知道如何从运行默认 linux 安装的 Amazon ec2 实例上的 sudo 权限中删除 ec2-user 吗?
我注意到在一台使用 Debian 的机器上出现了一个奇怪的行为,我无法在另一台运行 Ubuntu 的机器上重现。当virsh以普通用户列出网络时,它显示一个空列表:
~$ virsh 网络列表 --all 名称 状态 自动启动 持久 -------------------------------------------------- --------
使用 运行相同的命令时sudo,它会显示默认连接:
~$ sudo virsh 网络列表 --all 名称 状态 自动启动 持久 -------------------------------------------------- -------- 默认活动 否 是
文件本身的权限似乎设置正确:
~$ ls -l /etc/libvirt/qemu/networks 共 8 个 drwxr-xr-x 2 根 4096 7 月 1 日 18:19 自动启动 -rw-r--r-- 1 根根 228 Jul 1 18:19 default.xml
用户属于kvm和libvirtd组。
怎么了?为什么我不能以普通用户的身份列出网络?
我希望向/etc/sudoers.d包含指令的文件夹添加一个文件,以允许www-data在没有 root 密码的情况下运行一个特定的脚本。
该指令是
www-data ALL=(ALL) NOPASSWD: /path/to/script.sh
Run Code Online (Sandbox Code Playgroud)
如果我visudo将其添加到 中/etc/sudoers,则没有问题。
如果我将该行放在一个文件中并将其复制到/etc/sudoers.d, 那么visudo它会告诉我该文件在第 1 行附近有一个“语法错误”。
我还需要在文件中放入其他东西,或者我需要做些什么才能使其工作?
我正在运行 Ubuntu 18。
谢谢!
如何检查我的python脚本是否在类似BSD的操作系统下以管理员权限(sudo)运行?需要显示用户友好的警告,以便在没有管理员权限的情况下执行。
我想检查一个文件是否存在
[ -f /path/to/file/ ]
但是,我以普通用户身份运行此命令,并且该文件归 root 所有。我如何使用 sudo 来完成此操作。
sudo [ -f /path/to/file/ ] 不起作用。
我sudo在 Debian 8 上遇到了一个相当奇怪的问题。用户无法在/etc/sudoers.d. 我使用 Chef 来分发配置,所以所有文件都是自动生成的。
例子:
这个配置工作正常
root@server:~# cat /etc/sudoers.d/nginx
# This file is managed by Chef.
# Do NOT modify this file directly.
user ALL=(root) NOPASSWD:/usr/sbin/nginx
Run Code Online (Sandbox Code Playgroud)
这失败了:
root@server:~# cat /etc/sudoers.d/update-rc.d
# This file is managed by Chef.
# Do NOT modify this file directly.
user ALL=(root) NOPASSWD:/usr/sbin/update-rc.d
user@www42:~$ sudo update-rc.d
[sudo] password for user:
Sorry, user user is not allowed to execute '/usr/sbin/update-rc.d' as root on server.
Run Code Online (Sandbox Code Playgroud)
有什么问题?
诊断:
Mar 5 12:12:51 server …Run Code Online (Sandbox Code Playgroud)