Если у пользователя нет разрешения на выполнение и он не может или не желает его изменять, он должен выполнить его как группа или пользователь, у которого есть разрешение на выполнение.
Если они знают пароль root, то:
su -c <executable>
Если они не знают пароль root, но им доверяет sudo
, то:
sudo <executable>
Если они не знают пароль root и не имеют прав sudo
, то есть причина, по которой они должны запускать исполняемый файл.
Вы можете написать
nohup bash -c 'mosquitto_sub -v -u Test -P Test123 -t "#" | while read -r line ; do
echo -e "$(date "+%Y-%m-%d %H:%M:%S") $line"
done | tee -a MQTT.txt'
Однако на самом деле вам нужно screen
или tmux
. Эта программа позволит вам запустить команду, выйти из системы и после входа в систему просто подключиться к старому «уже закрытому» терминалу.
Очень простой сеанс экрана в вашем примере будет выглядеть так:
screen
mosquitto_sub -v -u Test -P Test123 -t '#' | while read -r line ; do
echo -e "$(date "+%Y-%m-%d %H:%M:%S") $line"
done | tee -a MQTT.txt
# Hit "Ctrl-a d", it will detach the screen
Теперь вы можете закрыть терминал и выйти из системы, после входа снова запустить screen -R
.