Похоже, вы установили оболочку root на / bin / false
. Вам необходимо перезагрузиться в однопользовательский режим и использовать chsh
, чтобы изменить его обратно на / bin / csh
.
В качестве альтернативы, если вы установили пароль для учетной записи toor, вы можете войти в систему как toor
и chsh -s / bin / csh root
.
Аналогичным образом, если у вас установлено sudo
, вы можете войти в систему как обычный пользователь без полномочий root и запустить sudo chsh -s / bin / csh root
.
Или вы можете войти в систему как пользователь без полномочий root и запустить su -m
, а затем chsh -s / bin / csh
.
Если вы можете получить доступ к машине через ssh, вам даже не понадобится действующая корневая оболочка, чтобы исправить это. Просто запустите:
ssh root@VM-ip chsh -s /bin/csh root
и при запросе введите пароль root.
А затем создайте себе учетную запись пользователя без полномочий root, потому что делать все от имени root неправильно во всех смыслах. учетная запись root предназначена для задач системного администрирования, а не для обычного использования.
Вы можете проверить мой ответ здесь .
Поскольку я использую iTerm2, я придумал:
У вас также может быть такой скрипт, как~/test.py
#!/usr/local/bin/python3
print("echo hello world")
А затем выполните этот скрипт как процесс co -в меню iTerm2 Session -> Run Co -Process, указав сценарий как ~/test.py
.
Удачного кодирования!
Это можно сделать с помощью ioctl TIOCSTI (какroot
)например с помощьюttywrite
можно было вводить команды
% echo echo hello world > local
% sudo ttywrite $(tty) < local
echo hello world
% echo hello world
hello world
%
Хотя, по-видимому, вы бы выбрали другой TTY вместо текущего (или, возможно, отключили эхо с помощью stty
...)