Відповіді:
Вони можуть бути функціонально близькими до одного і того ж, але здається, що "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 - це різні програми, які виконують одне і те ж завдання, тобто піднімають вас на 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
.
sudo su -
безглуздо?