我遇到以下问题:我的 Apache 和 PHP 脚本以用户 www-data 身份运行。
我想调用一个只能以 root 身份执行的脚本,因此我在 /etc/sudoers.d 中添加了一个新文件,以允许 www-data 用户执行此命令:
echo390:/var/www/html# cat /etc/sudoers.d/iptables
www-data ALL= NOPASSWD: /sbin/iptables
Run Code Online (Sandbox Code Playgroud)
我的 PHP 脚本如下所示:
<?php
$command = '"/usr/bin/sudo" "/sbin/iptables" -L -v -n | grep "220.177.198.43"';
echo 'Benutzer: '.exec('whoami').'<br/>';
echo 'Command: '.$command.'<br/>';
$result = array();
exec($command,$result);
print_r($result);
?>
Run Code Online (Sandbox Code Playgroud)
如果我通过以下方式从命令行调用脚本: sudo -u www-data /usr/bin/php test.php 一切都会按预期运行,但是当我通过 Apache 调用脚本时,我在 apache2/error 中收到以下错误。日志:
sudo: PERM_ROOT: setresuid(0, -1, -1): Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我已将 Ubuntu 从 12.02 升级到 14.04 相同的脚本在 Ubuntu 12.02 中运行没有任何问题。有谁能够帮助我?这里的错误在哪里?
www-data 组:
echo390:~$ groups …
有什么办法可以撤消sudo
脚本中的内容吗?喜欢..
sudo ./script.sh
Run Code Online (Sandbox Code Playgroud)
sudo
具有权限的命令 1,2,3,4,5
命令 6,7,8,9 无sudo
权限
我正在尝试启动 Ubuntu 手机背景从白色折纸背景更改为自定义背景。
我正在使用这段sudo
代码:
sudo cp /home/phablet/Pictures/background.png/usr/share/unity8/graphics/phone_background.png
Run Code Online (Sandbox Code Playgroud)
但我收到只读文件错误。
我需要帮助如何将只读文件更改为可重写。
我删除了目录“/usr/lib64”中“/lib/x86_64-linux-gnu/ld-2.31.so”的符号链接。突然间,几乎一切都停止了。我什至无法发出简单的 Linux 命令,如“pwd”、“ls”、“sudo”。由于“sudo”消失了,我什至无法恢复我删除的符号链接。
我是DIW。如果您知道我应该做什么才能恢复,请帮忙。
作为记录,我在台式机上运行 Ubuntu Mate 20.04 LTS。
在我的 lubuntu 22.04 上,我需要更改该文件/etc/hosts
。为此,我要执行命令:
> /usr/bin/cp /path/to/new_hosts /etc/hosts
Run Code Online (Sandbox Code Playgroud)
由非 root 用户在没有 sudo 命令的情况下执行。为此,我将以下行添加到文件中/etc/sudoers
:
<username> ALL = (root) NOPASSWD: /usr/bin/cp /path/to/new_hosts /etc/hosts
Run Code Online (Sandbox Code Playgroud)
/etc/sudoers
我已经检查了命令的正确语法:
> sudo visudo -c /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
该命令的输出是:
/etc/sudoers: parsed OK
/etc/sudoers.d/10-installer: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/kdesu-sudoers: parsed OK
Run Code Online (Sandbox Code Playgroud)
该消息/etc/sudoers: parsed OK
向我保证 的语法/etc/sudoers
是正确的。
当我cp
通过终端执行命令时,结果是Permission denied
。
错误在哪里?
我正在尝试将 OBS 的插件复制+粘贴到/snap/obs-studio/1284/usr/lib
. 它位于根目录中。粘贴选项呈灰色,执行以下操作:
sudo su
nautilus
Run Code Online (Sandbox Code Playgroud)
导致我打开它,admin:///snap/obs-studio/1284/usr/lib
但该选项仍然呈灰色。尝试 Ctrl+V 会导致此错误消息。
我尝试进入文件夹的权限,然后在属性下更改权限,但是收到此错误消息。
当我安装 Ubuntu 时,我使用 LVM 进行文件管理,我曾经并且仍然不知道这意味着什么。当我安装它时,我用谷歌搜索了一下,有些人说这是一个很好的功能;我不知道这是否与这个问题有关。我只是觉得我应该提出来。我发现有些人在讨论同样的问题,但对于大多数人来说,这似乎是在做sudo su nautilus
或gksudo nautilus
修复它,但正如所说,这对我不起作用。
编辑:我需要修改根文件,因为它是 OBS 插件的所在位置,有人建议它们位于
~/snap/obs-studio/current/.config/obs-studio/plugins
Run Code Online (Sandbox Code Playgroud)
我是否安装了OBS错误?我刚刚通过 Ubuntu Software thingy 安装了。我需要在 OBS 中做些什么吗?另外尝试通过OBS的“文件->显示设置文件夹”自动查找插件文件夹也没有任何作用。因为有人问:我需要粘贴这个插件才能录制每个应用程序的音频。应用程序音频捕获仅适用于 Windows。我需要将游戏音频和不和谐音频作为单独的轨道,以便能够编辑不和谐/游戏音频的某些片段,以防有人咒骂或游戏在短时间内太大声。
如何sudo
在 Unity 中以特权启动程序?我正在使用 Ubuntu 11.04。
我使用了这个命令,但它并没有真正起作用:
sudo synaptic
Run Code Online (Sandbox Code Playgroud) 我已经双启动到 lubuntu(使用 Windows XP)并且每次都被要求输入密码。如何以 root 身份运行所有内容而不再次询问密码?理想情况下,我想运行 nginx,但它有权限被拒绝的问题:
apathetic@ubuntu:~$ service nginx start
Starting nginx: nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2012/08/03 20:06:25 [warn] 4762#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2012/08/03 20:06:25 [emerg] 4762#0: open() "/var/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud) 可能的重复:
将用户添加到“sudo”组
我没有 root 权限 - 那么如何将用户添加到sudoers列表中?
我昨晚安装了ubuntu。而在阅读了 100 条帖子之后,我仍然无法完成我的sudo apt-get
工作。我记得,我必须以某种方式修改软件服务器。但我不记得如何或在哪里做。
什么都没有安装。
需要帮忙。
sudo ×10
lubuntu ×2
permissions ×2
12.04 ×1
apache2 ×1
command-line ×1
lvm ×1
nautilus ×1
php ×1
read-only ×1
scripts ×1
synaptic ×1
ubuntu-touch ×1