Другие пользователи могут просмотреть аргументы, переданные команде?

sw_vers

Мое предложение состоит в том, чтобы использовать sw_vers. Пример произвел с 10.6.4:

> sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.6.4
BuildVersion:   10F569

Ответ, который предложил system_profiler | grep 'System Version' то, что я попытался использовать в прошлом, но это имеет 2 проблемы.

  1. Это медленно, так как это генерирует полный system_profiler дамп машины, собирая всю аппаратную и программную информацию материально-технических ресурсов.
  2. Вывод system_profiler изменялся со временем. например, вывод grep для 'Порядкового номера' на 10.6.4 "Порядковый номер (система): ZNNNNNZNZZZ", тогда как на 10.4.11 это был "Порядковый номер: ZNNNNZNZZZZ" - важность, являющаяся способностью синтаксического анализа вывода и добавить "(система)", часть может быть проблематичной, если Вы не ожидаете изменения.
21
18.10.2012, 00:46
3 ответа

В целом да, они видят его. Это от w страница справочника:

Следующие записи отображены для каждого пользователя: имя для входа в систему, имя tty, удаленный хост, входит во время, время простоя, JCPU, PCPU и com ‐ mand строка их текущего процесса.

Полная командная строка Вашего в настоящее время рабочего процесса будет отображена. Вот почему Вы не хотите предоставлять вещи как пароли через параметры командной строки.

13
27.01.2020, 19:43
  • 1
    Нет никакого способа отключить это? –  Nathan Osman 26.02.2011, 01:35
  • 2
    @George Там, потому что rdesktop делает это так или иначе (аргумент пароля превращается XXXXXXXX); я хотел бы знать как. Это могло бы сделать что-то Ламе как просто разветвление себя и передача поддельного аргумента; я не уверен –  Michael Mrozek♦ 26.02.2011, 01:39
  • 3
    На Linux процесс может перезаписать массив аргументов, переданный ему. Это - отраженное в дереве процесса, видимом другими пользователями. Однако существует все еще всегда время, когда они выставляются и могут быть уязвимы для условий состязания и атак временным анализом. –  mattdm 26.02.2011, 02:06

В целом параметры командной строки видимы ко всем. Например, как некорневой пользователь на OpenBSD, я вижу аргументы процессов, работающих как корень:

$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0

На Linux Вы заметите что все /proc/*/cmdline файлы читаемы миром.

Могут быть очень определенные настройки, в которых параметры командной строки остаются частными. Например, SELinux и Солярис могут в целом скрыть процессы от других пользователей. Но если Вы абсолютно не знаете, что находитесь в такой установке, предполагаете, что параметры командной строки общедоступны.

15
27.01.2020, 19:43

На установках стандарта аргументы видимы. Как уже упомянуто, процессы могут перезаписать их в памяти, но не, прежде чем другие процессы имели шанс видеть их.

Однако grsecurity patchset включает патч, который изменяет его поэтому, только владелец процесса (и корень) видит, что аргументы передали процессу.

8
27.01.2020, 19:43

Теги

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