Я установил свой самый первый сервер Ubuntu и сразу вошел в систему (как myuser), чтобы начать его настройку. Я иду в /opt и запускаю mkdir sandbox .

mkdir: невозможно создать каталог «песочница»: разрешение запрещено

Доступ запрещен?!? Хорошо. Поэтому я запускаю sudo -i и ввожу пароль myuser . Повторите команду mkdir и вуаля! Каталог создан. Я выхожу

Я снова вхожу в систему как myuser к /opt и запускаю ls: nothing! Нет видимых каталогов внутри /opt ! Какие!?!?

Так что я снова sudo с sudo -i и снова запускаю ls . Теперь он видит sandbox/ .

Я думаю, что мне не хватает фундаментальных знаний о Linux в отношении пользователей и корней. Во время настройки / настройки сервера он попросил меня создать пользователя, что я и сделал (myuser). Я предполагал, что это также будет пользователь root (с полными правами администратора), поскольку это был не только пользователь, которого я создал во время установки, это самый первый пользователь в системе!

Так почему же myuser не может:

  • Создать каталоги вне /home/myuser без sudo-ing?
  • Просмотр каталогов, созданных в "режиме sudo"

Я также расплывчат в разнице между sudo , su и пользователем root .

В конечном счете, в дополнение к полному пониманию этих основ, я хотел бы установить пакет серверного программного обеспечения в /opt/sandbox/ который может работать круглосуточно и взаимодействовать с локальной файловой системой. Теперь я не уверен, стоит ли устанавливать эти приложения при входе в систему просто как myuser , sudoed как myuser или как-то еще.

Эти серверы находятся в защищенной частной домашней сети, поэтому мне не нужны "настоящие администраторы" и сумасшедшие меры безопасности. Я просто настраиваю простую среду разработки для небольшого программного инструмента, который пишу. Заранее спасибо за любую помощь с вопросами выше.

2 ответа2

1

Так почему же myuser не может: ...

Пытаться

ls -l sandbox
getfacl sandbox

Если их вывод неясен или не объясняет, что вы видите, вырезайте и вставляйте вывод в редактирование вашего вопроса.

Я также расплывчат в разнице между sudo, su и пользователем root.

sudo дает вам повышенные привилегии root (то есть администратора) только для одной команды. Существует файл конфигурации для sudo, в котором вы можете контролировать, какие пользователи могут делать что.

su предоставляет вам повышенные привилегии для нескольких команд, давая вам новый сеанс оболочки с эффективным идентификатором пользователя root.

Пользователь root - это специальный пользователь с именем root, который вы можете увидеть в /etc /passwd. Есть около дюжины других пользователей, которых вы всегда получаете в системе Unix или Linux. Люди обычно имеют обычную учетную запись и используют ее для всей работы, кроме действий, которые абсолютно требуют привилегий root (например, установка программного обеспечения для использования всеми пользователями в системе). Это мешает вредоносным программам делать плохие вещи и затрудняет вам делать безвозвратные ошибки.

Я хотел бы установить кучу серверного программного обеспечения

Я считаю, что лучше всего использовать менеджер пакетов системы для установки пакетов. Я бы предпочел не создавать папки в /opt вручную, это был бы мой самый последний выбор.

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).

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