Tips & tricks

This article is protected by the Open Publication License, V1.0 or later. Copyright © 2005 by Red Hat, Inc.

Original article: http://www.redhat.com/magazine/013nov05/departments/tips_tricks/

Red Hat Magazine, выпуск 13, ноябрь 2005

Перевод: © Иван Песин

Служба поддержки пользователей Red Hat получает технические вопросы со всего мира. Специалисты Red Hat ежедневно добавляют полученные вопросы и ответы на них в базу знаний Red Hat Knowledgebase. Доступ к ней возможен при наличии учетной записи на сайте redhat.com. Каждый месяц Red Hat Magazine знакомит читателей с Red Hat Knowledgebase, публикуя несколько самых свежих вопросов и ответов.

Советы от RHCE

Математика в командной строке

Знаете ли вы, что выполнять простые математические действия можно непосредственно в командной строке? Попробуйте, например:

[brad@satsuki ~]$ X=5
[brad@satsuki ~]$ Y=10
[brad@satsuki ~]$ echo $[ ($X+$Y)*2/10 ]
3

Это может оказаться очень удобным, если вы хотите что-то быстро подсчитать, но не желаете запускать приложение-калькулятор. Но учтите, что bash не поддерживает дроби. При вычислениях, дробное число округляется к меньшему целому:

 
[brad@satsuki ~]$ echo $[ 3/2 ]
1

Для более сложных вычислений, вам придется использовать графическое приложение, например gnome-calculator, или более точный консольный калькулятор, например bc:

 
[brad@satsuki ~]$ echo "3/2" | bc -l
1.50000000000000000000

Можно ли извлечь из архива tar один или несколько файлов, не распаковывая весь архив?

Следующая команда извлекает один файл из тарбола:

# tar xf file.tar full/path/to/file

Например, создадим следующий архив:

# tar cvf pictures.tar pictures
pictures/
pictures/seattle.jpg
pictures/WG.jpg

А теперь извлечем из него файл seattle.jpg без распаковки всего архива. Для этого выполните команду:

# tar xf pictures.tar pictures/seattle.jpg
# ls -al pictures/seattle.jpg
-rw-rw-r-- 1 user user 1458298 Jul 26 16:16 pictures/seattle.jpg

Примечание: Вы должны указать ПОЛНЫЙ путь к файлу, который нужно разархивировать.

Как с помощью dm-crypt создать зашифрованный PV (физический том) в LVM2?

Рассмотрим пример использования dm-crypt. DATA — это существующая группа томов (Volume Group).

  1. Создайте с помощью lvcreate раздел CRYPTO:
    [root@testmachine /]# lvcreate -n CRYPTO -L+100M DATA
    Logical volume "CRYPTO" created
  2. В разделе CRYPTO создайте с помощью cryptsetup блочное устройство:
    [root@testmachine /]# cryptsetup create DMCRYPT /dev/DATA/CRYPTO
    Enter passphrase:
  3. Проверьте состояние созданного устройства:
    [root@testmachine /]# cryptsetup status DMCRYPT
    /dev/mapper/DMCRYPT is active:
    cipher: aes-plain
    keysize: 256 bits
    device: /dev/dm-6
    offset: 0 sectors
    size: 204800 sectors
  4. Создайте файловую систему утилитой mke2fs:
    [root@testmachine /]# mke2fs /dev/mapper/DMCRYPT
    mke2fs 1.35 (28-Feb-2004)
    max_blocks 104857600, rsv_groups = 12800, rsv_gdb = 256
    Filesystem label=
    OS type: Linux
    Block size=1024 (log=0)
    Fragment size=1024 (log=0)
    25688 inodes, 102400 blocks
    5120 blocks (5.00%) reserved for the super user
    First data block=1
    Maximum filesystem blocks=67371008
    13 block groups
    8192 blocks per group, 8192 fragments per group
    1976 inodes per group
    Superblock backups stored on blocks:
    8193, 24577, 40961, 57345, 73729

    Writing inode tables: done
    inode.i_blocks = 3074, i_size = 67383296
    Writing superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 35 mounts or
    180 days, whichever comes first. Use tune2fs -c or -i to override.
  5. Смонтируйте файловую систему и создайте на ней файл:
    [root@testmachine /]# mkdir /mnt/crypt;
    [root@testmachine /]# mount /dev/mapper/DMCRYPT /mnt/crypt
    [root@testmachine /]# cd /mnt/crypt
    [root@testmachine crypt]# ls -al
    total 17
    drwxr-xr-x 3 root root 1024 Feb 16 12:32 .
    drwxr-xr-x 4 root root 4096 Feb 16 12:33 ..
    drwx------ 2 root root 12288 Feb 16 12:32 lost+found
    [root@testmachine crypt]# df -h
    Filesystem Size Used Avail Use% Mounted on
    [...]
    /dev/mapper/DMCRYPT 97M 1.6M 91M 2% /mnt/crypt
    [root@testmachine crypt]# touch FOOBAR
    [root@testmachine crypt]# ls -al
    total 17
    drwxr-xr-x 3 root root 1024 Feb 16 13:42 .
    drwxr-xr-x 4 root root 4096 Feb 16 12:33 ..
    -rw-r--r-- 1 root root 0 Feb 16 13:42 FOOBAR
    drwx------ 2 root root 12288 Feb 16 12:32 lost+found
    [root@testmachine crypt]# cd ..
  6. Теперь размонтируйте ее и удалите шифрованное блочное устройство -> устройство теперь в безопасности.
    [root@testmachine mnt]# umount /mnt/crypt
    [root@testmachine mnt]# cryptsetup remove DMCRYPT

    Дальнейшие действия могут выполняться и после перезагрузки системы.

  7. Создайте еще раз блочное устройство и попробуйте ввести неправильный пароль:
    [root@testmachine mnt]# cryptsetup create DMCRYPT /dev/DATA/CRYPTO
    Enter passphrase: <----------- ВВЕДИТЕ НЕПРАВИЛЬНУЮ ПАРОЛЬНУЮ ФРАЗУ!
    [root@testmachine mnt]# mount /dev/mapper/DMCRYPT /mnt/crypt
    mount: you must specify the filesystem type
  8. Попробуйте еще раз, но теперь с правильным паролем:
    [root@testmachine mnt]# cryptsetup remove DMCRYPT
    [root@testmachine mnt]# cryptsetup create DMCRYPT /dev/DATA/CRYPTO
    Enter passphrase:
    [root@testmachine mnt]# mount /dev/mapper/DMCRYPT /mnt/crypt
    [root@testmachine mnt]# ls -al /mnt/crypt/
    total 17
    drwxr-xr-x 3 root root 1024 Feb 16 12:32 .
    drwxr-xr-x 4 root root 4096 Feb 16 12:33 ..
    -rw-r--r-- 1 root root 0 Feb 16 13:42 FOOBAR
    drwx------ 2 root root 12288 Feb 16 12:32 lost+found

Как отключить Hyper-Threading из загрузчика GRUB?

Временно

Во время загрузки вы можете добавить опцию в строку параметров ядра.

Постоянно

Более подробная информация о технологии Hyper-Threading доступна по адресу: http://www.intel.com/technology/hyperthread/.

Как настроить в Red Hat Enterprise Linux 4 Update 2 использование раздела подкачки в качестве устройства для дампов системы diskdump?

Система: Red Hat Enterprise Linux 4 Update 2

Решение:
Не следуйте инструкциям из файла README, включенного в RPM-пакет diskdumputils-1.1.9, для настройки использования раздела подкачки системой diskdump. Иначе раздел подкачки будет заблокирован. Инструкции в файле README указывают на необходимость форматирования раздела подкачки, что ведет к его разрушению. Устройства дампирования, кроме разделов подкачки, всегда требуют выполнения service diskdump initialformat для использования в качестве выделенных устройств для дампов. Другими словами, разделы подкачки форматировать не нужно. Более детальная информация приведена в разделе "Настройки" последней версии файла README.

Обзор

Пакет diskdumputils устанавливается на машине, где вы хотите сохранять дамп, генерируемый в случае системного сбоя. Соответствующие скрипты загружают и настраивают модуль ядра diskdump таким образом, что при сбое дамп памяти записывается на диск.

Поддерживаемые драйверы

Функциональность diskdump поддерживается только с нижеперечисленными адаптерами:

Red Hat Enterprise Linux 3 Red Hat Enterprise Linux 4
---------------------------------
aic7xxx aic7xxx
aic79xx aic79xx
dpt_i2o
ipr
megaraid2 megaraid
mptfusion mptfusion
sym53c8xx sym53c8xx
sata_promise sata_promise
ata_piix ata_piix
CCISS

Поддерживаемые ядра

Функциональность diskdump поддерживается следующими ядрами Red Hat, где <kernel-version> соответствует версии, содержащей данный пакет diskdumputils:

Red Hat Enterprise Linux 3
kernel-<kernel-version>.i686.rpm
kernel-smp-<kernel-version>.i686.rpm
kernel-hugemem-<kernel-version>.i686.rpm
kernel-<kernel-version>.athlon.rpm
kernel-smp-<kernel-version>.athlon.rpm
kernel-<kernel-version>.ia64.rpm
kernel-<kernel-version>.x86-64.rpm
kernel-smp-<kernel-version>.x86-64.rpm
kernel-smp-<kernel-version>.ia32e.rpm

Red Hat Enterprise Linux 4
kernel-<kernel-version>.i686.rpm
kernel-smp-<kernel-version>.i686.rpm
kernel-hugemem-<kernel-version>.i686.rpm
kernel-<kernel-version>.ia64.rpm
kernel-<kernel-version>.ppc64.rpm
kernel-<kernel-version>.x86-64.rpm
kernel-smp-<kernel-version>.x86-64.rpm

Настройка

  1. Выбор устройства для дампов

    Первым шагом в процессе настройки, есть выбор дискового устройства куда будет записываться дамп памяти в случае системного сбоя. Устройство для дампа может представлять собой:

    • дисковый накопитель (например /dev/sda)
    • раздел диска (например /dev/sda4)
    • раздел подкачки — только в Red Hat Enterprise Linux 4 — (например /dev/sda2 или /dev/VolGroup00/LogVol01)

    Если вы настраиваете раздел подкачки в качестве устройства для дампа, то, по нижерассмотренным причинам, каталоги /usr и /var должны находится на локальных файловых системах.

    В случае системного сбоя, содержимое памяти сохраняется в /var/crash. При загрузке системы, для записи сохраненного содержимого памяти, выполняются программы пакета diskdumputils, которые должны считать /var/crash. Эти программы находятся в подкаталогах /usr, а операции сохранения памяти запускаются при загрузке до активации раздела подкачки и монтирования сетевых файловых систем. Таким образом, если /usr и /var находятся на сетевых файловых системах, сервис diskdump не будет запущен во время загрузки системы.

    Размер устройства для дампов должен быть достаточно большим, чтобы вмещать весь дамп. Размер сохраняемого дампа состоит из размера всей физической памяти системы плюс заголовок. Чтобы определить точный размер необходимого пространства, посмотрите в файл /proc/diskdump после загрузки модуля diskdump:

    # modprobe diskdump

    # cat /proc/diskdump

    # sample_rate: 8
    # block_order: 2
    # fallback_on_err: 1
    # allow_risky_dumps: 1
    # total_blocks: 262042

    Размер блока в параметре total_blocks равен размеру страницы. Таким образом, в данном случае, на машине с архитектурой i386, нам необходим раздел, размером минимум (262042 * 4096) байт.

    Примечание: При сохранении дампа памяти, содержимое памяти, находящееся в разделе подкачки, не сохраняется. Потому размер устройства для дампов должен соответствовать размеру физической памяти, без учета размера раздела подкачки.

    Теперь, исходя из приведенной информации, выберите подходящее устройство для сохранения дампов и настройте подсистему diskdump на его использование. Делается это следующим образом.

    Отредактируйте файл /etc/sysconfig/diskdump и задайте устройство для дампов:

    DEVICE=/dev/sde1

    Можно указать несколько устройств, разделив их двоеточием:

    DEVICE=/dev/sda2:/dev/sdb

    Преимуществом использования нескольких устройств является избыточность. Например, если каждое из устройств для дампов управляется отдельным драйвером, то даже в случае сбоя из-за проблем драйвера, управляющего одним из устройств для дампов, содержимое памяти будет сохранено на другом устройстве. Каждое из устройств должно быть достаточно большим, чтобы вместить весь дамп. При использовании раздела подкачки в качестве устройства для дампа, указывать более одного устройства нельзя.

  2. Форматирование устройства для дампов

    Примечание: пропустите этот шаг, если вы используете раздел подкачки в качестве устройства для дампов.

    Второй шаг в процессе настройки — это форматирование устройства для дампов.

    Любое выбранное вами устройство для дампов, за исключением раздела подкачки, должно быть специальным образом отформатировано перед его использованием. Соответственно, это устройство не может быть использовано для создания обычной файловой системы.

    Форматирование устройства для дампов выполняется системным администратором один раз перед его использованием. (Примечание: этот шаг должен быть опущен, если в качестве устройства для дампов используется раздел подкачки. В противном случае, раздел подкачки станет непригодным для использования по назначению):

    # service diskdump initialformat
  3. Активирование сервиса diskdump

    Наконец, запустите сервис diskdump:

    # chkconfig diskdump on
    # service diskdump start

    Выбранное устройство/раздел можно проверить с помощью интерфейса /proc/diskdump.

    # cat /proc/diskdump
    /dev/sde1 514080 1012095

    Если нужно заменить устройство для дампов, отредактируйте файл /etc/sysconfig/diskdump, отформатируйте новое устройство, как это было описано выше, и перезапустите сервис diskdump. Для перезапуска сервиса выполните команду:

    # service diskdump restart

Тестирование сервиса diskdump

Чтобы проверить функциональность diskdump, нажмите Alt-SysRq-C или выполните echo c > /proc/sysrq-trigger. После завершения дампа, во время следующей загрузки системы будет создан файл vmcore в каталоге, с названием вида:

/var/crash/127.0.0.1-<date>

Формат файла vmcore соответствует формату, создаваемому средством netdump, так что для анализа файла можно использовать утилиту crash(8).

Примечание

После первоначальной настройки вам больше ничего не нужно делать. Единственное, за чем вам необходимо следить, так это за размером раздела, выделенного для дампов. Если там не хватит места, дамп будет сохранен лишь частично, а результирующий файл — носить имя vmcore-incomplete.

Система Diskdump содержит настраиваемый скрипт diskdump-nospace. Этот скрипт вызывается перед созданием файла vmcore, если в /var/crash нет достаточного количества свободного места. Таким образом, в нем вы можете задать команды для очистки файловой системы.

Регулируемые параметры

Модуль diskdump поддерживает следующие параметры:

block_order: Задает размер блока ввода-вывода при создании дампа. Значение по умолчанию равно 2, что устанавливает размер блока в page-size << 2 или 16 кбайт на архитектуре i386. Большее значение увеличивает производительность, но, вместе с тем, и объем занимаемой модулем памяти.

sample_rate: Определяет количество блоков, проверяемых перед записью. Значение по-умолчанию равно 8, что означает проверку одного блока из 1<<8 (256). Нулевое значение говорит, что нужно проверять каждый блок, а отрицательные значения отключают проверку вовсе.

dump_level: Уровень сбора памяти указывает какие именно страницы памяти будут дампироваться. Значение по-умолчанию — нуль — говорит о необходимости записи всех страниц физической памяти в файл vmcore. Чтобы уменьшить размер файла vmcore, можно исключить из дампа кэш-страницы, нуль-страницы, свободные страницы и страницы, содержащие данные пользовательских приложений. Указывая значение dump_level от 1 до 15 можно задать тип страниц, которые будут исключены из дампа. В следующей таблице указано соответствие между уровнем дампа и исключаемыми из дампа типами страниц памяти:

уровень кэш-     нуль-    свободные пользовательские описание
дампа страницы страницы страницы страницы
-------------------------------------------------------------
0 значение по-умолчанию
1 X
2 X
3 X X рекомендуется
4 X
5 X X
6 X X
7 X X X
8 X
9 X X
10 X X
11 X X X
12 X X
13 X X X
14 X X X
15 X X X X минимальный размер дампа

Функция частичного дампа памяти позволяет регулировать количество дампируемой памяти. Часто для исследования возникающей проблемы ядра все содержимое ОЗУ не требуется. Большая часть памяти обычно занята данными пользовательских приложений, кэшем (файловыми данными), нуль- и свободными страницами. Игнорирование таких типов страниц при создании файла vmcore, значительно уменьшает его размер, а сама процедура создания дампа занимает меньше времени. И хотя реальный размер файла vmcore может варьироваться в зависимости от состояния системы и значения параметра dump_level, минимальный объем памяти, необходимый для анализа дампа, всегда будет доступен. Тем не менее, всегда может возникнуть ситуация, когда необходимо сохранить все содержимое памяти, потому не рекомендуется использовать для дампов раздел, размер которого меньше реального объема физической памяти.

Необходимо помнить, что частичное дампирование памяти несет некоторую опасность. При выполнении дампа памяти, система просматривает специальные структуры, в которых записаны атрибуты страниц памяти. Если такая структура по каким-либо причинам разрушена, процесс сканирования может завершится сбоем. Например, если dump_levelимеет значение в диапазоне  4-7 или 12-15, будут просмотрены списки ядра, содержащие указатели на свободные страницы. Если этот список поврежден, процесс может "повиснуть". Более того, возможно, что опущенный тип страницы памяти необходим для полного анализа причины некоторых сбоев. Потому, уровень сбора памяти должен выбираться индивидуально для каждой ситуации. Рекомендуемым уровнем является 3, потому что обнаружить нуль- и кэш-страницы проще всего и нет необходимость просматривать списки страниц.

Как сделать изменения в файле /etc/resolv.conf постоянными, если они сбрасываются при перезагрузке?

Добавьте в файл /etc/sysconfig/network-scripts/ifcfg-eth<N> опцию PEERDNS. <N> может быть 0, 1, 2, и т.д. и должно соответствовать конфигурационному файлу сетевого интерфейса. Например, первой сетевое устройство ethernet в системе называется eth0, значит его конфигурационный файл называется /etc/sysconfig/network-scripts/ifcfg-eth0.

Установите параметр PEERDNS в 'no'. Например:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
PEERDNS=no

Этот параметр гарантирует, что файл /etc/resolv.conf не будет перезаписан при загрузке системы.

Как настроить vsftpd в Red Hat Enterprise Linux 3 так, чтобы определенные пользователи имели доступ только к FTP?

Система: Red Hat Enterprise Linux 3

Задача:
Вам нужно настроить безопасный сервер FTP с тщательным контролем за пользователями, имеющими к нему доступ. Вы не хотите предоставлять анонимный доступ, а существующие пользователи не должны иметь возможности регистрации в системе. Пространство, доступное  пользователям, должно быть ограничено определенным каталогом. Пользователи не должны иметь возможность получать почту на этой системе. Все необходимые пакеты в системе уже установлены  (т.е. vsftpd, sendmail и пр.) и настроены они по-умолчанию. Вы имеете доступ к учетной записи root и умеете редактировать конфигурационные файлы.

Решение:
Используйте следующие шаги:

  1. Убедитесь, что сервис FTP запускается при загрузке системы. Это можно сделать с помощью команды chkconfig vsftpd on. Также удостоверьтесь, с помощью команды chkconfig gssftp off, что сервис gssftp выключен.
  2. Откройте в редакторе файл /etc/vsftpd/vsftpd.conf. В начале файла установите параметр anonymous_enable=NO. В конце файла добавьте chroot_local_user=YES.
  3. Добавьте необходимые учетные записи, командой useradd -d <каталог> -s /sbin/nologin <имя_пользователя>. Замените <имя_пользователя> непосредственно именем создаваемого пользователя. Вместо <каталог> укажите каталог, к которому будет иметь доступ данный пользователей. Примечание: <имя_пользователя> должно быть уникальным, тогда как <каталог> — необязательно.
  4. Задайте пароль для учетных записей командой passwd <username>.
  5. Добавьте в файл /etc/vsftpd.user_list имена пользователей, которые должны иметь доступ (по одному на строку).
  6. Откройте в редакторе файл /etc/aliases и добавьте в любое место строки (по одной на пользователя) <имя пользователя> : /dev/null. Примечание: это отключает доставку почты в локальный ящик пользователя.
  7. Выполните команду newaliases, чтобы активировать изменения внесенные в файл /etc/aliases.
  8. Установите соответствующие права доступа к каталогу(-ам), указанному в команде useradd. Обратитесь к другим статьям из базы знаний за информацией о настройке прав доступа пользователей и групп.
  9. Запустите сервер vsftpd с помощью команды service vsftpd start.
  10. Попробуйте зарегистрироваться под созданными пользователями, чтобы убедиться в отсутствии доступа к системе.
  11. Проверьте возможность доступа созданных пользователей к серверу FTP командой ftp localhost. Убедитесь, что пользователи не имеют доступа к каталогам вне указанного.
  12. Проверьте ваши дополнительные ограничения по загрузке данных.

Как мне ограничить доступ пользователей через SSH с помощью директив allow и deny?

Конфигурационный файл сервера SSH /etc/ssh/sshd_config предоставляет несколько путей ограничения доступа

Директива AllowUsers может быть использована для задания списка пользователей, которым разрешен доступ через SSH. После директивы следует перечислить через пробел шаблоны имен пользователей.

А для того, чтобы задать список пользователей, которым запрещен доступ по SSH, используется директива DenyUsers. Обе директивы понимают метасимволы '*' и '?' в шаблонах имен пользователей. К сожалению, числовые идентификаторы пользователей (UID) не поддерживаются. По-умолчанию, доступ разрешен всем пользователям.

Для ограничения доступа на уровне групп пользователей, можно применять директивы AllowGroups и DenyGroups. Эти опции разрешают или запрещают доступ пользователям, чья основная или вспомогательная группа соответствует заданному шаблону.

Ниже приведен пример файла /etc/ssh/sshd_config, который запрещает доступ по SSH пользователю haller:

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.

#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 3600
#ServerKeyBits 768

# Logging
#obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

# Authentication:

#LoginGraceTime 120
#PermitRootLogin yes
#StrictModes yes

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

# rhosts authentication should not be used
#RhostsAuthentication no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

#AFSTokenPassing no

# Kerberos TGT Passing only works with the AFS kaserver
#KerberosTgtPassing no

# Set this to 'yes' to enable PAM keyboard-interactive authentication
# Warning: enabling this may bypass the setting of 'PasswordAuthentication'
#PAMAuthenticationViaKbdInt no

#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#KeepAlive yes
#UseLogin no
UsePrivilegeSeparation no
#PermitUserEnvironment no
Compression no

#MaxStartups 10
# no default banner path
#Banner /some/path
#VerifyReverseMapping no
#ShowPatchLevel no

# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
DenyUsers haller

После изменения файла /etc/ssh/sshd_config перезапустите сервис sshd:

service sshd restart

Другим способом ограничения доступа по SSH, является использование подсистемы Pluggable Authentication Module (PAM). За подробной информацией по этому вопросу, обратитесь к другим статьям из базы знаний.

Почему я получаю ошибки "read only filesystem", хотя файловая система смонтирована в режиме чтения-записи?

Если ядро обнаруживает критическое разрушение на диске или некоторые особо важные операции записи, например запись данных в журнал, заканчиваются сбоем, ядро может перемонтировать файловую систему в режиме только для чтения. Это связано с тем, что в данных условиях нет возможности поддерживать целостность файловой системы. Такое поведение тщательно протоколируется в файле /var/log/messages.

Если вы обнаружили описанные симптомы, сархивируйте ваши данные, поскольку такое поведение может говорить о грозящем сбое диска. Как только будет возможность, выполните проверку файловой системы утилитой e2fsck с опцией -c — проверкой на сбойные сектора. Обычная утилита fsck может не обнаружить всех ошибок. Пример:

e2fsck -c /dev/sda3