Предположим, что у меня есть мини-оболочка с именем minish
, которая предоставляет только cd
, ls
, rm
, mkdir
и т. Д. minish
сохранена в ~/Desktop/Shell
. Его можно использовать из другой оболочки, такой как bash
, вызывая просто ~/Desktop/Shell/minish
. Это хорошо работает.
Но чтобы использовать его в качестве оболочки входа в систему, я добавил ~/Desktop/Shell/minish
внизу /etc/shells
, выполнил chsh
и набрал ~/Desktop/Shell/minish
, но там написано, что minish
- недопустимая оболочка.
Я предположил 2 варианта этой ошибки:
minish
нет в /bin
, так как все другие оболочки находятся в /bin
. minish
тоже. Если причиной является второй случай, каковы эти квалификации или потребности и как chsh
проверяет эти условия? Или есть какая-то другая причина?
Спасибо.
Вы помещаете ~/Desktop/Shell/minish
дословно в /etc/shells
; расширение ~
является функцией оболочки и вероятно неподдерживаемый любыми синтаксическими анализами приложения /etc/shells
, потому что оно не знало бы, к тому, чей корневой каталог ~
, как предполагается, относится. Вместо этого необходимо использовать имя полного пути, например, /home/analysis/Desktop/Shell/minish
.