CentOS: Полезные заметки

http://pro-voip.com.ua centos

Man

# yum install man.i686 man-pages.noarch
man.i686: A set of documentation tools: man, apropos and whatis
man-pages.noarch: Man (manual) pages from the Linux Documentation Project

Пользователи

Добавление пользователя:
# useradd <login name>
Пользователь создается с параметрами, описанными в /etc/default/useradd. Для изменения дефолтных параметров можно использовать опции команды useradd. Есть еще команда adduser, но это всего-навсего символическая ссылка на useradd.

Установка пароля новосозданного пользователя:
# passwd <login name>

По умолчанию пользователь не может выполнять команды с правами root’a, используя команду sudo -s:

[user1@srv]$ sudo -s
[sudo] password for user1:
user1 is not in the sudoers file.  This incident will be reported.

Править /etc/sudoers:
# visudo

В файле /etc/sudoers видим, что пользователи, которые входят в группу wheel, могут выполнять все команды:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

Как вариант, можно добавить пользователя в группу wheel.

Добавить пользователя в дополнительную группу:
# usermod -a -G <group name> <login name>

-a — добавить пользователя в дополнительную группу (не меняя initial-группы пользователя), используется только совместно с опцией -G
-G — указывает, в какую именно группу (или группы) добавить пользователя. Группа должна быть создана ранее.

Добавить пользователя в группу wheel:
# usermod -a -G wheel user1

# cat /etc/group
...
wheel:x:10:root,user1

Проверка:

[user1@srv]$ sudo -s
[sudo] password for user1:
[root@srv]#

Добавить пользователя еще в несколько групп:
# usermod -a -G support,sales,management user1

 

Система

Посмотреть версию установленной OS Centos:

# cat /etc/centos-release
CentOS release 6.7 (Final)

lrwxrwxrwx. 1 root root 14 Nov 17 12:52 /etc/redhat-release -> centos-release
lrwxrwxrwx. 1 root root 14 Nov 17 12:52 /etc/system-release -> centos-release

/etc/redhat-release и /etc/system-release — это ссылки на centos-release

Посмотреть список возможных обновлений:
# yum list updates

Upgrage системы (например, с 6.0 до 6.7)
# yum update

 

Ядро и модули

Какие модули загружены:
# lsmod

Информация о модуле
# modinfo <module name>

Загрузить модуль на лету:
# modprobe <module name>

Выгрузить модуль на лету:
# modprobe -r <module name>

 

Автозагрузка модуля при старте системы

Для этого создаем скрипт и размещаем его в /etc/sysconfig/modules
Обязательные условия:
— имя скрипта должно иметь вид <some_words>.modules, например 8021q.modules
— скрипт, само собой, делаем исполняемым — chmod +x 8021q.modules
— сам скрипт запускает все тот же modprobe <имя модуля>

#!/bin/sh
/sbin/modprobe 8021q

не забываем про первую строку #!/bin/sh и путь к modprobe лучше указать полностью

 

Добавление своего скрипта в автозагрузку

Скрипт должен быть исполняемым

# ls -al /etc/iptables/iptables-start.sh
-rwxr—r—. 1 root wheel 83 Nov 28  2013 /etc/iptables/iptables-start.sh

Добавляем его в /etc/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

/etc/iptables/iptables-start.sh

Скрипт выполняется после загрузки системы.

 

Сеть

DNS Настройка резолвера:

/etc/resolv.conf

seacrh provoip.in.ua
nameserver 8.8.8.8
nameserver 8.8.4.4

Настройка сетевых параметров:

/etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=srv.provoip.in.ua
GATEWAY=192.168.100.1

NETWORKING=yes (yes — сеть будет настраиваться автоматически из скриптов /etc/sysconfig/network-scripts, no — вручную)

 

Настройка сетевых интерфейсов:

/etc/sysconfig/network-scripts/ifcfg-*

В /etc/sysconfig/network-scripts есть файлы вида ifcfg-*, например ifcfg-eth0, ifcfg-eth1, ifcfg-lo — в них описываем необходимые настройки сетевых карт. Эти файлы передаются в качетсве аргумента в скрипты ifup, ifdown и т.п. Каждая сетевая карта имеет свой файл ifcfg-. Например, есть в системе сетевая карта, которая определяется как eth0. Для ее автонастройки после перезагрузки системы необходим соответствующий файл ifcfg-eth0.

 

Конфигурация сетевой карты (фиксированный ip-адрес):

DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.100.2
NETMASK=255.255.255.0
NETWORK=192.168.100.0
BROADCAST=192.168.100.255
ONBOOT=yes — включать интерфейс при загрузке или нет
NAME=eth0

Конфигурация сетевой карты (получение ip-адреса по dhcp):

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

BOOTPROTO=<protocol>, значения — none, dhcp, bootp — какой протокол использовать для получения настроек
BROADCAST=<address> — необязательно указывать, высчитывается автоматически
NETWORK=<address> — необязательно указывать, высчитывается автоматически
DEVICE=<name> — имя физического устройства

HWADDR=<MAC-address> — используется в серверах с несколькими сетевыми картами для того, чтобы убедиться интерфейсы получат свои правильные device-name. Т.е., например, настройки, прописанные для девайса eth0 всегда будут применяться к карте с вот таким вот HWADDR (Другими словами, сетевая карта с этим вот HWADDR всегда будет иметь имя eth0 и на при каких обстоятельствах не поменяет его на eth1). Директива не используется совместно с MACADDR.
MACADDR=<MAC-address> — можно перезаписать MAC-адрес физической сетевой карты (в форме AA:BB:CC:DD:EE:FF). Директива не используется совместно с HWADDR.

ETHTOOL_OPTS=<options> — указать опции утилиты ethtool, например, прибить жестко скорость и т.д
ETHTOOL_OPTS=»autoneg off speed 100 duplex full»

DNS1=<address>
DNS2=<address>
PEER_DNS=yes — изменять /etc/resolv.conf. При ONBOOT=dhcp PEER_DNS=yes — это дефолтное значение

SRCADDR=<address> — ip-адрес, котрый навешивается на исходящие пакеты (полезно если на интерфейсе прибито alias’ом несколько адресов)
USERCTL=<yes,no> — Не-root пользователи могут (или нет) управлять сетевой картой

 

Алиас на интерфейс:

Алиас — несколько ip-адресов на одном физическом интерфейсе

Файл для алиаса — ifcfg-<if-name>:<alias-value>

DEVICE=<ifname>:<alias-value>

!Алиас-интерфейсы не поддерживают DHCP

Пример

Физический интерфейс — файл ifcfg-eth0 (DEVICE=eth0)
Алиас на физический интерфейс — файл ifcfg-eth0:0 (DEVICE=eth0:0)
Еще один алиас на физический интерфейс — файл ifcfg-eth0:1 (DEVICE=eth0:2)
и т.д.

 

Файл-клон интерфейса:

Файл-клон используется для добавления каких-либо опций для одного и того же физического интерфейса.
Файл ifcfg-<if-name>-<clone-name>

Пример

Физический интерфейс — файл ifcfg-eth0 (DEVICE=eth0)
Клон физического интерфейса — файл ifcfg-eth0-custom (DEVICE=eth0)
Параметры, указанные в ifcfg-eth0 и ifcfg-eth0-custom комбинируются

 

802.1q в Centos

Должен быть загружен модуль 8021q
Проверяем:
# lsmod | grep 8021q

Если не загружен, загружаем:
# modprobe 8021q

Добавим автозагрузку модуля при старте системы (как это делается, смотрим выше)

! Для каждого влана создаем свой файл ifcfg-ethX.<vlan number> в /etc/sysconfig/network-scripts/. 

VLAN=yes
DEVICE=ethX.<vlan number>
IPADDR=192.168.100.2
NETMASK=255.255.255.0
ONBOOT=yes

Не лишним будет создать ifcfg- файл физического устройства перед этим.

Пример

Нужно создать vlan 222 на интерфейсе eth0. Создаем 2 файлав /etc/sysconfig/network-scripts/:

ifcfg-eth0

DEVICE=eth0
ONBOOT=yes

ifcfg-eth0.222

VLAN=yes
DEVICE=eth0.222
IPADDR=192.168.100.2
NETMASK=255.255.255.0
ONBOOT=yes