Разница между `sudo su` и`sudo fish`
Я использую fish (Friendly Interactive Shell) в качестве стандартной оболочки в Ubuntu 14.04, а не в bash.
Я заметил следующее поведение и не знаю, является ли какой-либо из них предпочтительным для получения root-доступа.
Я могу набрать команду sudo su
или же sudo fish
и это даст мне права супер пользователя. (Приглашение отображается как root@ubuntu ~#
)
Есть ли разница в поведении этих команд?
Единственное, что я мог понять, это то, что sudo su
использует конфигурацию рыбы, расположенную в /root/.config/fish/
а также sudo fish
использует конфигурацию рыбы в моем домашнем каталоге /home/uloco/.config/fish
,
Есть ли возможность шифровать мою систему с помощью sudo fish
? Будут ли какие-либо изменения владельца, внесенные в файлы в моем домашнем каталоге, если я буду использовать это?
2 ответа
sudo su
исполняет su
как если бы вы были пользователем root. Это означает, что открытая оболочка является оболочкой, указанной в записи пользователя в /etc/passwd
в 6-м поле. В случае ваших пользователей root это может быть /bin/fish
, Эта оболочка выполняется как оболочка входа в систему, поэтому выполняются rc-скрипты пользователя root.
Когда вы выполняете sudo fish
тогда приложение fish
(оболочка) исполняется так, как если бы вы были пользователем root, но в среде вызывающего пользователя. Вот почему Fishs RC-скрипты выполняются.
См. Полное объяснение в этом ответе: "sudo su -" против "sudo -i" против "sudo /bin/bash" - когда имеет значение, какой используется, или имеет значение вообще?
Какой из них вы должны использовать, зависит от вас:
- Хотите ли вы среду root, как будто вы входите в систему как root? Тогда позвони
sudo su
, - Вы хотите сохранить свое окружение, так как ваши псевдонимы и подобные вещи определены в оболочках rc-scritps? Тогда используйте
sudo fish
,
Есть ли возможность зашифровать мою систему с помощью sudo fish?
Это просто среда, ты ничего не склеиваешь.
Будут ли какие-либо изменения владельца, внесенные в файлы в моем домашнем каталоге, если я буду использовать это?
Нет, если вы не измените что-то вручную.
sudo su
su - изменить идентификатор пользователя или стать суперпользователем
sudo bash
bash - GNU Bourne-Again Sheell
sudo fish
fish - это умная и удобная оболочка командной строки для OS X, Linux и всего остального семейства.
http://en.wikipedia.org/wiki/Unix_shell
Оболочка Bourne-Again (bash) и дружественная интерактивная оболочка (fish) являются типами оболочек.