Почему попытка удалённо выполнить команду sudo с помощью ssh оканчивается ошибкой?
Last modified on 2009-05-30 15:50:32 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-15839.pdf
Translated by Ivan Pesin, May 2009
Система: Red Hat Enterprise Linux 5
Проблема:
Попытка удалённого вызова команды sudo
с помощью ssh
заканчивается ошибкой.
Например:
$ ssh hostname sudo <command>
$ sudo: sorry, you must have a tty to run sudo
Решение:
Файл /etc/sudoers
в Red Hat Enterprise Linux 5 по-умолчанию содержит флаг 'requiretty'
. Когда этот флаг установлен, только зарегистрированные в системе пользователи могут выполнять команды с помощью sudo
. Именно это и не позволяет выполнять удалённо команду sudo
через rsh
или ssh
. Программы rsh
и ssh
не выделяют устройство псевдотерминала. Рекомендуется не убирать этот флаг, поскольку без псеводтерминала невозможно отключить эхо вводимых символов и, как следствие, отображение вводимого пароля.
Для принудительного выделения псевдотерминального устройства, укажите команде ssh
параметр -t
:
# ssh -t hostname sudo <cmd>
Как вариант, можно также отредактировать файл /etc/sudoers
с помощью visudo
и отключить флаг requiretty
, закомментировав строку "Defaults: requiretty"
. Примечание: делать это не рекомендуется.
За подробной информацией обращайтесь к Red Hat Enterprise Linux Deployment Guide.
Как увеличить приоритет операций ввода-вывода некоторых процессов в Red Hat Enterprise Linux 5?
Last modified on 2009-05-30 09:12:06 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-16649.pdf
Translated by Ivan Pesin, May 2009
Система: Red Hat Enterprise Linux 5 и новее
Введение:
Приоритет и класс ввода/вывода процесса могут быть изменены командой ionice
. Linux поддерживает три класса ввода/вывода:
- Idle: процесс, имеющий класс idle, получает возможность работать с диском только если никакая другая программа не выполняет операций ввода/вывода в течении некоторого периода времени.
- Best effort: этот класс используется всеми процессами по-умолчанию, если не был задан определённый класс ввода/вывода.
- Real time: процессы, работающие в классе реального времени, получают доступ к диску в перую очередь, вне зависимости от того, что еще происходит в системе.
По-умолчанию, процессы работают в классе Best Effort с приоритетом равным нулю, т.е. с наивысшим приоритетом в этом классе. Наилучший вариант применения ionice
— улучшение производительности в случаях, когда нужно одновременно выполнять два класса задач: такие, которые не требуют много ввода/вывода, но чувствительны к скорости выполнения операций, и такие, которые наоборот нетребовательны к скорости отклика, но выполняют много операций ввода/вывода.
Решение:
Для повышения приоритета ввода/вывода процесса используйте следующую команду:
# ionice -c1 -n0 -p<PID>
Где:
-c1
указывает класс реального времени-n0
задаёт наивысший приоритет-p <PID>
указывает идентификатор процесса
Понизить приоритет ввода/вывода процесса можно командой:
# ionice -c2 -n4 -p<PID>
Где:
-c2
указывает класс best-effort-n4
задаёт приоритет 4
Чтобы узнать текущий приоритет ввода/вывода процесса, выполните команду:
# ionice <PID>
Например:
# ionice 9709
realtime: prio 7
За подробной информацией о ключах команды ionice
, обращайтесь к руководству, которое доступно по команде man ionice
.
Применения
Если текущему командному интерпретатору задать класс idle, то все команды, которые из него вызываются, будут тоже выполняться в классе idle. Чтобы это сделать, нам понадобится переменная $$ интерпретаторов bash
и sh
.
Например:
# echo $$
29033
Этот вывод означает, что PID вашего текущего интерпретатора равен 29033
. Если вы хотите назначить назначить ему класс idle, выполните команду:
# ionice -c3 -p$$
Теперь всё, что вы делаете в этом интерпретаторе, выполняется в классе idle.
Другим специальным применением ionice
является приоритезация системных бекапов. Вы можете изменить приоритет ввода/вывода архивирующего программного обеспечения так, чтобы оно не мешало другим приложениям в системе.
Примечание: приоритеты и классы ввода/вывода поддерживаются начиная с версии ядра 2.6.13, при использовании планировщика ввода/вывода CFQ. В Red Hat Enterprise Linux 5 для того, чтобы узнать какой планировщик используется в данный момент, используйте команду cat /sys/block/[sh]d[a-z]*/queue/scheduler
. Текущий планировщик будет выделен квадратными скобками..
Например, следующий вывод показывает, что сейчас используется планировщик CFQ:
$ cat /sys/block/[sh]d[a-z]*/queue/scheduler
noop anticipatory deadline [cfq]
Как в Red Hat Enterprise Linux 5 настроить мост для Xen на интерфейсе, отличном от eth0?
Last modified on 2009-05-27 19:53:42 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-10091.pdf
Translated by Ivan Pesin, May 2009
Система: Red Hat Enterprise Linux 5
Проблема:
Конфигурация Xen по-умолчанию автоматически включает в мост xenbr0
интерфейс eth0
. Однако, в некоторых случаях бывает желательно включить в мост интерфейс, отличный от eth0
, чтобы обеспечить гостевым системам доступ к другой сети.
Решение:
Для того, чтобы включить в мост xenbr0
интерфейс, отличный от eth0
, необходимо передать дополнительный параметр скрипту network-bridge в файле /etc/xen/xend-config.sxp
. Измените строку
(network-script network-bridge)
так, чтобы она включала имя интерфейса, который нужно включить в мост:
(network-script 'network-bridge netdev=eth1')
В этом примере, интерфейс eth1
будет включён в мост xenbr0
. Если вы используете bonded-интерфейс, конфигурация будет выглядеть так:
(network-script 'network-bridge netdev=bond0')
При следующем старте демона xend для настройки моста будет использована новая конфигурация. Чтобы убедиться в правильности новой конфигурации, используйте команду brctl
:
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes xenbr0 8000.feffffffffff no peth1 vif0.0
В этом примере, peth1
указан, как интерфейс входящий в мост xenbr0
. Это означает, что интерфейс eth1
был корректно включён в мост.
Если необходимо, чтобы в мост входило несколько сетевых интерфейсов, например eth0
и eth1
, прочитайте инструкции в совете Как объединить несколько сетевых интерфейсов Xen-хоста в мост, доступный гостевым системам?.
Где найти дополнительную информацию для отладки autofs?
Last modified on 2009-05-26 18:23:58 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-1993.pdf
Translated by Ivan Pesin, May 2009
Использование ключа --debug
системы automounter может помочь получить полезную информацию при отладке, но при этом генерируется большой объём журнальных записей. Поэтому, использование этого ключа рекомендуется лишь во время отладки конкретной проблемы.
Сначала настройте syslog писать сообщения уровня daemon.debug в отдельный файл. Это поможет в дальнейшем отбирать необходимые сообщения. Добавьте такую строку в файл /etc/syslog.conf
:
daemon.debug /var/log/autofs
Перегрузите syslog:
service syslog reload
Разрешите режим отладки демона automount. В карте auto.master
добавьте флаг --debug
в нужной строке.
Например, у нас есть такая строка в файле auto.master:
/autofoo auto.foo --timeout=60
Измените её на следующую:
/autofoo auto.foo --timeout=60 --debug
Перегрузите autofs:
service autofs reload
В результате, autofs начнёт писать подробную информацию о своей работе в журнальный файл /var/log/autofs
.
После того, как вы получили необходимую информацию, стоит отменить внесённые изменения. Удалите строки, добавленные в конфигурационные файлы, и перезапустите сервисы autofs и syslog.
Как объединить несколько сетевых интерфейсов Xen-хоста в мост, доступный гостевым системам?
Last modified on 2009-05-24 19:19:16 GMT. 0 comments. Top.
the Open Publication License, v1.0 or later (available at http://www.opencontent.org/openpub/).
Original article: http://kb.redhat.com/faq/docs/DOC-9811.pdf
Translated by Ivan Pesin, May 2009
Создайте скрипт со следующим содержанием и назовите его /etc/xen/scripts/network-xen-custom:
#!/bin/sh # network-xen-custom # Выйти, если что-то пойдёт не так set -e # Первый аргумент -- это операция OP=$1 shift script=/etc/xen/scripts/network-bridge case ${OP} in start) $script start vifnum=0 bridge=xenbr0 netdev=eth0 $script start vifnum=1 bridge=xenbr1 netdev=eth1 ;; stop) $script stop vifnum=0 bridge=xenbr0 netdev=eth0 $script stop vifnum=1 bridge=xenbr1 netdev=eth1 ;; status) $script status vifnum=0 bridge=xenbr0 netdev=eth0 $script status vifnum=1 bridge=xenbr1 netdev=eth1 ;; *) echo "Unknown command:${OP}" echo 'Valid commands are: start, stop, status' exit 1 esac
Убедитесь, что этот скрипт имеет установленный бит выполнения:
chmod 755 /etc/xen/scripts/network-xen-custom
Отредактируйте файл /etc/xen/xend-config.sxp : закомментируйте вызов старого скрипта и добавьте строку с вызовом нового:
#(network-script network-bridge)
(network-script network-xen-custom)
Перезагрузите систему, чтобы новый интерфейс-мост инициализировался корректно.
Как выключить цветовую подсветку в vi или vim из Red Hat Enterprise Linux
Last modified on 2009-05-24 09:24:05 GMT. 0 comments. Top.
the Open Publication License, v1.0 or later (available at http://www.opencontent.org/openpub/).
Original article: http://kb.redhat.com/faq/docs/DOC-6899.pdf
Translated by Ivan Pesin, May 2009
Система: Red Hat Enterprise Linux, все версии
Проблема: В Red Hat Enterprise Linux команда vi является псевдонимом текстового редактора vim, улучшенной версии vi. Некоторым людям не нравится цветной вариант и подсветка в vim и они хотят того же стиля, как в старом vi.
Решение:
Самый простой способ решения этой проблемы — выключить синтаксическую подсветку в vim. Введите следующую команду в vim для отключения синтаксической подсветки:
:syntax off
Если вы захотите опять включить цвета и подсветку, просто введите:
:syntax on
Примечание: если вы хотите, чтобы запрет подсветки синтаксиса сохранялся при последующих запусках vim для данной учётной записи, вы можете отредактировать файл .vimrc в домашнем каталоге пользователя.
Выполните команду:
vi ~/.vimrc
Добавьте следующую строку в файл .vimrc, чтобы запретить подсветку синтаксиса для текущей учётной записи:
syntax off
Если вы захотите вернуть обратно синтаксическую подсветку в vim, укажите “syntax on”.
vim — программа с богатым набором настроек. Вы даже можете создавать собственные наборы цветовых схем и синтаксических подсветок. Подробная информация о возможностях vim доступна в документации, которую можно прочесть, введя в редакторе команды:
:help
:help syntax
Как избежать неправильной нумерации сетевых карт в системах Red Hat Enterprise Linux с несколькими сетевыми интерфейсами?
Last modified on 2009-05-20 15:21:23 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-15331.pdf
Translated by Ivan Pesin, May 2009
Система: Red Hat Enterprise Linux 5
Проблема:
Большинство устройств нумеруются ядром Linux в соответствии с их порядком в PCI-таблице системного BIOS. Наполнением этой таблицы занимается сам BIOS. Поскольку порядок устройств в этой таблице на разных системах не обязательно последовательный, устройства могут нумероваться ядром по-разному. Обычно при определении порядка устройств на шине используются номер шины, номер устройства и номер функции. Некоторые системы имеют несколько шин, например шину PCI и шину PCI-X.
Решение:
Для того, чтобы избежать случаев перенумеровывания системных сетевых интерфейсов, необходимо использовать параметр HWADDR=. Например, следующая строка может быть добавлена в любой из файлов /etc/sysconfig/network-scripts/ifcfg-ethN
:
HWADDR=
Если параметр “HWADDR=” не используется, то при перезагрузках может происходить периодическое переименование устройств.
Пример
ifconfig -a | grep HW __tmp1174018308 Link encap:Ethernet HWaddr 00:1D:09:6A:78:EA eth1 Link encap:Ethernet HWaddr 00:1D:09:6A:78:EC eth2 Link encap:Ethernet HWaddr 00:15:17:19:39:38 eth3 Link encap:Ethernet HWaddr 00:15:17:19:39:39
В вышеприведённом примере вы можете видеть, что устройство eth0 после перезагрузки было переименовано в “__tmp1174018308”. Чтобы избежать повторения такой проблемы, задайте параметр “HWADDR=” в файле /etc/sysconfig/network-scripts/ifcfg-eth0 следующим образом:
Ethernet Device
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:1D:09:6A:78:EA
ONBOOT=yes