我正在使用 cronjob 将 Java 工具作为命令行应用程序运行:
java -jar /var/java/-myfile.jar
默认情况下我使用logback
并写入/var/log/mylogfile.log
。
问题:运行 jar 的用户没有权限写入该/var/log/
文件夹。该文件夹仅对“root syslog”具有权限。
问题:我应该以 身份运行 jar 吗sudo
?或者我应该授予运行用户对该文件夹的写入权限吗?如果是,该怎么做?
答案1
我应该以 sudo 身份运行该 jar 吗?
不可以。这太危险了,因为您可以对系统进行任何更改,而一个放错位置的空间就可能毁掉整个系统。
或者我应该授予正在运行的用户对该文件夹的写权限吗?如果是,怎么做?
是的。两个主要命令是更改写入权限和更改日志文件的用户:
sudo chmod 664 /var/log/{yourdir}/mylogfile.log
sudo chown $USER:$USER /var/log/{yourdir}/mylogfile.log
其中 $USER 是您当前的活动用户,而 {yourdir}/ 是您定义的目录(例如,mysql 和 apache 使用它们自己的目录而不是/var/log/
填充/var/log/
)。这是一种略微好一点的方法。