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 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.