Чи можуть інші користувачі переглядати аргументи, передані команді?


21

Якщо я викликаю команду з такими аргументами:

bob@bob-pc:~$ command -arg1 -arg2

... чи можуть інші користувачі переглядати аргументи, передані команді?


Проста відповідь "так" "ні" на це питання суперечила б змісту та заголовку: P
kizzx2

@ kizzx2: виправлено.
Багамат

Відповіді:


13

Загалом так, вони можуть це бачити. Це зі wсторінки man:

Для кожного користувача відображаються наступні записи: ім’я входу, ім'я tty, віддалений хост, час входу, час очікування, JCPU, PCPU та командний рядок їх поточного процесу.

Відобразиться повний командний рядок поточного запущеного процесу. Ось чому ви не хочете подавати такі речі, як паролі, через аргументи командного рядка.


Немає способу відключити це?
Натан Осман

3
@George Є, тому що rdesktop робить це якось (аргумент пароля перетворюється на XXXXXXXX); Я хотів би знати, як. Це могло б зробити щось кульгаве, як просто розпалити себе і передати фальшивий аргумент; Я не впевнений
Майкл Мрозек

13
В Linux процес може перезаписати переданий йому масив аргументів. Це відображається в дереві процесів, який бачать інші користувачі. Однак, все ще є час, коли вони піддаються впливу, і вони можуть бути вразливими для перегонів та часових атак.
mattdm

15

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

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

У Linux ви помітите, що всі /proc/*/cmdlineфайли читаються у всьому світі.

Можливо, є дуже специфічні параметри, в яких аргументи командного рядка залишаються приватними. Наприклад, SELinux і Solaris можуть взагалі приховувати процеси від інших користувачів . Але якщо ви абсолютно не знаєте, що ви в такому режимі, припустіть, що аргументи командного рядка є загальнодоступними.


8

У стандартних налаштуваннях аргументи видно. Як вже було сказано , процеси можуть перезаписати їх у пам'ять, але не раніше, ніж інші процеси мали змогу їх побачити.

Однак патч грузобезпеки включає патч, який його змінює, тому лише власник процесу (і root) може бачити аргументи, передані процесу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.