
Я пытаюсь предотвратить удаленный вызов скрипта. Пользователь должен сначала войти в систему по SSH, а затем запустить скрипт
ssh remote-server "script.sh"
должен потерпеть неудачу
ssh remote-server
и после входа
./script.sh
должно работать
Я могу изменить владельца и применить chmod
, но тогда удаленный пользователь сможет использоватьssh remote-server "sudo -u newuser ./script.sh"
Использование экземпляра AWS EC2
решение1
Запуск ssh foo@remote-server
с последующим ./script.sh
эквивалентен запуску ssh foo@remote-server ./script.sh
, а запуск ssh foo@remote-server
с последующим sudo -u bar ./script.sh
эквивалентен ssh foo@remote-server sudo -u bar ./script.sh
(за исключением того, sudo
что может произойти сбой, поскольку ему требуется TTY, что можно легко обойти). Так что, боюсь, то, о чем вы спрашиваете, не имеет смысла. Все, что вы делаете, чтобы обойти это искусственное различие, например, тестирование на наличие $TERM
или , [ -t 0 ]
вероятно, легко обойти.