Яка різниця між sudo -i та sudo su -


Відповіді:


30

Вони можуть бути функціонально близькими до одного і того ж, але здається, що "sudo -i" має легшу вагу і зберігає деякі зручні посилання у вашому оточенні.

Ви можете побачити додаткові процеси, переглянувши "ps auxf" (f дає вам вид на ліс)

sudo -i дає це дерево дерева процесу

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4675  0.6  0.0  19512  2260 pts/0    S+   23:42   0:00  |           \_ -bash

sudo su - дає це технологічне дерево

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4687  0.5  0.0  43256  1488 pts/0    S    23:42   0:00  |           \_ su -
root      4688  0.5  0.0  19508  2252 pts/0    S+   23:42   0:00  |               \_ -su

Зауважте, що вони починаються з того самого ph-процесу, 4482, але це, здається, породить ще один крок.)

Ваше перше "судо" вже підвищує рівень доступу до root. Запуск su без введення імені користувача всередині sudo змінює поточного користувача корінь двічі.

Ще один спосіб дослідити це - запустивши обидві команди з strace -f.

strace -f -o sudoi sudo -i

проти

strace -f -o sudosu sudo su -

Якщо ви відрізняєте ці два штрихи, ви побачите, що більше запускається для судо -.

Іще одне.

sudo -i підтримує додаткові змінні середовища, встановлені SUDO.

SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000

sudo su - клобує ці змінні.


Дякую, я проголосував за правильну відповідь. Ще одне питання, так що sudo su -безглуздо?
Говард

Якщо ви хочете заглушити зворотні посилання на SUDO, це може бути корисно. Тож безглуздо в цьому випадку.
Джоель К

Існують також великі відмінності в обробці аргументів, обробці змінних оточуючих та в безпеці, коли стає некористувачем. Подивіться, що я тут додав: serverfault.com/q/601140/102814
Крейг Рінгер

1

Відповідь пострілу: Ні, вони не однакові.

Довга відповідь: sudo і su - це різні програми, які виконують одне і те ж завдання, тобто піднімають вас на root права.

su раніше був фактичним способом вкорінення в системах Linux. Однак завжди була необхідність відокремити привілеї та залишити деяку аудиторську інформацію позаду. Крім того, коли ви робите су - все, що ви робите, робиться як корінь і небезпечно мати стільки сил. Ось де на допомогу прийшло судо.

Судо має деякі характеристики, яких су немає. Ключовим елементом у sudo є його здатність запускати "one" команду як root, а потім передавати привілеї звичайному користувачеві. Приклад: Видаліть файл, що належить root.

sudo rm /root/someFile

Ця команда видалить файл, тому що sudo підніме вас до root кожного разу, коли ви використовуєте команду sudo перед іншою командою. Наступна команда, яку ви виконували, буде виконуватися як звичайний користувач (якщо ви не додасте команду sudo на початку). Це дозволяє вам виконати адміністративне завдання, а потім негайно скинути привілеї, що допоможе вам уникнути небезпечних умов.

sudo також надає інші переваги, наприклад, обмеження набору програм, який користувач може запускати, журнали команд виконуються під sudo та інші речі. Для отримання додаткової інформації судо в двох словах

Коли ти робиш су - або судо - я робиш те саме. Це стає корінним, але майте на увазі, що су і судо абсолютно різні і надають вам різні інструменти як системний адміністратор. Особисто я НІКОЛИ не керуюся судом - і моя політика забороняє це забороняти , не дозволяючи нікому її запускати. У моїх системах вам завжди доводиться використовувати судо причину додаткових переваг.

Більше інформації: Використання та включення судо


suтакож може виконувати лише одну команду:su -c 'command ...'
Елія Каган

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