Ошибка разрешения возврата Bash запрещена, когда я перенаправляю вывод ls в файл [дубликат]

В настоящее время я изучаю команды оболочки, одно из упражнений состоит в создании структуры с различными каталогами и подкаталогами.

Я написал ls -laR> hello , предполагалось создать текстовый файл с именем hello . Однако я получаю следующее сообщение bash : hello: в разрешении отказано , даже когда я набираю sudo в начале.

Команда работала в другом дистрибутиве Linux. Кроме того, несколько минут назад я использовал ls -la в каталоге, в котором я хочу создать файл, и он дал мне следующее:

drwxr-xr-x 2 root root 4096 Nov 26 10:56 .
drwxr-xr-x 5 root root 4096 Nov 26 10:56 ..

Согласно первой триаде у меня есть права писать?

2
задан 26 November 2013 в 20:59

2 ответа

Либо поместите файл hello в доступный для записи каталог, например, с помощью:

ls -laR > /tmp/hello

, либо, если вы действительно хотите создать файл в каталоге, который вам не принадлежит, выполните:

sudo sh -c "ls -laR > hello"
0
ответ дан 26 November 2013 в 20:59

Поскольку root является владельцем каталога, в котором вы хотите создать файл hello, а пользователи из той же группы, а другие пользователи не имеют разрешения на запись в этот каталог, вы получите ошибку bash: hello: permission denied при запуске ls -laR > hello.

Более того, вы получите точно такую ​​же ошибку, когда запустите ту же команду, используя sudo перед ней. Это связано с тем, что перенаправление вывода (оператор >) выполняется оболочкой , а не ls, поэтому sudo не влияет на него. sudo действует только на ls -laR. Чтобы предотвратить это, вы должны войти в систему как root:

sudo -i

Затем вы можете использовать перенаправление:

ls -laR > hello

В противном случае вы можете запустить команду bash в подоболочке с привилегиями root:

sudo bash -c "ls -laR > hello"

Наконец, другой вариант, вместо того, чтобы использовать перенаправление через оператор >, вы можете использовать команду tee:

ls -laR | sudo tee hello

Вам не нужно использовать в этот случай sudo для команды ls, поскольку пользователи из той же группы с root и все другие пользователи имеют права на чтение и выполнение в этом каталоге.

0
ответ дан 26 November 2013 в 20:59

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

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