Допустим, есть каталог, к которому у меня нет прав доступа. Очевидно sudo cd foo
, не будет работать, потому что cd
это оболочка, встроенная в каждую оболочку.
До сих пор я только что использовал sudo bash
(да, я знаю, что есть лучшие способы), чтобы получить приглашение root. Затем я могу cd
в каталог, чтобы ковыряться.
Есть лучший способ сделать это?
bash
sudo
cd-command
strugee
источник
источник
cd
права root (если вы на самом деле не находитесь в корневой оболочке)?cd
.sudo ls
.Ответы:
Нет, нет пути к
cd
каталогу, который позволяет только root, не будучи root. На самом деле не должно быть слишком много каталогов, которые имеют это ограничение. В большинстве случаев доступ к определенному файлу ограничен, например, к/etc/shadow
файлу или определенным файлам журнала/var/log
.Вы можете использовать,
sudo ls <dir>
чтобы увидеть их вместоbash
. Также при использованииsudo
для получения прав root вы обычно хотите установить пользователя (su
команду) вместоbash
, поэтому используйте эту команду вместо:Вы также можете сделать то же самое с помощью
-i
переключателя sudo :выдержка из справочной страницы о
sudo -i
Для файлов, к которым у вас нет доступа, вы можете использовать одну из следующих
sudo
команд:источник
sudo su -
вместоsudo -i
? Они оба дают вам все привилегии суперпользователя, хотя все, что вам нужно, это возможность CAP_DAC_READ_SEARCH.sudo
среду Solaris и версия, вsudo
которой он был, не включали этот переключатель. Просматривая журнал изменений sudo, похоже, что эта опция была добавлена в 2004 году. Думаю, я с этим встречаюсь, но вы спросили 8-). Я исправлю ответ, чтобы включить оба, спасибо!sudo -Hi
потому что он также устанавливает домашний каталог (в моем дистрибутиве он по умолчанию не устанавливается, по умолчанию он может отличаться). Если вы этого не сделаете, вы можете получить корневые файлы в вашем доме, если он создаст новые файлы там.Нет, нет Вам нужна оболочка от имени root.
источник
cd
если вы не используете оболочку или схожий процесс.Точно, ты не можешь. Вот обходной путь, хотя:
источник