3

Я играю с Linux и начинаю с использования терминала. Я пытаюсь создать папки в корне файловой системы, на что у моего обычного пользователя нет прав доступа.

При запуске su root mkdir u01 ; Мне предлагается ввести учетные данные, а затем терминал возвращает ошибку "Не удается выполнить двоичный файл"

Если я запускаю su root а затем mkdir u01 , команда работает нормально.

Есть идеи?

Я на Oracle Linux 6.5

3 ответа3

7

Проблема в том, что вы звоните su .

Правильный синтаксис для выполнения команды от имени другого пользователя:

su [username] -c "[command]"

Обратите внимание на кавычки вокруг команды; важно, чтобы другие аргументы команды выполнялись правильно.

0

В целом, "обычному" пользователю нельзя разрешать создавать файлы или папки в корне файловой системы. Разрешение этого приводит к всевозможным проблемам безопасности.

Когда вы запускаете "su root mkdir u01", ваша система запрашивает у вас пароль root. Вероятно, вам следует запустить sudo mkdir u01, который попросит вас ввести ваш обычный пароль пользователя. Обратите внимание, что это предполагает, что sudo правильно настроен для этого.

0

Если вы правильно настроили sudo , это правильный способ создать этот каталог:

sudo mkdir u01

Если sudo по какой-то причине не работает (или даже не установлен - маловероятно, но возможно), вы можете использовать su с параметром команды -c , например:

su -c "mkdir u01"

(обратите внимание, что команда должна быть заключена в кавычки, чтобы быть правильно переданной su).

Важное различие между использованием sudo и su: при запросе пароля sudo требуется пароль учетной записи пользователя, а su пароль учетной записи root. Во многих дистрибутивах Linux (особенно в Ubuntu/Debian) пароль учетной записи root может даже никогда не назначаться, поэтому su может не сработать (если вы заранее не назначите пароль для учетной записи root).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .