Если я вызову команду с аргументами, например, так:
bob@bob-pc:~$ command -arg1 -arg2
... могут ли другие пользователи просматривать аргументы, переданные команде?
command-line
security
process
Натан Осман
источник
источник
Ответы:
В общем, да, они это видят. Это из
w
справочной страницы:Будет отображена полная командная строка вашего текущего запущенного процесса. Вот почему вы не хотите предоставлять такие вещи, как пароли через аргументы командной строки.
источник
XXXXXXXX
); Я хотел бы знать, как. Это может сделать что-то нехорошее, например, просто разветвляться и выдавать ложный аргумент; Я не уверенВ общем, аргументы командной строки видны всем. Например, как пользователь без полномочий root в OpenBSD, я вижу аргументы процессов, выполняющихся от имени пользователя root:
В Linux вы заметите, что все
/proc/*/cmdline
файлы доступны для чтения.Могут быть очень специфические настройки, в которых аргументы командной строки остаются закрытыми. Например, SELinux и Solaris могут скрывать процессы от других пользователей . Но если вы абсолютно не знаете, что находитесь в такой настройке, предположите, что аргументы командной строки являются открытыми.
источник
На стандартных установках аргументы видны. Как уже упоминалось , процессы могут перезаписывать их в памяти, но не раньше, чем другие процессы смогут их увидеть.
Однако в набор патчей grsecurity входит патч, который изменяет его, поэтому только владелец процесса (и пользователь root) могут видеть аргументы, передаваемые процессу.
источник