我目前正在创建一个需要单独用户运行重复程序的应用程序。由于安全原因,它们无法在root下运行,因此它们是由我正在处理的Java应用程序启动的,我使用runuser -l启动它们。但是,我无法进入某个目录,即使它是由用户拥有的,并且该用户在该文件夹中拥有770权限。
这就是我正在运行的内容:
runuser -l lp1 -c 'java \-jar /root/Desktop/workspace/LitePanel/servers/server1/server.jar \-Xms1024M nogui'
这个的输出是:
runuser: warning: cannot change directory to /root/Desktop/workspace/LitePanel/bin/servers/server1/: Permission denied
这是一个ls -all:
drwxr-xr-x. 3 root root 4096 Jan 30 14:03 .
drwxr-xr-x. 7 root root 4096 Jan 30 14:02 ..
drwxrwx---. 2 lp1 lp1 4096 Jan 31 03:07 server1
目录内:
drwxrwx---. 2 lp1 lp1 4096 Jan 31 03:07 .
drwxr-xr-x. 3 root root 4096 Jan 30 14:03 ..
-rwxrwx---. 1 lp1 lp1 9170551 Jan 31 03:07 server.jar
这是/ etc / passwd:
lp1:x:501:501::/root/Desktop/workspace/LitePanel/bin/servers/server1/:/bin/false
任何人都知道为什么会这样吗?看起来用户具有执行此操作所需的权限。
答案 0 :(得分:0)
你说过这个目录本身有权限770
并且由用户拥有,但它的父母呢?我相信cd
命令至少需要对父目录进行读访问(并可能执行)。