Как перейти в каталог, принадлежащий пользователю root, если у меня есть sudo?

У меня есть пользователь развертывания, который имеет sudo privledges.

Я не могу sudo cd в каталог, но я могу перечислить его как:

sudo ls /root

Как я могу cd в папку, или это невозможно?

2 ответа

Это невозможно, потому что 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-D, чтобы выйти из корневой оболочки.

Другие вопросы по тегам