LINUX.ORG.RU

Как запустить скрипт через at от non-root пользователя?

 , , ,


0

1

У меня есть два простых скрипта:

/opt/script/loloswitcher.sh

#!/bin/bash

echo "/opt/script/loloswitcherPostRun.sh" | at now

/opt/script/loloswitcherPostRun.sh
#!/bin/bash

logFile="/tmp/loloswitcherLog.txt"

/bin/date > $logFile
/bin/echo "Label 1" >> $logFile


/bin/sleep 3


/bin/date >> $logFile
/bin/echo "Label 2" >> $logFile

Права на эти скрипты следующие:
$ ls -la | grep lolo 
-rwxrwxrwx  1 root root  391 мар  2 10:47 loloswitcherPostRun.sh 
-rwxrwxrwx  1 root root  204 мар  2 10:24 loloswitcher.sh

Проблема в том, что если запустить loloswitcher.sh от root, то произойдет запуск loloswitcherPostRun.sh, будет создан файл /tmp/loloswitcherLog.txt, в него будут записаны обе метки Label 1 и Label 2.

Но если удалить /tmp/loloswitcherLog.txt и запустить loloswitcher.sh от обычного пользователя, то скрипт loloswitcherPostRun.sh не будет выполнен, и файл /tmp/loloswitcherLog.txt вообще не будет создан. В системных логах полное молчание, никаких ошибок или предупреждений.

Почему-то команда at способна выполнять скрипты только при запуске от рута. Что где еще нужно докрутить, чтобы можно было запускать команды через at от обычного пользователя?

★★★★★

Ты чего-то не договариваешь. УМВР.

$ ls /tmp/test*
ls: невозможно получить доступ к /tmp/test*: Нет такого файла или каталога
$ /opt/test1.sh 
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
job 9 at Tue Mar  2 14:18:00 2021
$ ls -l /tmp/test*
-rw-rw-r-- 1 redgremlin redgremlin 5 мар  2 14:18 /tmp/test.xxx
$ cat /opt/test1.sh 
#!/bin/bash

echo "/opt/test.sh" | at now
$ cat /opt/test.sh 
#!/bin/bash

echo "test" > /tmp/test.xxx

gremlin_the_red ★★★★ ()
Ответ на: комментарий от Xintrea

Какие подробности ты хочешь узнать?

Что ты делаешь ещё, кроме приведённого в стартопосте, что у тебя не работает. «потому что бога нет и точку сгорания перемещать некому» ©

gremlin_the_red ★★★★ ()

Ого, это же автор майтетры и лолосвитчера.

wandrien ()
Ответ на: комментарий от gremlin_the_red

Что ты делаешь ещё, кроме приведённого в стартопосте, что у тебя не работает.

Я сейчас проверил на удаленном Debian, на нем работает.

Из того, на что могу грешить, это то, что текущий дистр Astra Linux 1.6, либо то что я залогинен как доменный пользователь ALD.

Xintrea ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей