我已经在pi(拉伸)上安装了Motion软件包。如果我在前景中开始运动,则它可以工作,但是当我尝试将其作为守护程序启动时,它会失败,并显示以下日志消息:

motion: permission denied for /var/log/motion/motion.log


我已经看到了许多方法通过修补/ var / log / ...的权限来解决此问题,但这并不能说服我。

Q解决此问题的正确方法是什么?

Update

我已将Motion安装为服务,并通过

sudo service motion start


启动它进行测试,但即使如此,它仍会失败并显示错误以下消息


raspberrypi运动[323]:[0:运动] [错误] [全部] myfopen:使用模式a打开文件/var/log/motion/motion.log时出错:权限被拒绝


#1 楼

知道了!为了进行测试,我从sudo motion -b开始运动。因此,/var/log/motion/motion.log是用root:root编写的。删除/var/log/motion并重新启动后,motion守护程序已启动并正在运行,并具有写入日志的权限。

评论


同样的事情发生在我身上。我认为这应该是公认的答案。删除/ var / log / motion目录后,请使用sudo service motion restart重新启动服务,它可以正常工作。

–琼赛
18-10-20在3:05

同样的事情发生在我身上。不得不sudo rm -fr / var / log / motion然后重新启动服务,现在正确的所有者/组显示在该文件夹上。

–乔什(Josh P)
20年1月4日15:22



#2 楼

有三种方法可以解决此问题。只是从不同的角度来看,所有这些都是真的相同。这是为了确保用户开始运动具有访问权限以写入/ var / log / motion /目录。首先可以使该用户成为目录的所有者。并授予所有者写访问权限。第二个方法是使用sudo命令使用root用户启动守护程序。另一种可选的第三种方法是允许对“运动”组的日志目录进行写访问,并使需要启动守护程序的所有用户成为一个补充组。

假设要创建组运动并添加用户pi

pi@raspberrypi:~$sudo groupadd motion pi@raspberrypi:~$sudo usermod -aG motion pi

最后更改/ var / log / motion目录的所有权和权限

pi@raspberrypi:~$cd /var/log pi@raspberrypi:/var/log $ chown root:motion motion pi@raspberrypi:/var/log $ chmod 664 motion

像我已经提到的那样,使用sudo命令以应该已经具有所有正确权限的root用户身份启动守护程序是更加简单和正常的做法。

#3 楼

我已经测试了所有答案,但没有解决方案。重新启动树莓派之后,问题仍然存在。请按照以下步骤解决问题。


创建另一个目录:

sudo mkdir /home/log/motion


在此目录中创建日志文件:

sudo touch /home/log/motion/motion.log


将配置文件更改为此新的日志文件:

 nano /etc/motion/motion.conf


添加/更改此行:

logfile /home/log/motion/motion.log


重要的部分是将motion用户权限添加到我们的新日志文件中,因为它将以motion:motion的身份运行:

sudo chown motion:motion /home/log/motion/motion.log


评论


谢谢!我已经阅读了很多答案,这是第一个解决运动作为运动用户运行的问题的人。

– jsaven
20/12/31在5:33

#4 楼

我弄错了,并打开了Motion的2个会话:
1。通过Raspbian
2自动启动。由我发起sudo motion

由我发起阻止文件,sudo rm -rf /var/log/motion/*帮助我。

评论


这与接受的答案有何不同?

– RalfFriedl
19年5月18日在19:56

如果看不到病,请向您解释。如果有人用“ sudo motion”问谷歌,他会找到这个答案。我解释了一种情况。

–卡米尔
19年5月18日在20:07

#5 楼

从Raspian Stretch(4.19.27-v7 +#1206)和运动3.2.12开始,此方法也起作用:


创建了一个新目录(sudo mkdir /tmp/motion
更改权限(sudo chown motion:motion /tmp/motion
logfile中的/etc/motion/motion.conf指向/tmp/motionsudo nano /etc/motion/motion.conf并添加logfile /tmp/motion
重新启动运动(sudo服务运动重新启动)。


评论


OP告诉您(尽管以遮遮掩掩的方式)他/她正在使用Raspbian Stretch。那么,关于Ubuntu上的Motion的答案有何相关之处?

–道奇
19年3月31日在8:41

道吉(Dougie)...谢谢。。。疲惫的心灵容易滑落。

–布拉德·埃尔文(Brad Erlwein)
19年4月2日在14:05