Если вы хотите подключиться к серверу с помощью ssh через VPN, поскольку вашей компании требуется VPN-подключение для доступа к серверу, есть еще один способ обойти VPN. Во-первых, вам нужно подключиться к вашему серверу с помощью VPN. Затем запустите ngrok , чтобы открыть обратный ssh (. Это правильный термин?)
ngrok tcp 22
Это даст вам адрес и порт. Обычно это выглядит так:0.tcp.eu.ngrok.io:12345
. Теперь вы можете остановить VPN и ssh на своем сервере, используя указанный выше адрес и порт.
ssh yourname@0.tcp.eu.ngrok.io -p 12345
Вы можете использовать sudo
с переключателем -u
.
Пример:
sudo -u tomcat whoami
Вы не можете легко сделать то, что вы просите (, т. е. заставить sudo startup.sh
работать как именованный не -пользователь root ). Однако вы можете сделать одно или оба из следующих
Предложите пользователям использовать sudo -u tomcat /path/to/startup.sh
вместо sudo /path/to/startup.sh
и в любом случае запретите последний
Добавьте эту строку в свойsudoers
(помните visudo
), чтобы tomcat
здесь была целевая учетная запись пользователя. Измените первый ALL
на список пользователей, если есть только определенные люди, которым разрешено запускать скрипт в качестве целевого пользователя
ALL ALL=(tomcat) /path/to/startup.sh
Заставьте скрипт выполнять sudo
и запретите sudo -u root
для скрипта. Вам понадобится #1 (выше ). Убедитесь, что tomcat
здесь соответствует tomcat
в sudoers
.
#!/bin/bash
#
targetUser=tomcat
if [[ $UID -ne "$(id -u "$targetUser")" ]]
then
exec sudo -u "$targetUser" "$0" "$@"
exit 1
fi
#...script continues but as the $targetUser...
Это позволяет запускать/path/to/startup.sh
(или даже просто startup.sh
, если он находится в $PATH
), и не беспокоиться о части sudo
.