
Я попытался использовать sudo cd name_of_dir
, но получаю сообщение об ошибке:
sudo: cd: command not found
Есть ли другой способ войти в каталог, принадлежащий другому пользователю с разрешением 700?
решение1
sudo cd
не сработает, потому что cd
команда встроена в оболочку. Так что вы говорите become root и затем запускаете эту команду. Вы становитесь root и затем ищете команду после sudo, но нет cd
команды для поиска.
Метод, который нужно использовать, — это переключиться на пользователя, которому принадлежит каталог. Разрешение 700
подразумевает, что «владелец может читать, писать и выполнять».
Так что если root владеет каталогом sudo -i
, пароль и тогда cd {dir}
это единственный правильный метод. Если кто-то другой владеет каталогом, вы все равно можете использовать 1-й метод, но также можете перейти к этому пользователю с помощью su {username}
и затем использовать cd
как этого пользователя.
решение2
sudo -i
чтобы открыть "корневую консоль" и затем
cd /path/to/directory
( cd
это встроенная команда оболочки, поэтому она не может быть целью sudo)
решение3
Чтобы открыть корневой каталог, мы можем запустить оболочку root, например:
sudo su
# cd /root
решение4
Вы также можете повысить свои права до пользователя root следующим образом:
sudo -s
Затем вы можете перейти в любой каталог, в который не разрешен доступ обычному пользователю, например:
cd /root
Или
cd /var/lib/
Затем, после того как вы закончите, введите:
exit
Для выхода из системы с привилегиями пользователя root.
Для повышения своих прав до уровня root вы также можете объединить две команды с помощью &&
оператора, как показано ниже. Этот оператор также сохраняет последовательность их выполнения: если текущая команда выполнена успешно, то только тогда разрешается выполнение следующей команды:
sudo -s && cd /var/lib
Или
sudo -s && cd /root