Какие корневые каталоги существуют в Linux
Что проверяют
Базовую грамотность в системе, где будет жить ваш сервис: где конфиги, логи, данные, что такое виртуальные файловые системы. Go-разработчика следом часто спрашивают, почему бинарник в образе scratch не может сходить по HTTPS.
Как отвечать
Назовите каталоги по стандарту FHS и привяжите их к работе:
/etc: конфигурация системы и сервисов, свои юниты systemd в/etc/systemd/system, сертификаты CA в/etc/ssl/certs;/usr: программы и библиотеки из пакетов,/usr/localдля собранного вручную. В современных дистрибутивах/bin,/sbinи/libэто ссылки на каталоги внутри/usr;/var: изменяемые данные: логи в/var/log, состояние сервисов в/var/lib;/homeи/root: домашние каталоги пользователей и отдельно администратора;/tmpи/run: временные файлы, сокеты и PID-файлы, часто вtmpfs, то есть в памяти до перезагрузки;/procи/sys: виртуальные файловые системы ядра. В/proc/<PID>/лежатstatus,limitsи дескрипторыfd, в/sys/fs/cgroupлимиты контейнера;/dev: файлы устройств, включая/dev/nullи/dev/urandom;/boot,/opt,/mnt,/media,/srv: ядро и загрузчик, сторонний софт, точки монтирования, данные, которые отдаёт сервер.
Связь с Go. Статический бинарник кладут в scratch или distroless, а там нет того, что обычно даёт система. Без /etc/ssl/certs HTTPS-клиент падает с x509: certificate signed by unknown authority. Без /usr/share/zoneinfo time.LoadLocation возвращает ошибку, лечится импортом time/tzdata или тегом сборки timetzdata. А начиная с Go 1.25 рантайм сам читает лимит CPU из cgroup и подстраивает GOMAXPROCS.
Где спотыкаются
Читают /usr как «user» и ищут там файлы пользователей. Там системные программы, пользователи живут в /home.
Путают /root и /: корень файловой системы и домашний каталог администратора это разные вещи.
Считают /proc каталогом на диске: пытаются его бэкапить или удивляются странным размерам в du.