ACL CentOS

ACL могут быть заданы:

  • Для пользователя
  • Для группы
  • По маске
  • Для остальных

Пример комманды, задающей ACL

setfacl -m rules file
  • u:UID:perms
    setfacl -m u:andrius:rw /project/somefile
  • g:GID:perms
  • m:perms
  • o:perms

Читать далее ACL CentOS

Настройка квот CentOS

  1. Добавляем в /etc/fstab следующие параметры
    /dev/mapper/VolGroup-home /home ext4 defaults,usrquota,grpquota 1 1
  2. Перемонтируем файловую систему
    mount -o remount /home
  3. Устанавливаем необходимый пакет quota
    yum install -y quota
  4. Читать далее Настройка квот CentOS

Как изменить размер логического тома LVM

В моем случае используется операционная система CentOS, хотя все действия будут справедливы для любого дистрибутива.
Сделайте резервную копию всех данных на подопытном томе!

    1. Имеем: логический том, смонтированный на / размером 11G, хотим уменьшить размер на 5G, а оставшееся место смонтировать на /home
    2. Загружаемся с установочного диска в Rescue mode на финальном этапе загрузки отказываемся от chroot в нашу систему, выбираем опцию Skip
    3. Убедимся что система видит наш логический том
      vgdisplay
    4. Активируем lvm том
      vgchange -ay

Читать далее Как изменить размер логического тома LVM

umask Debian Squeeze

Необходимо сделать, чтобы все новые папки создавались с правами 750, а файлы — 640. Для этого будем

 vim /etc/profile

Добавляем

umask 027


Далее

 vim /etc/pam.d/sshd 

Добавляем

session optional pam_umask.so umask=0027


Читать далее umask Debian Squeeze

gpt и parted Debian Squeeze / Wheezy

GUID Partition Table (GPT) — стандарт формата размещения таблиц разделов на физическом жестком диске. Он является частью Расширяемого микропрограммного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену отжившего BIOS, одного из последних реликтов первозданной IBM PC. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR). Для жестких дисков размером больше 2 TB использовать необходимо GPT, MBR с такими дисками работать не будет. Если вы используете Debian или Ubuntu Linux, вам нужно перекомпилировать ядро, с параметром CONFIG_EFI_PARTITION.

File Systems
   Partition Types
     [*] Advanced partition selection
     [*] EFI GUID Partition support (NEW)
egrep -i CONFIG_EFI_PARTITION /boot/config-`uname -r`
CONFIG_EFI_PARTITION=y

UPD:
На новых ядрах Debian поддержка EFI Partitions включена изначально.

:~# egrep -i CONFIG_EFI_PARTITION /boot/config-`uname -r`
CONFIG_EFI_PARTITION=y
:~# uname -r
3.2.0-4-686-pae

В RedHat и CentOS поддержка GPT в ядре работает изначально. Для работы с GPT партициями необходимо использовать утилиту parted. fdisk и cfdisk работать с такими партициями не будут.

aptitude install parted
parted /dev/sdb
(parted) help

parted gpt linux
Читать далее gpt и parted Debian Squeeze / Wheezy

No space left on device

Что делать если при попытке создать файл появляется ошибка No space left on device, но

  1. свободного места навалом
    df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             145G   53G   84G  39% /
    tmpfs                1006M     0 1006M   0% /lib/init/rw
    udev                   10M  648K  9.4M   7% /dev
    tmpfs                1006M     0 1006M   0% /dev/shm
  2. Смотрим вывод df -i. Если видим что-то вроде такого
     df -i
    Filesystem            Inodes   IUsed   IFree IUse% Mounted on
    /dev/sda1            9609216 9609216       0  100% /
    tmpfs                 224212       4  224208    1% /lib/init/rw
    udev                  224212    1208  223004    1% /dev
    tmpfs                 224212       1  224211    1% /dev/shm

    значит не осталось свободных индексных дескрипторов — INODES. Вероятнее всего у вас скопилось большое количество маленьких файлов, например системных журналов или каких-либо логов.

  3. Ищем эти файлы. Спасибо Ивану Кузнецову за метод
    for i in /*; do echo $i; find $i |wc -l; done

    И удаляем их.

    rm -rf /var/www/squid-reports/many_little_logs

Копирование файлов с Windows на Linux

Копирование файлов с Windows на Linux.

#! /bin/bash
WAY=`date --date= +%F`
mkdir /mnt/backup/$WAY #создаем директорию с текущей датой
mount -t cifs ///path/to/folder /mnt/temp -o iocharset=utf8,username=Guest,passwd="guest",nounix #монтируем папку Windows директорию
cp -Rv /mnt/temp/* /mnt/backup/temp #копируем во временную папку
umount /mnt/temp
tar -cvzf /mnt/backup/$WAY/$WAY.tar.gz /mnt/backup/temp/* #архивируем
rm -rf /mnt/backup/temp/* #удаляем временные файлы
exit 0

Теперь можно добавить расписание cron

00 20   * * 1-5  backup-user   /usr/local/sbin/backup.sh > /var/log/backup.log

Это расписание будет работать ежесуточно в 20:00 с понедельника по пятницу. И записывать результат выполнения в файл backup.log

LVM Debian Squeeze

LVM (Logical Volume Manager) — менеджер логических томов. LVM — это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов. Нам потребуется неотформатированный raid массив, созданный в предыдущей статье.

В нашем случае — это массив /dev/md1
raid массив linux

aptitude install lvm2

lvm debian howto
Читать далее LVM Debian Squeeze

Настройка программного raid массива mdadm на Debian Squeeze

Debian mdadm howto
Имеем: два жестких диска по 1TB, на первом установлена система Debian Squeeze, второй — пустой.

fdisk -l

mdadm debian

aptitude search mdadm

mdadm debian

Читать далее Настройка программного raid массива mdadm на Debian Squeeze

Работа с файловой системой Linux

  1. Рекурсивное копирование с сохранением прав
    cp -Rp <что> <куда>
  2. Рекурсивно поменять права на каталоги. Эта команда рекурсивно пройдется по текущему каталогу и всем его подкаталогам и изменит права на 755 только у каталогов
    find . -type d -exec chmod 755 {} \;
  3. Рекурсивно поменять права на файлы
    find . -type f -exec chmod 644 {} \;
  4. Рекурсивный поиск всех файлов с расширениями .py .js .xml .csv и подсчет количества строк в них
    find . -type f \( -name "*.py" -o -name "*.csv" -o -name "*.xml" -o -name "*.js" \) -exec cat {} + | wc -l
  5. Полная информация о разделе
    tune2fs -l /dev/sda1
  6. Принудительная проверка диска. Произойдет после перезагрузки
    touch /forcefsck
  7. Перечитать таблицу разделов
    partprobe
  8. Скопировать таблицу разделов с одного диска на другой
    sfdisk -d /dev/sda | sfdisk /dev/sdb
    dd if=/dev/sda of=/dev/sdb bs=512 count=1
  9. Размер примонтированной файловой системы
    df -h
  10. Информация об инодах файловой системы
    df -i
  11. Размер папки
    du -shc
    du -h
  12. Поиск самых больших файлов
    ls -lSh
    ls -lSh *.cfg
  13. Поиск самых больших папок
    du -kx | egrep -v "\./.+/" | sort -nr
  14. Поиск измененных сегодня файлов
    ls -al --time-style=+%D | grep `date +%D`
  15. Перейти в домашнюю директорию пользователя user
    cd ~user
  16. Показать файлы и директории, содержащие в имени цифры
    ls *[0-9]*
  17. Показать лерево файлов
    tree
  18. Рекурсивное созадние директорий
    mkdir -p ~/dir1/dir2/dir3
  19. Создать символическую ссылку на файл
    ln -s filename lnk
  20. Создать жесткую ссылку на файл
    ln filename lnk
  21. Список всех открытых файлов
    lsof
  22. Кто использует файл
    lsof /path/to/fie
  23. Рекурсивный поиск всех открытых файлов
    lsof +D /usr/lib
  24. Список всех файлов, открытых пользователем
    lsof -u username
  25. Все файлы, открытые программой
    lsof -c nginx
  26. Узнать кто использует партицию
    fuser -v /mnt/
  27. Принудительное отключение занятых устройств
    fuser -km /mnt/disk1
  28. Найти все файлы с битами SUID и SGID
    find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -l {} \;
  29. Рекурсивная смена прав на файлы
    find /path/to/folder/ -type f -exec chmod 644 {} \;
  30. Рекурсивная смена прав на папки
    find /path/to/folder/ -type d -exec chmod 755 {} \;