На этот вопрос уже есть ответ здесь:
У меня есть пользователь развертывания с правами sudo
.
Я не могу sudo cd
войти в каталог, но могу перечислить его следующим образом:
sudo ls /root
Как мне cd
поместить в папку, или это невозможно?
Это невозможно, потому что sudo
запускает одну команду от имени root; ваша оболочка все еще принадлежит вашему пользователю.
Что вы можете сделать - это открыть новую оболочку от имени root, запустив sudo -i
или sudo -s
. Из man sudo
:
-i, --login Run the shell specified by the target user's password data- base entry as a login shell.
[...]
-s, --shell Run the shell specified by the SHELL environment variable if it is set or the shell specified by the invoking user's pass- word database entry. If a command is specified, it is passed to the shell for execution via the shell's -c option. If no command is specified, an interactive shell is executed.
Любой из них даст вам новую оболочку с привилегиями root, где вы может свободно менять каталог и запускать новые команды от имени пользователя root.
cd
- встроенная команда оболочки. Вы не можете использовать его напрямую с sudo
.
Используйте
sudo -i
, чтобы получить корневую оболочку, а затем cd
в нужную папку.
Если вам больше не нужны привилегии root, используйте
exit
или Ctrl kbd> - D kbd> для выхода из корневой оболочки.