Я настроил свой самый первый сервер Ubuntu и сразу же вошел в систему (как myuser
), чтобы начать его настраивать. Я захожу /opt
и запускаю mkdir sandbox
.
mkdir: Невозможно создать каталог «sandbox»: Отказано в доступе
Отказано в доступе?!? Хорошо. Итак, я запускаю sudo -i
и ввожу myuser
пароль . Повторно запускаю mkdir
команду, и вуаля! Каталог создан. Я выхожу из системы.
Я снова вхожу в систему как myuser
и перехожу к /opt
и запускаю ls
: ничего! Никаких видимых каталогов внутри /opt
! Что!?!?
Поэтому я снова использую sudo sudo -i
и перезапускаю ls
.Сейчасон видит sandbox/
.
Я думаю, что мне не хватает некоторых фундаментальных знаний Linux в отношении пользователей и корней. Во время настройки/установки сервера он попросил меня создать пользователя, что я и сделал ( myuser
). Япредполагаетсяэто также будет пользователь root (с полными правами администратора), поскольку это был не просто пользователь, которого я создал во время установки, это был самый первый пользователь в системе!
Так почему же это myuser
не может:
- Создать каталоги вне
/home/myuser
без sudo? - Просмотр каталогов, созданных в «режиме sudo»
Я также не совсем понимаю разницу между sudo
, su
и root
пользователем.
В конечном счете, в дополнение к полному пониманию этих основ, я хотел бы иметь кучу серверного программного обеспечения, установленного под ним, /opt/sandbox/
которое может работать круглосуточно и взаимодействовать с локальной файловой системой. Теперь я не уверен, следует ли мне устанавливать эти приложения, будучи просто зарегистрированным как myuser
, sudoed как myuser
, или как-то еще.
Эти серверы находятся внутри защищенной частной домашней локальной сети, поэтому мне не нужен "настоящий администратор" и сумасшедшие элементы управления безопасностью. Я просто настраиваю простую среду разработки для небольшого программного инструмента, который я пишу. Заранее спасибо за любую помощь с вопросами выше.
решение1
/opt по умолчанию принадлежит пользователю root
и группе root
.
Попробуйте l /
, и вы увидите, что папка /opt принадлежит root root
пользователю и группе соответственно.
Если вы действительно хотите создавать и изменять файлы внутри /opt как пользователь, не являющийся пользователем root, вам нужно будет создать там папку и изменить ее права доступа так, чтобы к ней мог свободно получить доступ пользователь, не являющийся пользователем root.
Пример:
sudo mkdir /opt/sandbox
sudo chown myuser:users /opt/sandbox
Первая команда создает папку, но ее владельцем является root
группа root
Вторая команда изменяет владельца ( chown
) на указанного вами пользователя myuser
и делает ее частью группы users
(которая myuser
является частью ).
решение2
Так почему же myuser не может: ...
Пытаться
ls -l sandbox
getfacl sandbox
Если вывод этих данных непонятен или не объясняет то, что вы видите, скопируйте и вставьте вывод в редактирование вашего вопроса.
Я также не совсем понимаю разницу между sudo, su и пользователем root.
sudo
дает вам повышенные привилегии root (т.е. администратора) только для одной команды. Существует файл конфигурации для sudo, в котором вы можете контролировать, каким пользователям разрешено что делать.
su
предоставляет вам повышенные привилегии для нескольких команд, предоставляя вам новый сеанс оболочки с эффективным идентификатором пользователя root.
Пользователь root — это специальный пользователь с именем root, которого вы можете увидеть в /etc/passwd. Есть около дюжины других пользователей, которых вы всегда получаете в системе Unix или Linux. Обычно у людей есть обычная учетная запись, и они используют ее для всей работы, за исключением действий, которые абсолютно требуют привилегий root (например, установка программного обеспечения для использования всеми пользователями в системе). Это затрудняет вредоносным программам выполнение плохих дел и затрудняет вам совершение непоправимых ошибок.
Я хотел бы установить кучу серверного программного обеспечения
Я считаю, что лучше всего использовать системный менеджер пакетов для установки пакетов. Я бы предпочел не создавать папки в /opt вручную, это был бы мой самый последний выбор.