Linux и загадочный случай исчезновения (и появления) каталогов

Linux и загадочный случай исчезновения (и появления) каталогов

Я настроил свой самый первый сервер 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 вручную, это был бы мой самый последний выбор.

Связанный контент