Я играюсь с Linux и начинаю с использования терминала. Я пытаюсь создать папки в корне файловой системы, на что у моего обычного пользователя нет прав.
При запуске su root mkdir u01
; у меня запрашиваются учетные данные, а затем Терминал возвращает ошибку «Невозможно выполнить двоичный файл»
Если я запускаю su root
и затем mkdir u01
, команда работает нормально.
Есть идеи?
Я использую Oracle Linux 6.5
решение1
Проблема в вашем призыве su
.
Правильный синтаксис для выполнения команды от имени другого пользователя:
su [username] -c "[command]"
Обратите внимание на кавычки вокруг команды; важно сохранить остальные аргументы для правильного выполнения команды.
решение2
В целом, "обычному" пользователю не должно быть разрешено создавать файлы или папки в корне файловой системы. Разрешение этого приводит к всевозможным проблемам безопасности.
Когда вы запускаете "su root mkdir u01", ваша система запрашивает у вас пароль root. Вероятно, вам следует запустить "sudo mkdir u01", который запросит у вас ваш обычный пароль пользователя. Обратите внимание, что это предполагает, что sudo правильно настроен, чтобы разрешить это.
решение3
Если вы sudo
правильно настроили, то вот правильный способ создания этого каталога:
sudo mkdir u01
Если sudo по какой-то причине не работает (или даже не установлен — маловероятно, но возможно), вы можете использовать su
параметр команды with -c
, например так:
su -c "mkdir u01"
(обратите внимание, что для правильной передачи команды ее необходимо заключить в кавычки su
).
Важное различие между использованием sudo
vs su
: при запросе пароля sudo
требуется пароль учетной записи пользователя, но su
требуется пароль учетной записи root. Во многих дистрибутивах Linux (особенно семействе Ubuntu/Debian) пароль учетной записи root может даже не быть назначен, поэтому su
может не сработать (если вы заранее не назначите пароль учетной записи root).