LINUX.ORG.RU

скрыть аргументы запуска программы из списка процессов?


0

0

есть некоторая программа, которая запускается с параметрами --user --pass,
других способов передачи аргументов нету, висит она достаточно долго и в ps aux , например, все эти --pass= светит

можно ли както (без переписывания самой программы) скрыть все аргументы в ps aux от любопытных глаз ?
(просто вероятно появится необходимость запускать ее на shared хостинге)

★★★★★
Ответ на: комментарий от Sylvia

ну и ладно, пришлось искать исходники этой неумной прогрыммы и дописать 2 строчки

if (!CV.pass)
if (getenv("DN3_PASSWD")) CV.pass = strdup(getenv("DN3_PASSWD"));

<------>if(!CV.pass) {
<------>fprintf(stderr, "client_error: you must specify a password\n");
<------>err ++;
<------>}

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

> ну и ладно, пришлось искать исходники этой неумной прогрыммы и дописать 2 строчки
> if (!CV.pass) if (getenv("DN3_PASSWD")) CV.pass = strdup(getenv("DN3_PASSWD"));


А теперь сделай cat /proc/$pid/environ и ужаснись ;)

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

я в курсе, но вот на нём mode 0400 ,
так что не небезопаснее чем хранить пароль в том же шелл-скрипте с которого все вызывается

и все же хочется универсального решения, сдается мне что это не последний случай..

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

> я в курсе, но вот на нём mode 0400

Уже лучше. Только вот подозреваю, что на хостинге у всех будет один и тот же пользователь www-data.

> и все же хочется универсального решения, сдается мне что это не последний случай..


Его нет, иначе бы во все подряд программы не засовывали возможность принимать пароль из файлового дескриптора.

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

плохой хостинг если не разделяет права и всем доступна дыра file system traversal через веб сервер )

не мой случай, скрипт для crontab с правами пользователя, root конечно может посмотреть, но... заморачиваться с тотальным шифрованием всего и вся в данном варианте излишне, не настолько там ценный аккаунт светится , хотя кому нипопадя в ps aux естественно l/p засвечивать не хочется.

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

Если в исходник лезть, можно пароль спрятать. 
Примерно так:

int main(int argc,char *argv[]) {
        char *password = argv[2];

        while (*password) *password++ = '*';
        sleep(100);
}

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

> в исходник лезть

ну если лезть можно и в environment пароль упрятать и для файла конфигурации поддержку сделать и , опционально, шифрование...

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от Lego_12239

это не от меня зависит, какой сделают - такой и будет

Sylvia ★★★★★
() автор топика

странно что никто не предложит вариант с setproctitle, было бы интересно реализовать какой-нибудь враппер, который ставит setproctitle() а потом вызывает child'ом что-то еще , при такой схеме возможно сохранить то что было установлено враппером?

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от cobold

да, но оно вроде не кажет environment для других uid

Sylvia ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.