Команды Linux, которые я использую чаще всего
Это не полный справочник, а то, что реально держится у меня в мышечной памяти. Собирал постепенно, когда лез в документацию за одной и той же командой в пятый раз.
Перемещение и обзор
cd /var/log # перейти в папку
cd - # вернуться туда, где был до этого — удобно
ls -la # всё содержимое с правами и владельцами
pwd # где я вообще
tree -L 2 /opt # дерево на два уровня (если tree не стоит: apt install tree)
Создание и удаление
mkdir -p /opt/apps/site/releases # -p создаёт всю цепочку папок сразу
cp -r site site.bak # копия папки
mv site site_old # переименование/перенос — же команда
rm -rf site_old # удаление без вопросов. Вот с этой я один раз «потерял» продакшен-конфиг на хосте — с тех пор перед rm -rf делаю ls в ту же строку: сначала смотрю, потом стираю
Пользователи и группы
useradd -m -s /bin/bash deploy # создать пользователя с домашней папкой и нормальным шеллом
passwd deploy # задать пароль
usermod -aG docker deploy # ДОБАВИТЬ в группу (-a обязателен! без него usermod перезапишет все группы — обжёгся)
groups deploy # проверить, в каких группах состоит
groupadd developers # создать группу
id deploy # uid, gid и все группы одной строкой
Права
chmod 644 index.html # владельцу всё, остальным чтение
chmod 755 script.sh # владельцу выполнение, остальным чтение+выполнение
chmod -R 700 ~/.ssh # рекурсивно
chown deploy:deploy /opt/apps/site # владелец и группа
chown -R runner:runner /opt/apps/site
Три цифры — это владелец / группа / остальные: 4 чтение, 2 запись, 1 выполнение. 7 = всё, 6 = чтение+запись, 5 = чтение+выполнение, 4 = только чтение, 0 = ничего.
Важные ограничения, которые я запомнил «на своей шкуре»
chmod 600 ~/.ssh/id_rsa # приватный ключ — ТОЛЬКО владелец. OpenSSH откажется работать с более мягкими правами: "UNPROTECTED PRIVATE KEY FILE"
chmod 644 ~/.ssh/id_rsa.pub # публичный ключ — можно 644, он публичный
chmod 600 ~/.env # любые файлы с секретами
chmod 644 /etc/nginx/nginx.conf # конфиги обычно 644, но с паролями внутри — 600
Смежное: если что-то «не работает» после копирования файлов с другой машины — первое, что проверяю, это ls -la. В девяти случаях из десяти владелец оказался root, а должен быть сервисный пользователь.