Вывод из 'ls' отличается в режиме root

Когда я использую команду sudo -i и ввожу пароль, а затем ввожу ls, я обнаружил, что могу видеть только папку и пакеты рабочего стола в терминале.

Но когда я вернулся в нормальный режим, обнаружилась вся папка.

Я не знаю, в чем причина этой проблемы ... Может кто-нибудь мне помочь?

1
задан 31 October 2013 в 21:44

3 ответа

Команда sudo -i дает вам оболочку от имени пользователя root, и вы будете находиться в домашнем каталоге пользователя root, а не в своем собственном. Поскольку root обычно не является пользователем, которого вы должны использовать в обычном режиме, в домашнем каталоге для этого пользователя будет только очень мало файлов, особенно структура скелета для любого нового пользователя.

0
ответ дан 31 October 2013 в 21:44
  • 1
    +1 работал на меня в 16.04 LTS. Я действительно должен был сделать эти dd команда и перезагрузка снова. Спасибо! – Day 2 May 2017 в 00:52

Это потому, что когда вы находитесь в режиме root, вы находитесь в домашнем каталоге root. Попробуйте это:

pwd
sudo -i
pwd

Вы увидите изменение каталога

0
ответ дан 31 October 2013 в 21:44

меня это тоже очень беспокоило, поэтому я сделал этот сценарий:

params="$@";sudo -i bash -c "cd \"`pwd`\";$params"

pwd будет запущен с вашим обычным пользователем, прежде чем команда, которую вы хотите

положит его в файле сценария root:root rw-r--r-- в полной иерархии папок, принадлежащей пользователю root, например /MyScripts (создайте его), чтобы быть более безопасным ..

недостаток в том, что если у вас есть параметр с пробелом между ними, как ls -1 a "b c", потребуется ls -1 a "b\ c", но это можно решить позже, когда вы улучшите скрипт:)

0
ответ дан 31 October 2013 в 21:44
  • 1
    Сайт, no-ip.org, дает бесплатные динамические службы DNS субдомена. Могло бы быть полезным в Вашем ответе. – TheWanderer 1 May 2015 в 02:32

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

Похожие вопросы: