В настоящее время я создаю приложение, которое требует, чтобы отдельные пользователи запускали дубликаты программ. Они не могут запускаться под root из-за соображений безопасности, поэтому они инициируются Java-приложением, над которым я работаю, и я запускаю их с помощью runuser -l. Однако я не могу записывать в каталог, даже если он принадлежит пользователю, а у пользователя есть 770 разрешений в папке.Невозможно записать CD в каталог внутри корня
Вот что я бегу:
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 -все:
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
А вот/и т.д./пароль:
lp1:x:501:501::/root/Desktop/workspace/LitePanel/bin/servers/server1/:/bin/false
Каждый знает, почему это происходит? Похоже, у пользователя есть необходимые разрешения для этого.
Вы уверены, что приложение java работает как lp1? возможно, попробуйте выполнить «whoami» в приложении java, чтобы убедиться, что он запущен как пользователь. – Xeli
@Xeli. Я уверен, что он работает как lp1, потому что я получаю то же самое, если я запускаю его и в терминале. – user3261318