Это может звучать глупым, но я хочу удалить sh (в целях исследования) и заменить его моей собственной оболочкой. Действительно ли это на самом деле возможно?
Много сценариев и программ, кажется, имеют его hardcoded в, таким образом, я вызываю сомнение относительно его жизнеспособности.
⚠️, ПРЕДУПРЕЖДАЮЩИЙ! ЧИТАЙТЕ ПРЕЖДЕ, ЧЕМ ВЫПОЛНИТЬ ЛЮБЫЕ КОМАНДЫ! ⚠️
Этот ответ только предоставлен для исследования и к дальнейшему знанию Ubuntu Linux. Выполнение любых команд в этом ответе может уничтожить Вашу систему полностью. Удостоверьтесь, что Вы находитесь в VM или резервном копировании. Я не ответственен, если Вы повреждаете свою систему.
Команда sh
обеспечивают dash
, посредством символьной ссылки:
$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Jun 1 08:33 /bin/sh -> dash*
$ which sh
/bin/sh
$ dpkg -S /bin/dash
dash: /bin/dash
$ dpkg -S /bin/sh
diversion by dash from: /bin/sh
diversion by dash to: /bin/sh.distrib
dash: /bin/sh
Для удаления его работайте ниже команды:
sudo apt remove dash
APT ответит Вам ударом на удар со следующим сообщением об ошибке:
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
Если Вы действительно готовы уничтожить свою систему, ввести это и нажать Return.
Ubuntu затем удалит bash
, lightdm
, и ubuntu-desktop
метапакет (а также все пакеты, которые зависят от тех трех), потому что у них всех есть зависимость от dash
. Если Ваша текущая оболочка не будет работать отлично, Ваша система будет неприменима после уничтожения последнего экземпляра bash
или dash
.
Если Вы на самом деле выполняете с этой командой, единственный способ восстановить надлежащие файлы состоит в том, чтобы загрузиться в Живой CD и переустановить пакеты через a chroot
сессия восстановления редактора.
Если Вы действительно удачливы, Вы могли бы все еще смочь восстановить свою систему, живую путем переустановки пакетов, если у Вас все еще есть корневая открытая оболочка. Системы восстановились с худшего прежде, но удача действительно должна быть на Вашей стороне для этого.
Вместо этого я предложил бы, чтобы Вы переделали /bin/sh
символьная ссылка для указания на оболочку. В этом случае можно просто восстановить назад к dash
если что-то идет действительно действительно неправильно. Сделайте это путем выполнения этих команд:
sudo -s
cd /bin
rm sh
ln -s /path/to/your/shell sh
chmod 777 sh
Восстановите назад к dash
путем повторения этих шагов, но определения dash
вместо Вашей собственной оболочки. Или просто выполненный sudo apt install --reinstall dash
. Вы, возможно, должны были бы указать пользовательское init
сделать это.
Я установил бы Вашу собственную оболочку вместе с SH. Удаление SH является ОЧЕНЬ плохой идеей как многочисленные программы и сценарии, полагается на него.