我已经阅读了很多关于此的内容,但仍然不确定为什么这不起作用。据我所知,所有目录都有正确的权限,即使所有内容都是 777,我在尝试将此程序作为服务运行时仍然被拒绝。我试图作为伺服系统运行的程序称为 xTeVe。我尝试在所有不同的目录、用户下运行它,但似乎没有任何效果。
这是单元文件:
[Unit]
Description=XTeVe For Plex
After=network.target network-online.target
[Service]
ExecStart=/root/IPTV/xteve
user=root
Restart=on-failure
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我知道这不应该以 root 身份运行,但这只是我尝试的最后一个用户
当我尝试启动服务时,我得到了这个:
14:20 xteve.service: Failed with result 'exit-code'.
14:02 xteve.service: Main process exited, code=exited, status=203/EXEC
14:02 xteve.service: Failed at step EXEC spawning /root/IPTV/xteve: Permission denied
14:02 xteve.service: Failed to execute command: Permission denied
14:02 Started XTeVe For Plex.
Run Code Online (Sandbox Code Playgroud)
这是文件权限:
[root@skynet IPTV]# ls -la
total 12084
drwxr-xr-x. 2 root root 19 Mar 6 13:58 .
dr-xr-x---. 5 root root 175 …Run Code Online (Sandbox Code Playgroud) 我正在寻找通过 SSH 调用远程命令的最佳方式。我创建用户“rpcall”,生成新证书并填写authorized_keys。用它多一点保护它
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
Run Code Online (Sandbox Code Playgroud)
现在用户 rpcall 无法登录到终端
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
Run Code Online (Sandbox Code Playgroud)
但可以运行任何命令
ssh -l rpc 192.168.12.1 cat /etc/passwd
Run Code Online (Sandbox Code Playgroud)
是否有任何解决方案可以将命令执行限制为一个处理脚本?例如/home/rpcall/bin/command.sh
我为这个用户设置了 bash shell 并使用 .bashrc 强制运行处理脚本,但我不知道如何从 ssh 调用传递参数。
.bashrc 用户 rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
Run Code Online (Sandbox Code Playgroud)
来自其他机器的 ssh 调用
ssh -l rpcall 192.168.12.1 "param1" "param2"
Run Code Online (Sandbox Code Playgroud) 我在 MediaTemple 上使用他们的(ve)虚拟 Linux 机器运行 Fedora Linux。几乎是全新安装(Linux ************ 2.6.18-028stab089.1 #1 SMP Thu Apr 14 13:46:04 MSD 2011 x86_64 x86_64 x86_64 GNU/Linux)。
我正在尝试进行一些 Pear 安装,需要/tmp重新安装exec选项。没问题吧?所以我正在跑步root,我只是为了它:
[root@host ~]# mount -o remount,exec /tmp
mount: permission denied
[root@host ~]#
嗯,这有点出乎意料。MediaTemple 支持不对此提供任何帮助——它不在 SLA 中。鉴于这是一个非常普通的设置,也许有人知道这里出了什么问题?
编辑:
这里有一些额外的信息。运行mount显示:
[root@host ~]# mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
/dev/simfs on /tmp type simfs (rw,noexec,relatime,usrquota,grpquota)
/dev/simfs on /var/tmp type simfs (rw,noexec,relatime,usrquota,grpquota)
proc on /proc type proc (rw,relatime)
sysfs on /sys type …
Centos 上出现了相当奇怪的错误消息。
我尝试运行这个命令:
find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
find: invalid argument `-exec' to `-mtime'
Run Code Online (Sandbox Code Playgroud)
其他发行版上的“查找”会有所不同吗?
我不确定这是一个 SO 还是 SF 问题,但我认为这可能是最好的地方。如果不是,我道歉!
我正在通过 PHP exec 使用 mysqldump,但它似乎不起作用。我使用的代码是
<?php
exec('mysqldump -u DB_USER -pDB_PASS DB_NAME > /tmp/test.sql');
?>
Run Code Online (Sandbox Code Playgroud)
当我运行这个脚本时,我在 error_log 上没有收到任何错误,但我没有在 /tmp 中得到转储。我不确定是什么原因造成的。我不确定它是否试图转储到 /tmp 相对于执行 PHP 文件的位置,这是我正在寻找的结果,还是转储到其他地方的 /tmp?还是我完全犯了另一个错误?
我有一个脚本,实际上只需要在服务器上运行一次,即在部署时,但认为最好让 Puppet 管理它。该脚本重新映射了与本地系统用户冲突的几个旧用户 ID。
我检查的方法是 gopher 用户的默认 uid 是否为 13。如果是,那么我需要运行我的重新映射脚本。
exec { "change_uid":
command => "/script/to/run.sh",
provider => 'shell',
path => [ "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin" ],
onlyif => "test `/usr/bin/id -u gopher` -eq 13; echo $?",
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述onlyif检查的几种不同排列,但是 exec 总是在代理上被解雇。
当我直接在命令行中运行该命令,它返回0或1,这可能涉及到的事实,庆典返回0,当真正和1时,假的,但我认为它更可能是我误解的方式onlyif工作.
当 gopher 的 uid=13 时,我怎么能有这个 exec 火?我愿意采用其他方法来实现我在这里尝试完成的工作。
更新
我放弃了回声部分。最终的工作解决方案是:
exec { "change_uid":
command => "/script/to/run.sh",
path => [ "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin" ],
onlyif => "test `id -u …Run Code Online (Sandbox Code Playgroud)