Comm

- 4 mins read

stat -c “%a %n” file.txt # права в числах

ℹ️ Права на пользовательском уровне

chown user file.txt         # смена владельца
chown user:group file.txt   # владелец + группа
chgrp devs file.txt         # смена группы
chmod 644 file.txt          # права доступа
umask                       # дефолтные права создания файлов
umask 022                   # файлы 644 / папки 755
umask -S                    # human-readable
ℹ️ Root и повышение прав
sudo command                # выполнить от root
sudo -i                     # root shell
su -                        # переключиться на root
visudo                      # редактирование sudoers (ОЧЕНЬ ВАЖНО)

📝 Диагностика
ℹ️ Проверка прав файла
ls -l file.txt                      # rwx права + владелец
stat file.txt                       # полная информация
stat -c "%a %U %G %n" file.txt      # права + user + group
namei -l /path/to/file              # проверка ВСЕГО пути (очень важно)
ℹ️ Проверка пути к файлу
ls -ld /path                        # права каталога
ls -ld /path/to                     # каждый уровень отдельно
                                    # 🔥 ключевой момент: x нужен (execute) на КАЖДОМ каталоге пути
ℹ️ Проверка доступа как ‘System’
sudo -u user test -r file.txt          # может ли user читать файл
sudo -u user test -w file.txt          # может ли писать
sudo -u user test -x file.sh           # может ли выполнять
sudo -u user cat file.txt              # попытка доступа от другого пользователя
ℹ️ ACL (если есть расширенные права)
apt install acl                         # Debian/Ubuntu. Иначе команды getfacl/setfacl могут не работать
getfacl file.txt                        # ACL права
setfacl -m u:user:r file.txt            # добавить ACL
setfacl -m g:group:rx file.txt          # ACL группе
setfacl -b file.txt                     # убрать ACL
ℹ️ SUDO / ROOT ПРОВЕРКА
sudo -l                 # что разрешено через sudo
sudo -v                 # проверить доступ sudo
visudo                  # правила sudo (опасно редактировать)
sudo -l -U user         # проверка sudo прав пользователя 
ℹ️ SYSTEMD (SERVICE DEBUG)
systemctl status nginx -l        # подробный статус
systemctl is-active nginx        # работает ли сервис
systemctl is-enabled nginx       # автозапуск
systemctl restart nginx
systemctl reload nginx
journalctl -u nginx -f          # live логи сервиса
journalctl -u nginx -xe         # ошибки сервиса
ℹ️ Процессы и доступ
ps aux | grep process   # кто запустил процесс
lsof file.txt           # кто держит файл открытым
lsof -i :80             # кто занимает порт
ss -ltnp                # открытые listening порты
which command           # проверка прав выполнения команды
type command            # тоже
ℹ️ Проверка диска
df -h
df -i                 # inode usage (очень важно!)
du -sh *
lsblk
mount | column -t     # что куда смонтировано
ℹ️ Системные логи (часто причина отказа)
journalctl -xe          # ошибки доступа
dmesg | tail            # kernel-level ошибки

⚠️ Некоторые команды могут потребовать прав суперпользователя (sudo)

📝 Поиск
📝 Поиск файлов и каталогов

find . -name "file.txt"                 # поиск по имени
find . -type f -name "*.log"            # только файлы
find . -type d -name "nginx"            # только каталоги
find /var -size +100M                   # по размеру
find . -mtime -1                        # изменённые за 1 день
find . -perm 644                        # по правам
find . -user root                       # по владельцу
locate file.txt                         # быстрый поиск по базе, locate работает если установлен и проиндексирован
updatedb                                # обновить базу locate
fd "file.txt"                           # современная замена find
fd ".log"                               # поиск логов
fd nginx /etc                           # поиск в каталоге
ℹ️ Поиск внутри файлов
grep "text" file.txt                    # поиск строки
grep -r "text" .                        # рекурсивно
grep -i "text" file.txt                 # без регистра
grep -n "text" file.txt                 # с номерами строк
grep -l "text" *.log                    # показать только файлы
grep -v "text" file.txt                 # исключить совпадения
rg "text"                               # ripgrep (быстрее grep)
rg -i "error" .                         # рекурсивно без регистра
rg "main" src/                          # поиск в коде
ack "text"                              # альтернатива grep
ℹ️ Поиск команд и программ
which python                            # путь к бинарнику
whereis nginx                           # бинарник + docs
type ls                                 # тип команды
command -v python                       # POSIX вариант
ℹ️ Поиск процессов
ps aux | grep nginx                     # через ps
pgrep nginx                             # PID по имени
pidof nginx                             # PID программы
ps aux | grep nginx                     # в live режиме
htop                                    # интерактивный поиск
ℹ️ Поиск сетевых соединений и портов
ss -tulnp                               # открытые порты
ss -tulnp | grep 80                     # поиск порта
lsof -i :80                             # кто использует порт
lsof -u user                            # файлы пользователя
ℹ️ Поиск по системе и логам
journalctl -u nginx                     # логи сервиса
journalctl | grep error                 # поиск в логах
systemctl list-units | grep nginx       # поиск сервисов
dmesg | grep error                      # kernel логи
ℹ️ Поиск в истории и окружениии
history | grep ssh                      # поиск в истории
env | grep PATH                         # переменные окружения
ℹ️ Интерактивный поиск
fzf                                     # универсальный интерактивный поиск
find . | fzf                            # поиск файлов через интерфейс
history | fzf                           # поиск команд
ps aux | fzf                            # поиск процессов