Скрипт работает без sudo, не работает с sudo

1-

Здесь - это то, как это делает:

static int getdestaddr_iptables(int fd, const struct sockaddr_in *client, const struct sockaddr_in *bindaddr, struct sockaddr_in *destaddr)
{
        socklen_t socklen = sizeof(*destaddr);
        int error;

        error = getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, destaddr, &socklen);
        if (error) {
                log_errno(LOG_WARNING, "getsockopt");
                return -1;
        }
        return 0;
}

IPTables переопределяет оригинальный адрес назначения, но он вспоминает старый. Код приложения может затем извлечь его, задавая специальную опцию сокета SO_ORIGINAL_DST .

0
18.06.2015, 13:24
2 ответа

Я подозреваю, что в /root/.ssh/known_hosts нет записей myip. Пожалуйста, попробуйте один раз sudo ssh root@myip интерактивно перед запуском этого скрипта.

Кроме того, вы можете отключить проверку ключа хоста:

#!/bin/bash -v
sshpass -p '<pypasswd>' scp -o StrictHostKeyChecking=no blah.img root@myip:/home/user/blah.img
exit 0
2
28.01.2020, 02:28

Если вы недавно добавили libCmp.

В качестве корня можно попробовать:

ldconfig -v

ldconfig создает необходимые ссылки и кэш для самых последних общих библиотек, найденных в каталогах, указанных в командной строке, в файле/etc/ld.so.conf и в надежных каталогах (/lib и/usr/lib). Кэш используется временем выполнения linker, ld.so или ld-linux.so

Параметр -v создает список ldconfig для всех файлов, на которые он ссылается в кэше. Затем можно просмотреть выходные данные и подтвердить наличие libCmp.

-121--125508-

Если вы хотите избежать ошибок «в разрешении отказано» и рекурсивно искать всю файловую систему Android, вам необходимо иметь «укоренившееся» устройство.

После установки корневого устройства можно установить любое приложение эмулятора терминала, запустить su и выполнить команду find .

Например, вы хотите найти все файлы с расширением .ko , поэтому выполните команду

find/-name «* .ko» в эмуляторе терминала после выполнения команды su .

-121--229367-

Пользователь root не имеет тех же закрытых ключей, которые используются, когда он не работает как root. Поэтому в качестве корня копировать материал нельзя.

Попробуйте скопировать добавление ~/.ssh/id _ rsa в /root/.ssh/id _ rsa (или другого закрытого ключа, используемого для подключения к myip ).

Можно также разрешить sudo выполнять другие действия и вернуться к «обычному» пользователю в сценарии явным образом перед копированием.

1
28.01.2020, 02:28

Теги

Похожие вопросы