<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог о Solaris &#187; Полезные команды</title>
	<atom:link href="http://solarisblog.ru/category/commands/feed" rel="self" type="application/rss+xml" />
	<link>http://solarisblog.ru</link>
	<description>Oracle Solaris: #1 Enterprise OS</description>
	<lastBuildDate>Fri, 18 Feb 2011 10:00:14 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Сброс настроек терминала</title>
		<link>http://solarisblog.ru/commands/sbros-nastroek-terminala</link>
		<comments>http://solarisblog.ru/commands/sbros-nastroek-terminala#comments</comments>
		<pubDate>Fri, 18 Feb 2011 10:00:14 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Полезные команды]]></category>
		<category><![CDATA[reset]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=838</guid>
		<description><![CDATA[В статье LazyLinux прочитал о простой и полезной возможности, о которой раньше не знал. В Solaris это тоже работает. Наверняка вы сталкивались с тем, что экран заполняется мусором, если попытаться просмотреть бинарный файл, например, командой: $ cat /bin/cat Если сильно не повезет, то могут сбиться настройки терминала и будут проблемы с последующим вводом. В таких [...]


Нет похожих записей.]]></description>
			<content:encoded><![CDATA[<p>В статье <a title="Lazy Linux" href="http://www.ibm.com/developerworks/linux/library/l-10sysadtips/?cmp=dw&amp;cpb=dwlin&amp;ct=dwnew&amp;cr=dwnen&amp;ccy=zz&amp;csr=010711">LazyLinux</a> прочитал о простой и полезной возможности, о которой раньше не знал. В Solaris это тоже работает.</p>
<p>Наверняка вы сталкивались с тем, что экран заполняется мусором, если попытаться просмотреть бинарный файл, например, командой:</p>
<pre>$ cat /bin/cat</pre>
<p>Если сильно не повезет, то могут сбиться настройки терминала и будут проблемы с последующим вводом.<br />
В таких случаях я закрываю терминал и запускаю новый. Но можно решить проще, всего одной командой:</p>
<pre>$ reset</pre>
<p>Только не напишите по ошибке reboot!</p>


<p>Нет похожих записей.</p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/sbros-nastroek-terminala/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как настроить автоматический переход на зимнее/летнее время в Solaris</title>
		<link>http://solarisblog.ru/commands/kak-nastroit-avtomaticheskij-perexod-na-zimneeletnee-vremya-v-solaris</link>
		<comments>http://solarisblog.ru/commands/kak-nastroit-avtomaticheskij-perexod-na-zimneeletnee-vremya-v-solaris#comments</comments>
		<pubDate>Tue, 09 Nov 2010 06:36:12 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Полезные команды]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=786</guid>
		<description><![CDATA[В этом году пост уже опоздал, но, возможно, в дальнейшем кому-нибудь пригодится. Solaris может автоматически переключать время на зимнее и летнее, если вы настроили  временную зону (timezone), для чего нужно выполнить следующие шаги: 1. Задаем временную зону в файле /etc/TIMEZONE в переменной TZ: TZ=Asia/Yekaterinburg Для Екатеринбурга, где я живу, временная зона Asia/Yekaterinburg (GMT+5), для Москвы [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/oracle/solaris10_resource_control_for_oracle' rel='bookmark' title='Permanent Link: Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle'>Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle</a></li>
<li><a href='http://solarisblog.ru/commands/zlogin-exit' rel='bookmark' title='Permanent Link: Выход из Zlogin'>Выход из Zlogin</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>В этом году пост уже опоздал, но, возможно, в дальнейшем кому-нибудь пригодится.</p>
<p>Solaris может автоматически переключать время на зимнее и летнее, если вы настроили  временную зону (timezone), для чего нужно выполнить следующие шаги:</p>
<p>1. Задаем временную зону в файле /etc/TIMEZONE в переменной TZ:</p>
<pre>TZ=Asia/Yekaterinburg</pre>
<p>Для Екатеринбурга, где я живу, временная зона Asia/Yekaterinburg (GMT+5), для Москвы &#8211; Europe/Moscow (GMT+3), а полный список зон можно посмотреть в каталоге /usr/share/lib/zoneinfo.</p>
<p><span id="more-786"></span></p>
<p>Обратите внимание, что имя файла TIMEZONE, где все буквы заглавные. На самом деле файл /etc/TIMEZONE &#8211; символическая ссылка на /etc/default/init. Файл /etc/timezone (маленькими буквами) также может присутствовать в системе, но он содержит данные для построения карт NIS, и не оказывает влияния на конфигурацию локальной системы.</p>
<p>2. Если Вы работаете на платформе x86, то необходимо выполнить команду rtc:</p>
<pre># rtc -z Asia/Yekaterinburg
# rtc -c</pre>
<p>Не забудьте заменить Asia/Yekaterinburg на вашу временную зону.</p>
<p>3. Перезагружаем компьютер для вступления изменений в силу.</p>
<p>После перезагрузки проверяем, используется ли временная зона с помощью команды date:</p>
<pre>bash-3.00# date
Tue Nov  9 10:42:23 YEKT 2010</pre>
<p>Символы &laquo;YEKT&raquo; перед годом 2010 означают, что используется временная зона Екатеринбурга (YEKaterinburg Time), зимнее время. Летнее время выглядит следующим образом:</p>
<pre>bash-3.00# date
Sun Aug 15 12:00:03 YEKST 2010</pre>
<p>YEKST сокращение от YEKaterinburg Summer Time.</p>
<p>Посмотреть время во внутреннем формате Solaris (UTC, Universal Time Coordinated, всемирное координированное время), можно с помощью команды date -u:</p>
<pre>bash-3.00# date -u
Tue Nov  9 06:31:06 GMT 2010</pre>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/oracle/solaris10_resource_control_for_oracle' rel='bookmark' title='Permanent Link: Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle'>Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle</a></li>
<li><a href='http://solarisblog.ru/commands/zlogin-exit' rel='bookmark' title='Permanent Link: Выход из Zlogin'>Выход из Zlogin</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/kak-nastroit-avtomaticheskij-perexod-na-zimneeletnee-vremya-v-solaris/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как определить сервис по номеру PID</title>
		<link>http://solarisblog.ru/commands/kak-opredelit-servis-po-nomeru-pid</link>
		<comments>http://solarisblog.ru/commands/kak-opredelit-servis-po-nomeru-pid#comments</comments>
		<pubDate>Tue, 19 Oct 2010 03:29:19 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Полезные команды]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=734</guid>
		<description><![CDATA[Перевод статьи Associating a PID with a Service. Недавно у нас возник вопрос, как узнать, какой сервис SMF запустил процесс с некоторым PID? Я подумал, что лучше поделиться найденным решением. Возьмем для примера выглядящий обычным процесс java: bleonard@opensolaris:/system$ ps -fp 949 UID PID PPID C STIME TTY TIME CMD root 949 947 0 Oct 11 [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/security/solaris_secure_by_default_part2' rel='bookmark' title='Permanent Link: Безопасность по умолчанию в Solaris, часть 2'>Безопасность по умолчанию в Solaris, часть 2</a></li>
<li><a href='http://solarisblog.ru/security/solaris_secure_by_default_part3' rel='bookmark' title='Permanent Link: Безопасность по умолчанию в Solaris, часть 3'>Безопасность по умолчанию в Solaris, часть 3</a></li>
<li><a href='http://solarisblog.ru/commands/ponimaem-rbac' rel='bookmark' title='Permanent Link: Понимаем RBAC'>Понимаем RBAC</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Перевод статьи <a title="Associating a PID with a Service" href="http://blogs.sun.com/observatory/entry/associating_a_pid_with_a">Associating a PID with a Service</a>.</p>
<p>Недавно у нас возник вопрос, как узнать, какой сервис SMF запустил процесс с некоторым PID? Я подумал, что лучше поделиться найденным решением.</p>
<p>Возьмем для примера выглядящий обычным процесс java:</p>
<pre>bleonard@opensolaris:/system$ ps -fp 949
     UID   PID  PPID   C    STIME TTY         TIME CMD
    root   949   947   0   Oct 11 ?           3:46 /usr/jdk/jdk1.6.0_13/bin/java -Xms4M -Xmx128M -Dcom.sun.management.jmxremote -D</pre>
<p><span id="more-734"></span></p>
<p>Я хочу проследить, какой сервис SMF запустил этот процесс, и начинаю с определения contract ID процесса:</p>
<pre>bleonard@opensolaris:/system$ ps -o ctid -p 949
 CTID
   59</pre>
<p>Затем я могу использовать команду ctstat, чтобы связать contract ID и SMF:</p>
<pre>bleonard@opensolaris:/system$ ctstat -vi 59
CTID    ZONEID  TYPE    STATE   HOLDER  EVENTS  QTIME   NTIME
59      0       process owned   7       0       -       -
	cookie:                0x20
	informative event set: none
	critical event set:    core signal hwerr empty
	fatal event set:       none
	parameter set:         inherit regent
	member processes:      947 949
	inherited contracts:   none
	<strong>service fmri:          svc:/application/management/common-agent-container-1:default</strong>
	service fmri ctid:     59
	creator:               svc.startd
	aux:                   start</pre>
<p>И, чтобы замкнуть круг:</p>
<pre>bleonard@opensolaris:/system$ svcs -lp  common-agent-container-1
fmri         svc:/application/management/common-agent-container-1:default
name         Cacao, a common Java container for JDMK/JMX based management solution
enabled      true
state        online
next_state   none
state_time   Mon Oct 11 12:54:59 2010
logfile      /var/svc/log/application-management-common-agent-container-1:default.log
restarter    svc:/system/svc/restarter:default
contract_id  59
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/network/initial (online)
process      947 /usr/lib/cacao/lib/tools/launch -w /var/run/cacao/instances/default/run -L 1638
<strong>process      949 /usr/jdk/jdk1.6.0_13/bin/java -Xms4M -Xmx128M -Dcom.sun.management.jmxremote -D</strong></pre>
<p>Хорошее небольшое руководство по контрактам можно найти на <a href="http://learningsolaris.com/lab-the-contract-subsystem/" target="_blank">Contract Subsystem Lab</a>.</p>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/security/solaris_secure_by_default_part2' rel='bookmark' title='Permanent Link: Безопасность по умолчанию в Solaris, часть 2'>Безопасность по умолчанию в Solaris, часть 2</a></li>
<li><a href='http://solarisblog.ru/security/solaris_secure_by_default_part3' rel='bookmark' title='Permanent Link: Безопасность по умолчанию в Solaris, часть 3'>Безопасность по умолчанию в Solaris, часть 3</a></li>
<li><a href='http://solarisblog.ru/commands/ponimaem-rbac' rel='bookmark' title='Permanent Link: Понимаем RBAC'>Понимаем RBAC</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/kak-opredelit-servis-po-nomeru-pid/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 команд vi, позволяющих произвести впечатление на друзей</title>
		<link>http://solarisblog.ru/commands/10-komand-vi-pozvolyayushhie-proizvesti-vpechatlenie-na-druzej</link>
		<comments>http://solarisblog.ru/commands/10-komand-vi-pozvolyayushhie-proizvesti-vpechatlenie-na-druzej#comments</comments>
		<pubDate>Wed, 13 Oct 2010 06:05:53 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Полезные команды]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=623</guid>
		<description><![CDATA[Пост про 10 самых нужных команд vi оказался очень популярным и легко выбился на первое место самых читаемых постов, опережая по количеству прочтений ближайших соседей минимум в два раза. Поэтому сегодня тоже будет пост про vi, но в этот раз про малоизвестные, но часто очень полезные команды. Перевод статьи &#171;vi tips and tricks: Ten cool [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/10-samyx-nuzhnyx-komand-vi' rel='bookmark' title='Permanent Link: 10 самых нужных команд vi'>10 самых нужных команд vi</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Пост про <a title="10 самых нужных команд vi" href="http://solarisblog.ru/commands/10-samyx-nuzhnyx-komand-vi">10 самых нужных команд vi</a> оказался очень популярным и легко выбился на первое место самых читаемых постов, опережая по количеству прочтений ближайших соседей минимум в два раза. Поэтому сегодня тоже будет пост про vi, но в этот раз про малоизвестные, но часто очень полезные команды. Перевод статьи <a title="vi tips and tricks" href="http://www.ibm.com/developerworks/aix/library/au-vitips.html">&laquo;vi tips and tricks: Ten cool commands sure to impress your friends&raquo;</a>, автор Martin Wicks. Буквальный перевод названия: &laquo;Советы и хитрости vi: 10 крутых команд которые обязательно впечатлят ваших друзей&raquo;.</p>
<p>Осваивая возможности редактора vi, большинство людей (как новичков, так и опытных пользователей) стараются выделить базовый набор команд, позволяющий им решать задачи, выполняемые чаще всего: навигация или сохранение файла; вставка, изменение, удаление или поиск данных; выход без сохранения изменений.</p>
<p>Однако редактор vi очень мощный инструмент, обладающий богатыми возможностям и функциональностью. Даже после нескольких лет использования вы можете открывать новые функции, о существовании которых и не подозревали. Команды, описанные в данной статье, среди тех малоизвестных, которые позволят вам работать умнее, ускоряя известные и используемые вами методы работы, или позволяющие вам сделать с помощью vi то, о возможности чего вы не подозревали.</p>
<p><span id="more-623"></span>Прежде чем начать, давайте восстановим в памяти два режима работы vi: команд и вставки. Режим команд позволяет пользователю запускать команды для изменения текста, выполнять навигацию в файле и управлять сессией vi. В режиме вставки все, что вы напечатаете, вставляется в файл в текущей сессии vi. Когда вы запускаете vi, вы начинаете работать в режиме команд. Перейдя в режим вставки, вы можете вернутся обратно в режим команд, нажав клавишу Escape. Нажатие клавиши Escape в режиме команд оставит вас в режиме команд. Все команды, описанные в этой статье, должны запускаться в режиме команд.</p>
<h2>Включение и выключение нумерации строк</h2>
<p>Редактор vi имеет набор опций, которые определяют, как будет выглядеть сессия редактирования. Для изменения любых настроек сессии vi используется команда :set. Чтобы увидеть список всех доступных опций, используйте команду :set all.</p>
<p>Одна из опций, которую можно установить &#8211; number, она включает или выключает нумерацию строк (см. Листинг 1).</p>
<p><strong>Листинг 1. До включения нумерации строк</strong></p>
<pre>#
# Internet host table
#
::1     localhost
127.0.0.1       localhost       loghost
192.168.0.6     centos5
192.168.0.10    appserv
192.168.0.11    webserv
192.168.0.12    test
192.168.0.5     solaris10       # Added by DHCP
~
~
~
:set number</pre>
<p>Эта команда говорит vi, что надо печатать номер перед каждой строкой файла, который вы редактируете. После перевода vi в командный режим, вы можете написать :set number и нажать Enter, чтобы включить нумерацию строк (см. Листинг 2).</p>
<p><strong>Листинг 2. Нумерация строк включена</strong></p>
<pre>     1  #
     2  # Internet host table
     3  #
     4  ::1     localhost
     5  127.0.0.1       localhost       loghost
     6  192.168.0.6     centos5
     7  192.168.0.10    appserv
     8  192.168.0.11    webserv
     9  192.168.0.12    test
    10  192.168.0.5     solaris10       # Added by DHCP
~
~
~
:set number</pre>
<p>Отключить нумерацию строк можно с помощью команды :set nonumber. Вы также можете использовать сокращенные версии этой команды и :set number, а именно :set nu и :set nonu.</p>
<p>Видеть номера строк практически полезно, когда вам нужно быстро сосчитать количество срок, которые необходимо обработать функцией vi. Это особенно удобно, когда строк много и они могут занимать несколько экранов, или вы знаете диапазон срок, которые нужно обработать, но хотите определить номера начальной и конечной строки, чтобы указать их в команде vi.</p>
<p>Если вы хотите, чтобы номера строк показывались каждый раз при запуске vi, включите строку set number в файл .exrc в вашем домашнем каталоге.</p>
<h2>Авто-отступы</h2>
<p>При написании кода на некотором языке программирования одной из важнейших составляющих стиля является использование отступов, которые делают код более читабельным. Вы можете настроить vi так, чтобы он автоматически вставлял отступы для выравнивания в соответствии со стилем языка. Для включения и отключения авто-отступов используется опция autoindent (см. Листинг 3).</p>
<p><strong>Листинг 3. Включение авто-отступов</strong></p>
<pre>#!/bin/ksh
#
#
for file in /etc/*
do
        if [[ -f ${file}  ]] ; then
                 echo "${file} is a file"

~
~
~
~
~
:set autoindent</pre>
<p>С этого момента, если вы используете в начале строки отступы табуляцией или пробелами, в следующие строки автоматически будет вставлен такой же отступ. В командном режиме vi напишите :set autoindent и нажмите клавишу Enter для включения авто-отступов.</p>
<p>Уровень отступов задается с помощью опции shiftwidth. Например, чтобы установить отступ в 4 пробела, используйте :set shiftwidth=4 (см. Листинг 4).</p>
<p><strong>Листинг 4. Устанавливаем уровень отступов</strong></p>
<pre>#!/bin/ksh
#
#
for file in /etc/*
do
    if [[ -f ${file}  ]] ; then
        echo "${file} is a file"
    elif [[ -d ${file} ]] ; then
        echo "${file} is a directory"
    fi
done
~
~
:set shiftwidth=4</pre>
<p>В режиме команд вы можете использовать команду &gt;&gt;, чтобы добавить уровень отступа в текущей строке, или &lt;&lt;, чтобы удалить уровень. Чтобы добавить или удалить уровень отступа для нескольких строк, напишите их количество перед командой. Например, если в Листинге 4 курсор находится в строке 6, добавить уровень отступа для 5 строк можно командой 5&gt;&gt;. Результат показан на Листинге 5.</p>
<p><strong>Листинг 5. Отступ для блока строк</strong></p>
<pre>#!/bin/ksh
#
#
for file in /etc/*
do
        if [[ -f ${file}  ]] ; then
            echo "${file} is a file"
        elif [[ -d ${file} ]] ; then
            echo "${file} is a directory"
        fi
done
~
~</pre>
<p>Выключить авто-отступ можно с помощью команды :set noautoindent. Также доступны сокращенные версии команд &#8211; :set ai и :set noai. Также можно включить авто-отступы и задать уровень отступа одной командой &#8211; :set ai sw=4.<br />
Если вы хотите, чтобы авто-отступы включались автоматически с заданным уровнем при каждом запуске vi, включите команду set ai sw=4 в файл .exrc в вашем домашнем каталоге.</p>
<h2>Игнорирование регистра символов при поиске</h2>
<p>Как вы знаете, поиск в Unix регистрозависимый. Однако, если вы хотите, чтобы vi игнорировал регистр при поиске, то можете использовать команду :set ignorecase. Включить регистрозависимость можно командой :set noignorecase. Также вы можете использовать сокращенные версии команд (:set ic and :set noic).</p>
<p>Если вы хотите, чтобы vi всегда игнорировал регистр символов при поиске, включите команду set ignorecase в файл .exrc в вашем домашнем каталоге.</p>
<h2>Составной поиск</h2>
<p>Вы можете искать строки в vi с помощью команды /, указывая шаблон поиска в виде строки или регулярного выражения. Например, чтобы найти слово echo в файле, перейдите в режим команд, введите /echo и нажмите Enter. Это команда найдет первое слово в строке 3 в файле, показанном на Листинге 6.</p>
<p><strong>Листинг 6. Составной поиск</strong></p>
<pre>     1  #!/bin/ksh
     2  #
     3  echo "Starting"
     4  file=${1}
     5
     6  echo ${file}
     7
     8  if [[ ${file} = 1 ]] ; then
     9          ((file=${file}+1))
    10          echo "Adding one gives " \
    11                  ${file}
    12  fi
    13  echo "Ending"
    14  exit
~
~</pre>
<p>Вы можете использовать простое регулярное выражение, чтобы указать, что ищете строку, содержащую одно слово, следующее за другим. Например, чтобы найти первую строку, содержащую строку echo, за которой после нуля или нескольких символов идет строка file, вы используете команду /echo.*file. В файле на Листинге 6, команда найдет первое слово в строке 6.</p>
<p>Однако, эта команда сработает только, если оба шаблона находятся в одной строке. Если вы хотите искать не зависимо от того, в одной строке или нет находятся шаблоны, то можете использовать составной поиск, указывая обе команды поиска через точку с запятой (;). Например, чтобы найти первую строку echo, следующую за строкой {file}+1, воспользуйтесь командой /{file}+1/;/echo/. В файле на Листинге 6 эта команда найдет первое слово в строке 10.</p>
<p>Составной поиск особенно полезен, когда вы ищите в коде команду, которая следует за другой, например, когда вызывается функция после задания значения некоторой переменной.</p>
<h2>Повторное использование шаблонов</h2>
<p>Когда вы ищите шаблон в файле для замены, вы можете дать команду vi запоминать совпадающие шаблоны в буфере, который затем может быть повторно использован при замене с указанием номера буфера. Вы делаете это, заключая шаблон в \ и \, что говорит vi записать шаблон в нумерованный буфер (от 1 до 9). Затем вы можете ссылаться на этот буфер при замене, используя его номер от \1 до \9.</p>
<p>Например, чтобы найти в файле на Листинге 7 строки, начинающиеся со слова Martin, и для каждого вхождения добавить префикс Mr и суффикс Wicks, войдите в режим команд, введите команду :%s/^\(Martin\)/Mr \1 Wicks/g и нажмите Enter.</p>
<p><strong>Листинг 7. Повторное использование шаблонов (до замены)</strong></p>
<pre>Martin is an IT consultant. Martin likes
snowboarding and mountain biking. Martin has
worked on UNIX systems for over 15 years. Martin also
worked for many years before that on mainframes.
Martin lives in London.
~
~
~
~
:%s/^\(Martin\)/Mr \1 Wicks/g</pre>
<p>Команда состоит из следующих частей:</p>
<ul>
<li>:%s &#8211; говорит vi, что надо проводить замену</li>
<li>/ &#8211; разделитель шаблонов</li>
<li>^\(Martin\) &#8211; поиск строк, начинающихся с Martin и запись в буфер с номером 1.</li>
<li>/ &#8211; разделитель шаблонов</li>
<li>Mr \1 Wicks &#8211; замена найденной строки на строку, начинающуюся с Mr, затем идет содержимое буфера с номером 1, а затем Wicks.</li>
<li>/ &#8211; разделитель шаблонов</li>
<li>g &#8211; глобальная замена (замена каждой строки, соответствующей шаблону)</li>
</ul>
<p>Использовать ссылки на буфер можно как в шаблоне строки поиска, так и в шаблоне замены.</p>
<p>Результаты замены показаны на Листинге 8.</p>
<p><strong>Листинг 8. Повторное использование шаблонов (после замены)</strong></p>
<pre>Mr Martin Wicks is an IT consultant. Martin likes
snowboarding and mountain biking. Martin has
worked on UNIX systems for over 15 years. Martin also
worked for many years before that on mainframes.
Mr Martin Wicks lives in London.
~
~
~
~
:%s/^\(Martin\)/Mr \1 Wicks/g</pre>
<h2>Закладки</h2>
<p>Вы можете указать vi поставить закладку в файле, нажав в нужном месте клавишу M и за ней другую буквенную клавишу, которая будет служить ссылкой на закладку. Таким образом, у вас есть 26 закладок с названиями от a до z. Для перехода к закладке нажмите обратный апостроф (`) и символ ссылки на закладку.</p>
<p>Например, после нажатия клавиш MA (<em>Прим. переводчика. </em>Нажимать нужно в нижнем регистре, т.е. ma), vi запишет текущую позицию курсора в закладку с именем a. Если вы захотите вернутся к этой позиции позже во время редактирования, просто нажмите `A (<em>Прим. переводчика. </em>И снова нужен нижний регистр, т.е. `a). Чтобы перейти от текущей закладки к предыдущей, используйте двойной обратный апостроф (&laquo;).</p>
<h2>Найти, заменить, найти следующий, повторить</h2>
<p>Одна из самых полезных особенностей Поиска/Замены в редакторе vi &#8211; возможность найти строку, соответствующую шаблону, изменить ее, а затем повторить поиск для следующих совпадающих строк, с повторением изменений при необходимости, очень похоже на функцию Найти далее/Заменить в Microsoft Word.</p>
<p>Наверняка вы уже знаете, что можете искать шаблон строки в vi перейдя в режим команд, набрав <em>/шаблон</em> (где <em>шаблон</em> &#8211; строка или регулярное выражение) и затем нажав Enter. Эта команда найдет первую строку, соответствующую шаблону. С найденным текстом вы можете выполнить любые операции. Например, нажать клавиши C и W, а за ними текст, который заменит слово в найденной строке.</p>
<p>Чтобы быстро найти следующую строку, соответствующую шаблону, нажмите клавишу N (<em>Прим. переводчика</em>. N &#8211; поиск назад, n &#8211; поиск вперед). Когда найдено следующее совпадение, вы при необходимости можете использовать клавишу точка (.), чтобы повторить выполненные ранее изменения во вновь найденной строке, например функцию замены слова (cw) из предыдущего примера. Затем вы можете повторять поиск (n) и опциональную замену (.) используя эти клавиши, также как вы используете команды Найти Далее и Заменить в Microsoft Word.</p>
<h2>Изменение регистра</h2>
<p>Вы можете изменить регистр алфавитного символа в позиции курсора в vi, нажав клавишу тильда (~). Эта команда изменяет нижний регистра на верхний и наоборот. Если удерживать клавишу тильда нажатой, то курсор будет перемещаться по строке, меняя регистр всех встречающихся алфавитных символов. Вы можете набрать число перед тильдой, чтобы указать, у скольких символов нужно изменить регистр.</p>
<h2>Использование фильтров</h2>
<p>Наверняка вы знаете, что можете запускать команды интерпретатора в vi, набрав<em> :!cmd</em> (где <em>cmd </em>- команда UNIX, которую вы хотите выполнить) и нажав Enter. Например, команда <em>:!pwd</em> покажет текущий каталог, в котором выполняется редактирование.</p>
<p>Однако, вы также можете отправить секцию вашего файла на стандартный ввод выбранной вами команде UNIX, а изменения будут внесены в эту же секцию в буфере vi. Например, если вы хотите отсортировать весь файл, приведенный на Листинге 9, оставаясь в vi, вам надо набрать <em>:1,$!sort</em>, чтобы дать vi инструкции направить строки с 1 до конца файла ($) на ввод команды sort, и заменить указанную секцию выводом этой команды, после чего нажать Enter.</p>
<p><strong>Листинг 9. Сортировка файла внутри vi (до сортировки)</strong></p>
<pre>5
4
3
2
7
6
5
4
8
9
6
3
1
3
4
~
~
:1,$!sort</pre>
<p>На Листинге 10 показаны результаты сортировки.</p>
<p><strong>Листинг 10. Сортировка файла внутри vi (после сортировки)</strong></p>
<pre>1
2
3
3
3
4
4
4
5
5
6
6
7
8
9
~
~
:1,$!sort</pre>
<p>В качестве альтернативы вы можете указать количество строк, которые нужно обработать, начинаю с текущей позиции курсора. Чтобы сделать это, введите число строк, которые нужно обработать, двойной знак восклицания (!!) и команду UNIX.</p>
<p>Например, если курсор находится в строке 4 файла на Листинге 9, вы можете набрать:</p>
<pre>4!!awk '{print "New text",$0}'</pre>
<p>и нажать Enter чтобы добавить в начало строк с 4 по 7 включительно текст &laquo;New text&raquo;, как показано на Листинге 11.</p>
<p><strong>Листинг 11. Добавление текста в начало блока строк</strong></p>
<pre>5
4
3
New text 2
New text 7
New text 6
New text 5
4
8
9
6
3
1
3
4
~
~
!awk '{print "New text",$0}'</pre>
<p>Вы можете соединять команды UNIX вместе, чтобы создавать мощные фильтры в сессии vi, используя разделитель каналов (|) . Например, чтобы заменить содержимое файла в буфере редактирования текущей сессии vi на значения первых полей строк, отделенных пробелами, отсортированными в порядке возрастания и переведенными в верхний регистр, вы можете использовать команду:</p>
<pre>:1,$!awk '{print $1}' | sort | tr [:lower:] [:upper:]</pre>
<h2>Запись секции файла</h2>
<p>Вы можете записать секцию файла, который сейчас редактируете, набрав<em> :начало,конецw файл</em>, где <em>начало </em>- номер первой строки, которую вы хотите записать, <em>конец </em>- номер последней строки, которую нужно записать, <em>w</em> говорит о том, что вы хотите записать в другой файл, а <em>файл </em>- имя файла, в который вы хотите записать секцию. Вы можете использовать символ <em>$</em>, чтобы указать, что хотите записать файл до конца, и двойной символ &gt;&gt; после w, чтобы указать, что хотите добавить в файл, а не переписать его. Например, на Листинге 12 показано, как строки с номерами с 6 по 9 включительно добавляются в файл с именем <em>/tmp/newfile</em>.</p>
<p><strong>Листинг 12. Запись секции в файл, добавление вместо перезаписи.</strong></p>
<pre>     1  #
     2  # Internet host table
     3  #
     4  ::1     localhost
     5  127.0.0.1       localhost       loghost
     6  192.168.0.6     centos5
     7  192.168.0.10    appserv
     8  192.168.0.11    webserv
     9  192.168.0.12    test
    10  192.168.0.5     solaris10       # Added by DHCP
~
~
~
:6,9w &gt;&gt; /tmp/newfile</pre>
<h2>Выводы</h2>
<p>Редактор vi очень мощный инструмент, и я надеюсь что приемы приемы, описанные в этой статье, позволят вам повысить эффективность редактирования файлов. Помните, у vi всегда останутся возможности, которые не попались к вам на глаза. Счастливого редактирования!</p>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/10-samyx-nuzhnyx-komand-vi' rel='bookmark' title='Permanent Link: 10 самых нужных команд vi'>10 самых нужных команд vi</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/10-komand-vi-pozvolyayushhie-proizvesti-vpechatlenie-na-druzej/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>pfexec &#8211; удобная утилита Solaris</title>
		<link>http://solarisblog.ru/commands/pfexec-udobnaya-utilita-solaris</link>
		<comments>http://solarisblog.ru/commands/pfexec-udobnaya-utilita-solaris#comments</comments>
		<pubDate>Tue, 14 Sep 2010 05:55:43 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Полезные команды]]></category>
		<category><![CDATA[pfexec]]></category>
		<category><![CDATA[rbac]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=578</guid>
		<description><![CDATA[Перевод статьи &#171;Introducing pfexec, a Convenient Utility in the OpenSolaris OS&#187; Технология Role Base Access Control (RBAC) включает профили &#8211; набор административных возможностей, которые могут быть назначены пользователю или роли. Профили могут включать полномочия (authorizations), команды с атрибутами безопасности, и другие профили &#8211; удобный путь для группировки атрибутов безопасности. Используя RBAC, вы, как системный администратор, сначала [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/ponimaem-rbac' rel='bookmark' title='Permanent Link: Понимаем RBAC'>Понимаем RBAC</a></li>
<li><a href='http://solarisblog.ru/security/konvertiruem-polzovatelya-root-v-rol' rel='bookmark' title='Permanent Link: Конвертируем пользователя root в роль'>Конвертируем пользователя root в роль</a></li>
<li><a href='http://solarisblog.ru/commands/solaris_secure_by_default_part1' rel='bookmark' title='Permanent Link: Безопасность по умолчанию в Solaris, часть 1'>Безопасность по умолчанию в Solaris, часть 1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Перевод статьи <a title="pfexec" href="http://developers.sun.com/developer/technicalArticles/opensolaris/pfexec.html">&laquo;Introducing pfexec, a Convenient Utility in the OpenSolaris OS&raquo;</a></p>
<p>Технология Role Base Access Control (<a title="Понимаем RBAC" href="http://solarisblog.ru/commands/ponimaem-rbac">RBAC</a>) включает профили &#8211; набор административных возможностей, которые могут быть назначены пользователю или роли. Профили могут включать полномочия (authorizations), команды с атрибутами безопасности, и другие профили &#8211; удобный путь для группировки атрибутов безопасности.</p>
<p>Используя RBAC, вы, как системный администратор, сначала создаете профиль, а затем назначаете его ролям. Эти две задачи выходят за рамки данной статьи. Наконец, вы даете пользователю возможность активировать роль.</p>
<p>Также вы можете назначит профиль напрямую пользователю, этот метод описан ниже в статье. После этого пользователь может выполнять задачи, определенные в назначенном ему профиле, даже запускать команды от root, без необходимости входить в систему как суперпользователь. Все, что нужно &#8211; это написать перед командой pfexec. Работа pfexec очень похожа на работу sudo в Linux.</p>
<p><span id="more-578"></span></p>
<p>В статье описывается, как с помощью профилей делегировать задачи системного администрирования и давать привилегии root обычным пользователям. Предполагается, что вы знакомы с концепцией RBAC в Solaris и основными используемыми командами (<em>Прим. переводчика. </em>Если не знакомы, то можете прочитать в статье <a title="Понимаем RBAC" href="http://solarisblog.ru/commands/ponimaem-rbac">&laquo;Понимаем RBAC&raquo;</a>).</p>
<p>pfexec появилась в Solaris 8, входит в Solaris 9, Solaris 10 и OpenSolaris.</p>
<h2>Делегирование задач системного администрирования</h2>
<p>Предположим, что пользователь testuser должен часто делать каталоги разделяемыми и не разделяемыми по NFS (share и unshare). Привилегии обычного пользователя не позволяет ему это сделать:</p>
<pre>$ /usr/sbin/share /export/home/testuser
Could not share: /export/home/testuser: no permission</pre>
<p>Однако, вы можете назначить пользователю testuser профиль с необходимыми правами. Сделайте следующее:</p>
<p>1. Как root создайте пользователя и назначьте ему пароль:</p>
<pre>bash-3.00# useradd -m -d /export/home/testuser testuser
64 blocks
bash-3.00# passwd testuser
New Password:
Re-enter new Password:
passwd: password successfully changed for testuser
bash-3.00#</pre>
<p>2. Выйдите из системы и входите снова с именем testuser</p>
<p>3. Ищите подходящий профиль в файле exec_attr. Профиль должен содержать команды share. Ниже показано, как это можно сделать и найденный профиль: File System Management.</p>
<pre>bash-3.00$ grep "share" /etc/security/exec_attr
File System Management:suser:cmd:::/usr/sbin/dfshares:euid=0
File System Management:suser:cmd:::/usr/sbin/share:uid=0;gid=root
File System Management:suser:cmd:::/usr/sbin/shareall:uid=0;gid=root
File System Management:suser:cmd:::/usr/sbin/unshare:uid=0;gid=root
File System Management:suser:cmd:::/usr/sbin/unshareall:uid=0;gid=root
[...]</pre>
<p>4. Становитесь root&#8217;ом и назначайте профиль File System Management пользователю testuser.</p>
<pre>bash-3.00$ su - root
Password:
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
# usermod -P'File System Management' testuser</pre>
<p>Вуаля! testuser теперь может &laquo;расшаривать&raquo; каталоги, используя pfexec перед командой share, без необходимости становиться суперпользователем.</p>
<pre>bash-3.00$ pfexec /usr/sbin/share /export/home/testuser/
bash-3.00$ /usr/sbin/share
-               /export/home/testuser   rw   ""</pre>
<h2>Назначаем права root обычным пользователям</h2>
<p><strong>Внимание! </strong>Будьте осторожны, когда раздаете права root обычным пользователям с помощью pfexec. Убедитесь, что человеку можно доверять, что он (или она) грамотный администратор и способен держать в секрете свой пароль так, как будто это пароль root.</p>
<p>Профиль Primary Administrator в Solaris дает все права, традиционно связанные с root. Пользователь, которому назначен этот профиль, может запускать команды от имени root, без необходимости входить в систему как root. Смотрите соответствующую профилю запись в файле exec_attr:</p>
<pre>bash-3.00#  cat /etc/security/exec_attr | grep "Primary"
Primary Administrator:suser:cmd:::*:uid=0;gid=0</pre>
<p>Это означает, что все команды, запущенные с использованием данного профиля с помощью pfexec, будут выполнятся с uid=0 и gid=0, то есть с привилегиями root.</p>
<p>Назначение пользователю прав root с помощью профиля Primary Administrator имеет следующие преимущества:</p>
<ol>
<li>Не нужно передавать пароль root пользователям.</li>
<li>Чтобы забрать права root у пользователя, просто заберите у него профиль Primary Administrator, пароль root менять не надо.</li>
<li>Пользователи с профилем Primary Administrator могут запустить командный интерпретатор от имени root, после чего им не обязательно писать pfexec перед каждой командой.</li>
</ol>
<p>Рассмотрим пример:</p>
<p>1. От имени root назначьте пользователю testuser профиль Primary Administrator.</p>
<pre>bash-3.00# usermod -P'Primary Administrator' testuser</pre>
<p>2. Для проверки войдите пользователем testuser и выполните команду id -a дважды: без pfexec и с pfexec:</p>
<pre>bash-3.00$ id -a
uid=102(testuser) gid=1(other) groups=1(other)
bash-3.00$ pfexec id -a
uid=0(root) gid=0(root) groups=1(other)</pre>
<p>Без pfexec значения uid и guid равны testuser и other соответственно, то есть пользователь не root. С pfexec uid и gid равны 0, как у root.</p>
<p>Чтобы не печатать pfexec постоянно, пользователь может запустить bash от имени root:</p>
<pre>bash-3.00$ pfexec bash
bash-3.00# id
uid=0(root) gid=0(root)</pre>
<p>3. Чтобы удалить профиль, от имени root запустите команду:</p>
<pre>bash-3.00# usermod -P '' testuser</pre>
<p>После этого, uid и gid возвращаются к нормальным значениям пользователя, как видно из вывода команды id -a, запущенной с помощью pfexec. Без назначенного профиля, pfexec не предоставляет никаких дополнительных привилегий пользователю.</p>
<pre>bash-3.00$ pfexec id -a
uid=102(testuser) gid=1(other) groups=1(other)</pre>
<h2>Выводы</h2>
<p>Итак, pfexec &#8211; это Solaris версия используемой в Linux sudo. Назначение и отзыв привилегий root с помощью профиля Primary Administrator просто и быстро. Проводить мониторинг использования pfexec можно с помощью <a title="Аудит в Solaris" href="http://solarisblog.ru/security/audit">аудита Solaris</a>.</p>
<p><em>Прим. переводчика. </em>Хотя англоязычная статья посвящена OpenSolaris, все, что написано применимо к обычной Solaris, начиная с версии 8. Чтобы не сужать область применения, в переводе я везде писал Solaris вместо OpenSolaris. В процессе перевода я проверил выполнение всех команд на Solaris 10, они работают именно так, как описано в статье.</p>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/ponimaem-rbac' rel='bookmark' title='Permanent Link: Понимаем RBAC'>Понимаем RBAC</a></li>
<li><a href='http://solarisblog.ru/security/konvertiruem-polzovatelya-root-v-rol' rel='bookmark' title='Permanent Link: Конвертируем пользователя root в роль'>Конвертируем пользователя root в роль</a></li>
<li><a href='http://solarisblog.ru/commands/solaris_secure_by_default_part1' rel='bookmark' title='Permanent Link: Безопасность по умолчанию в Solaris, часть 1'>Безопасность по умолчанию в Solaris, часть 1</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/pfexec-udobnaya-utilita-solaris/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 самых нужных команд vi</title>
		<link>http://solarisblog.ru/commands/10-samyx-nuzhnyx-komand-vi</link>
		<comments>http://solarisblog.ru/commands/10-samyx-nuzhnyx-komand-vi#comments</comments>
		<pubDate>Tue, 31 Aug 2010 05:36:41 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Полезные команды]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=548</guid>
		<description><![CDATA[Редактор vi считается очень сложным. Якобы, он требует много времени на изучение и знание большого количества команд, которые нужно вводить с клавиатуры. На мой взгляд, vi &#8211; это очень простой редактор . Если не писать в нем стихи или программы, а использовать для целей администрирования, то нужно знать всего 10 команд. По крайне мере, наизусть [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/10-komand-vi-pozvolyayushhie-proizvesti-vpechatlenie-na-druzej' rel='bookmark' title='Permanent Link: 10 команд vi, позволяющих произвести впечатление на друзей'>10 команд vi, позволяющих произвести впечатление на друзей</a></li>
<li><a href='http://solarisblog.ru/commands/zlogin-exit' rel='bookmark' title='Permanent Link: Выход из Zlogin'>Выход из Zlogin</a></li>
<li><a href='http://solarisblog.ru/commands/solaris_monitoring_with_sar' rel='bookmark' title='Permanent Link: Мониторинг производительности Solaris с помощью sar'>Мониторинг производительности Solaris с помощью sar</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Редактор vi считается очень сложным. Якобы, он требует много времени на изучение и знание большого количества команд, которые нужно вводить с клавиатуры.</p>
<p>На мой взгляд, vi &#8211; это очень простой редактор <img src='http://solarisblog.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Если не писать в нем стихи или программы, а использовать для целей администрирования, то нужно знать всего 10 команд. По крайне мере, наизусть я помню именно эти 10 команд, и их мне вполне хватает для решения 99% задач администрирования Unix.</p>
<p><span id="more-548"></span>Итак, 10 самых нужных команд vi:</p>
<p>Режим команд:</p>
<ol>
<li> <strong>i</strong> &#8211; Переход в режим редактирования перед текущим символом (вставка, insert).</li>
<li><strong>a </strong>- Переход в режим редактирования после текущего символа (добавление, append).</li>
<li><strong>r</strong> &#8211; Замена одного символа в текущей позиции курсора (replace).</li>
<li><strong>x </strong>- Удаление символа в текущей позиции курсора.</li>
<li><strong>dd </strong>- Удаление всей строки, в которой находиться курсор.</li>
<li><strong>u</strong> &#8211; Отмена предыдущего изменения (undo).</li>
<li><strong>/шаблон </strong>- Поиск шаблона в файле. Если шаблон встречается несколько раз, то можно использовать команды навигации: <strong>n</strong> &#8211; поиск вперед, <strong>N</strong> &#8211; поиск назад.</li>
<li><strong>yy</strong> &#8211; Копирование текущей строки в буфер обмена (yank). Вставка &#8211; <strong>p.</strong></li>
</ol>
<p>Режим последней строки:</p>
<ol>
<li value=9><strong>:wq! </strong>- Запись файла и выход из vi.</li>
<li value=10><strong>:q! &#8211; </strong>Выход из vi без записи текущих изменений.</li>
</ol>
<p>Вот и все 10 самых необходимых команд vi. Ничего сложного, на мой взгляд.</p>
<p>Кроме этих команд, полезно помнить следующие модификаторы:</p>
<ul>
<li><strong>Регистр команды</strong>. Большинство команд работают как в верхнем, так и в нижнем регистре, но выполняют разные действия. Например, <strong>i</strong> выполняет переход в режим редактирования в текущей позиции курсора, а <strong>I</strong> &#8211; в начале строки. Поэкспериментировав с 10-ю описанными выше командами, Вы быстро найдете различия.</li>
<li><strong>Числа. </strong>Действия многих команд можно модифицировать, набрав перед ними число. Например, команда <strong>10dd </strong>выполняет удаление 10 строк. Если команда состоит из 2 букв, то число можно вставлять между ними, например <strong>y5y</strong> &#8211; копирование в буфер обмена 5 строк.</li>
</ul>
<p>Запомнив эти 10 команд, можно легко работать с vi. Основное достоинство vi в том, что он есть в каждом Unix и работает одинаково в Linux, Solaris, BSD, AIX и HP-UX. Это означает, что если Вы освоите vi, то получите знакомый инструмент администратора в любом Unix.</p>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/10-komand-vi-pozvolyayushhie-proizvesti-vpechatlenie-na-druzej' rel='bookmark' title='Permanent Link: 10 команд vi, позволяющих произвести впечатление на друзей'>10 команд vi, позволяющих произвести впечатление на друзей</a></li>
<li><a href='http://solarisblog.ru/commands/zlogin-exit' rel='bookmark' title='Permanent Link: Выход из Zlogin'>Выход из Zlogin</a></li>
<li><a href='http://solarisblog.ru/commands/solaris_monitoring_with_sar' rel='bookmark' title='Permanent Link: Мониторинг производительности Solaris с помощью sar'>Мониторинг производительности Solaris с помощью sar</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/10-samyx-nuzhnyx-komand-vi/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Как поменять название ОС в Solaris</title>
		<link>http://solarisblog.ru/commands/kak-pomenyat-nazvanie-os-v-solaris</link>
		<comments>http://solarisblog.ru/commands/kak-pomenyat-nazvanie-os-v-solaris#comments</comments>
		<pubDate>Fri, 06 Aug 2010 11:23:29 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Полезные команды]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=482</guid>
		<description><![CDATA[Сегодня первый перевод из Solaris Infrequently Asked and Obscure Questions &#8211; как поменять строки в работающем ядре (How do I modify strings in the running kernel?). Одним из примеров, для чего это нужно &#8211; изменение названия операционной системы. Задача интересная, но редко встречающаяся. Иногда это делают по соображениям безопасности, но до конца понять такие соображения я не [...]


Нет похожих записей.]]></description>
			<content:encoded><![CDATA[<p>Сегодня первый перевод из <a title="Solaris Infrequently Asked and Obscure Questions" href="http://www.columbia.edu/~rtt2101/iaoq/">Solaris Infrequently Asked and Obscure Questions</a> &#8211; как поменять строки в работающем ядре (How do I modify strings in the running kernel?). Одним из примеров, для чего это нужно &#8211; изменение названия операционной системы. Задача интересная, но редко встречающаяся. Иногда это делают по соображениям безопасности, но до конца понять такие соображения я не смог. Далее идет перевод:</p>
<p>Как поменять строки в работающем ядре.</p>
<p>Например, изменить имя и релиз работающей операционной системы (uname -sr).</p>
<p>Для этого необходимо изменить значения структуры ядра <em>utsname.</em></p>
<p><em><span id="more-482"></span></em></p>
<p>1. Смотрим файл  /usr/include/sys/utsname.h</p>
<pre>        #define _SYS_NMLN       257     /* 4.0 size of utsname elements */
        struct utsname {
	    char	sysname[_SYS_NMLN];
	    char	nodename[_SYS_NMLN];
	    char	release[_SYS_NMLN];
	    char	version[_SYS_NMLN];
	    char	machine[_SYS_NMLN];
        };</pre>
<p>2. Получаем информацию о текущих значениях структуры:</p>
<pre><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">    1. echo "utsname::print" | mdb -k</span></pre>
<p>3. Определяем смещение:</p>
<pre>    1. echo "0t257=x" | mdb
    2. <em>101</em></pre>
<p>4. Конвертируем строку:</p>
<pre>    1. echo "FunOS" | od -t x1
    2. <em>0000000 46 75 6e 4f 53 0a</em></pre>
<p><em></em><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">5. Вносим изменения:</span></p>
<pre>    1. <strong>Внимание: Изменяем работающее ядро!
 </strong>   2. echo "utsname/v 46 75 6e 4f 53" | mdb -kw</pre>
<p>6. Конвертируем строку:</p>
<pre>    1. echo "5.12" | od -t x1
    2. <em>0000000 35 2e 31 32 0a</em></pre>
<p>7. Вносим изменения:</p>
<pre>    1. <strong>Внимание: Изменяем работающее ядро!</strong>
    2. echo "utsname+0x202/v 35 2e 31 32" | mdb -kw</pre>
<p>8. Проверяем результат:</p>
<pre>    1. Прямо из ядра:
        echo "utsname::print" | mdb -k
    2. Из утилиты в примере:
        /usr/bin/uname -sr
        <em>FunOS 5.12</em></pre>
<p>Я проверил, это работает не только в Solaris, но и в OpenSolaris. Вот скриншот OpenSolaris с изменениями в ядре, и актуальной информацией по системе из /etc/release:</p>
<p><a href="http://solarisblog.ru/wp-content/uploads/2010/08/funos.jpg"><img class="aligncenter size-full wp-image-491" title="Изменение названия ОС в Solaris" src="http://solarisblog.ru/wp-content/uploads/2010/08/funos.jpg" alt="Изменение названия ОС в Solaris" width="678" height="475" /></a></p>
<pre><strong>
</strong></pre>


<p>Нет похожих записей.</p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/kak-pomenyat-nazvanie-os-v-solaris/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Понимаем RBAC</title>
		<link>http://solarisblog.ru/commands/ponimaem-rbac</link>
		<comments>http://solarisblog.ru/commands/ponimaem-rbac#comments</comments>
		<pubDate>Fri, 23 Jul 2010 04:32:29 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Полезные команды]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=415</guid>
		<description><![CDATA[Перевод статьи &#171;Understanding RBAC&#171;. Role Based Access Control (RBAC) &#8211; функциональность OpenSolaris (Прим. переводчика. И просто Solaris, начиная с версии Solaris 8), предоставляющая большие возможности. Однако, ее трудно понять из-за обилия раздельных компонентов, связанных между собой. В этой записи я попытаюсь написать, что понял я. Сначала несколько определений: Термин Описание Связанные файлы Команды user (пользователь) [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/pfexec-udobnaya-utilita-solaris' rel='bookmark' title='Permanent Link: pfexec &#8211; удобная утилита Solaris'>pfexec &#8211; удобная утилита Solaris</a></li>
<li><a href='http://solarisblog.ru/security/konvertiruem-polzovatelya-root-v-rol' rel='bookmark' title='Permanent Link: Конвертируем пользователя root в роль'>Конвертируем пользователя root в роль</a></li>
<li><a href='http://solarisblog.ru/commands/kak-opredelit-servis-po-nomeru-pid' rel='bookmark' title='Permanent Link: Как определить сервис по номеру PID'>Как определить сервис по номеру PID</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Перевод статьи &laquo;<a title="Understading RBAC" href="http://blogs.sun.com/observatory/entry/understading_rbac">Understanding RBAC</a>&laquo;.</p>
<p>Role Based Access Control (RBAC) &#8211; функциональность OpenSolaris (<em>Прим. переводчика. </em>И просто Solaris, начиная с версии Solaris 8), предоставляющая большие возможности. Однако, ее трудно понять из-за обилия раздельных компонентов, связанных между собой. В этой записи я попытаюсь написать, что понял я.</p>
<p><span id="more-415"></span>Сначала несколько определений:</p>
<table border="1" cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td>Термин</td>
<td>Описание</td>
<td>Связанные файлы</td>
<td>Команды</td>
</tr>
<tr>
<td valign="top"><em><strong>user<br />
</strong></em><em><strong>(пользователь)</strong></em></td>
<td valign="top">Пользователь системы</td>
<td valign="top">/etc/passwd<br />
/etc/user_attr</td>
<td valign="top">useradd<br />
usermod</td>
</tr>
<tr>
<td valign="top"><em><strong>role<br />
</strong></em><em><strong>(роль)</strong></em></td>
<td valign="top">Именованное множество полномочий, которые могут быть активированы</td>
<td valign="top">/etc/passwd<br />
/etc/user_attr</td>
<td valign="top">roleadd<br />
rolemod<br />
roles</td>
</tr>
<tr>
<td valign="top"><em><strong>profile<br />
</strong></em><em><strong>(профиль)</strong></em></td>
<td valign="top">Именованное множество полномочий, которые могут быть выполнены</td>
<td valign="top">/etc/security/exec_attr<br />
/etc/security/prof_attr<br />
<a href="http://docs.sun.com/app/docs/doc/816-5174/exec-attr-4?l=en&amp;a=view"></a></td>
<td valign="top">profiles<br />
pfexec</td>
</tr>
<tr>
<td><em><strong>authorization<br />
</strong></em><em><strong>(полномочия)</strong></em></td>
<td>Привилегии на выполнение некоторых операций в системе</td>
<td>/etc/security/auth_attr</td>
<td>auths</td>
</tr>
</tbody>
</table>
<h3>Пользователь</h3>
<p>Пользователь в системе. Основная информация об учетных записях пользователей определяется в /etc/passwd:</p>
<pre>bleonard@opensolaris:~$ <strong>grep "bleonard" /etc/passwd</strong>
bleonard:x:101:10:Brian Leonard:/export/home/bleonard:/bin/bash</pre>
<p>Информация включает имя пользователя, пароль, id, id группы, полное имя, домашний каталог и командный интерпретатор по-умолчанию.</p>
<p>Дополнительная информация о пользователях для RBAC определяется в /etc/user_attr:</p>
<pre>bleonard@opensolaris:~$ <strong>grep "bleonard" /etc/user_attr</strong>
bleonard::::profiles=Primary Administrator;roles=root</pre>
<p>Для пользователя bleonard определен один <strong>профиль</strong>, Primary administrator, и одна роль, <strong>root</strong>.</p>
<h3>Роль</h3>
<p>Роль &#8211; это именованное множество полномочий, которые могут быть активированы. Роли, как и пользователи, определяются в файле /etc/passwd:</p>
<pre>bleonard@opensolaris:~$ <strong>grep "root" /etc/passwd</strong>
root:x:0:0:Super-User:/root:/usr/bin/bash</pre>
<p>Однако, по-умолчанию в OpenSolaris root определен как <strong>роль, </strong>а не как <strong>пользователь.</strong></p>
<pre>bleonard@opensolaris:~$ <strong>grep "root:" /etc/user_attr </strong>
root::::<strong>type=role</strong>;auths=solaris.*,solaris.grant;profiles=All;lock_after_retries=no;min_label=admin_low;clearance=admin_high</pre>
<p><strong>Пользователь </strong>может активировать <strong>роль. </strong>Это похоже на надевание костюма. Однако, Вы на самом деле становитесь тем, что одеваете. Роль активируется командой su. Необходимо ввести пароль root, который Вы назначили при установке:</p>
<pre>bleonard@opensolaris:~$ <strong>su root</strong>
Password:
bleonard@opensolaris:~#</pre>
<h3>Профиль</h3>
<p><strong>Профиль </strong>- это именованное множество полномочий, которые могут быть выполнены. По этой причине они еще называются выполняемые профили. Запуск производится с помощью команды pfexec, сокращение от &laquo;profile execution&raquo;. Многие сравнивают pfexec с sudo, и они часто могут использоваться заменяя друг друга. Но когда Вы на самом деле поймете pfexec, Вы осознаете, насколько более мощной она может быть.</p>
<p>Команды, которые позволяет запускать данный профиль, определяются в файле /etc/security/exec_attr.</p>
<pre>bleonard@opensolaris:~$ <strong>grep "Primary Administrator" /etc/security/exec_attr</strong>
Primary Administrator:suser:cmd:::<strong>*</strong>:uid=0;gid=0</pre>
<p>Звездочка  &raquo;*&raquo; означает, что Primary Administrator может запускать любые команды, и они будут работать от имени пользователя root (uid=0).</p>
<p><strong>Полномочия</strong>, связанные с профилем, задаются в файле /etc/security/prof_attr:</p>
<pre>bleonard@opensolaris:~$ <strong>grep "Primary Administrator" /etc/security/prof_attr</strong>
Primary Administrator:::Can perform all administrative tasks:<strong>auths</strong>=solaris.*,solaris.grant;help=RtPriAdmin.html</pre>
<h3>Полномочия</h3>
<p><strong>Полномочия </strong>дают Вам привилегию на выполнение некоторой операции. Привилегия со звездочкой solaris.*  дает Primary Administrator право выполнять любую операцию. Полный список привилегий можно посмотреть в /etc/security/auth_attr.</p>
<h2>RBAC в действии</h2>
<p>Чтобы понять, как все это работает, давайте поэкспериментируем с ролями и профилями.</p>
<h3>Действия с ролями</h3>
<p>Давайте уберем роль root у пользователя bleonard:</p>
<pre>bleonard@opensolaris:~$ <strong>pfexec usermod -R "" bleonard</strong>
UX: usermod: bleonard is currently logged in, some changes may not take effect until next login.
bleonard@opensolaris:~$ <strong>grep "bleonard" /etc/user_attr</strong>
bleonard::::type=normal;profiles=Primary Administrator</pre>
<p>Теперь не получится активировать роль root:</p>
<pre>bleonard@opensolaris:~$ <strong>su root</strong>
Password:
Roles can only be assumed by authorized users
su: Sorry</pre>
<p>Но так как bleonard все еще Primary Administrator, он может получить привилегии root используя pfexec:</p>
<pre>bleonard@opensolaris:~$ <strong>pfexec su root</strong>
bleonard@opensolaris:~#</pre>
<p>Возвращаем роль root обратно:</p>
<pre>bleonard@opensolaris:~# <strong>usermod -R root bleonard</strong>
UX: usermod: bleonard is currently logged in, some changes may not take effect until next login.</pre>
<h3>Действия с профилями</h3>
<p>Давайте удалим профиль Primary Administrator у пользователя bleonard (если Вы пытаетесь сделать это на своей системе, убедитесь, что Вы вернули роль root, иначе можете совсем потерять доступ root).</p>
<pre>bleonard@opensolaris:~$ <strong>pfexec usermod -P "" bleonard</strong> 
UX: usermod: bleonard is currently logged in, some changes may not take effect until next login.</pre>
<p>Теперь давайте попробуем вернуть профиль:</p>
<pre>bleonard@opensolaris:~$ <strong>pfexec usermod -P "Primary Administrator" bleonard</strong>
UX: usermod: ERROR: Permission denied.</pre>
<p>К счастью, Вы все еще можете активировать роль root:</p>
<pre>bleonard@opensolaris:~$ <strong>su</strong>
Password:
bleonard@opensolaris:~# <strong>usermod -P "Primary Administrator" bleonard</strong>
UX: usermod: bleonard is currently logged in, some changes may not take effect until next login.</pre>
<h2>Простой пользовательский интерфейс</h2>
<p>Наконец, есть простой пользовательский интерфейс для управления пользователями и ролями. Вы найдете его в System &gt; Administration &gt; Users and Groups:</p>
<p style="text-align: center;"><a href="http://solarisblog.ru/wp-content/uploads/2010/07/settinguserroles.png"><img class="size-full wp-image-434 aligncenter" title="settinguserroles" src="http://solarisblog.ru/wp-content/uploads/2010/07/settinguserroles.png" alt="Установка ролей пользователя в Solaris" width="454" height="431" /></a></p>
<h2>Дополнительные материалы:</h2>
<ul>
<li><a href="http://www.c0t0d0s0.org/archives/4073-Less-known-Solaris-features-RBAC-and-Privileges-Part-1-Introduction.html">RBAC and Privileges &#8211; Parts 1 &#8211; 4</a>.</li>
<li><a href="http://developers.sun.com/developer/technicalArticles/opensolaris/pfexec.html">Introducing pfexec, a Convenient Utility in the OpenSolaris OS</a></li>
</ul>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/commands/pfexec-udobnaya-utilita-solaris' rel='bookmark' title='Permanent Link: pfexec &#8211; удобная утилита Solaris'>pfexec &#8211; удобная утилита Solaris</a></li>
<li><a href='http://solarisblog.ru/security/konvertiruem-polzovatelya-root-v-rol' rel='bookmark' title='Permanent Link: Конвертируем пользователя root в роль'>Конвертируем пользователя root в роль</a></li>
<li><a href='http://solarisblog.ru/commands/kak-opredelit-servis-po-nomeru-pid' rel='bookmark' title='Permanent Link: Как определить сервис по номеру PID'>Как определить сервис по номеру PID</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/ponimaem-rbac/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Выход из Zlogin</title>
		<link>http://solarisblog.ru/commands/zlogin-exit</link>
		<comments>http://solarisblog.ru/commands/zlogin-exit#comments</comments>
		<pubDate>Tue, 03 Nov 2009 09:41:05 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Виртуализация]]></category>
		<category><![CDATA[Полезные команды]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[zone]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=237</guid>
		<description><![CDATA[Для подключения к консоли неглобальной зоны в Solaris используется команда zlogin. Например, так: bash-3.00# zlogin -C alfresco [Connected to zone 'alfresco' console] К неглобальной зоне подключились, необходимую работу выполнили, как после этого выйти обратно в глобальную зону? Документация говорит, что для этой цели нужно использовать последовательность символов ~. (тильда точка). Но у меня эта последовательность [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/alfresco/alfresco_installation_on_solaris10' rel='bookmark' title='Permanent Link: Установка Alfresco на Solaris 10'>Установка Alfresco на Solaris 10</a></li>
<li><a href='http://solarisblog.ru/alfresco/alfresco_open_source_ecm' rel='bookmark' title='Permanent Link: Alfresco &#8211; enterprise content management с открытым исходным кодом'>Alfresco &#8211; enterprise content management с открытым исходным кодом</a></li>
<li><a href='http://solarisblog.ru/apache/mysql-sun-webstack-problems' rel='bookmark' title='Permanent Link: Проблемы при установке MySQL из Sun Web Stack'>Проблемы при установке MySQL из Sun Web Stack</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Для подключения к консоли неглобальной зоны в Solaris используется команда zlogin. Например, так:</p>
<pre>bash-3.00# zlogin -C alfresco
[Connected to zone 'alfresco' console]</pre>
<p>К неглобальной зоне подключились, необходимую работу выполнили, как после этого выйти обратно в глобальную зону? Документация говорит, что для этой цели нужно использовать последовательность символов ~. (тильда точка). Но у меня эта последовательность почти никогда не срабатывала, особенно если я не залогирован в локальной зоне.</p>
<p>Оказывается, как написано, например, <a title="Connect or login to zone console" href="http://www.tech-recipes.com/rx/891/solaris-10-connect-or-login-to-zone-console/">здесь</a>, тильда должна вводится только после символа перевода строки, иначе последовательность ~. не сработает.</p>
<p>Итак, чтобы выйти из zlogin, сначала нажимаем Enter, а уже потом ~.</p>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/alfresco/alfresco_installation_on_solaris10' rel='bookmark' title='Permanent Link: Установка Alfresco на Solaris 10'>Установка Alfresco на Solaris 10</a></li>
<li><a href='http://solarisblog.ru/alfresco/alfresco_open_source_ecm' rel='bookmark' title='Permanent Link: Alfresco &#8211; enterprise content management с открытым исходным кодом'>Alfresco &#8211; enterprise content management с открытым исходным кодом</a></li>
<li><a href='http://solarisblog.ru/apache/mysql-sun-webstack-problems' rel='bookmark' title='Permanent Link: Проблемы при установке MySQL из Sun Web Stack'>Проблемы при установке MySQL из Sun Web Stack</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/commands/zlogin-exit/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris Internals</title>
		<link>http://solarisblog.ru/mysql/solaris-internals</link>
		<comments>http://solarisblog.ru/mysql/solaris-internals#comments</comments>
		<pubDate>Thu, 13 Aug 2009 19:56:01 +0000</pubDate>
		<dc:creator>solarisblog.ru</dc:creator>
				<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Полезные команды]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Виртуализация]]></category>
		<category><![CDATA[Мониторинг]]></category>

		<guid isPermaLink="false">http://solarisblog.ru/?p=206</guid>
		<description><![CDATA[Данная статья посвящена обзору популярного ресурса по Solaris &#8211; Solaris Internals. Ресурс создавался для информационной поддержки одноименной книги Джима Мауро и Ричарда Мак Дугалла.  Со временем книга росла и превратилась в две: &#171;Solaris Internals&#187; и &#171;Solaris Performance and Tools&#187;. Все книги доступны, к сожалению, только на английском. Количество (и качество) информация на сайте тоже со [...]


Похожие записи:<ol><li><a href='http://solarisblog.ru/resources/c0t0d0s0' rel='bookmark' title='Permanent Link: c0t0d0s0.org &#8211; The sun in a lighthungry universe'>c0t0d0s0.org &#8211; The sun in a lighthungry universe</a></li>
<li><a href='http://solarisblog.ru/oracle/solaris10_resource_control_for_oracle' rel='bookmark' title='Permanent Link: Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle'>Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle</a></li>
<li><a href='http://solarisblog.ru/alfresco/alfresco-russification' rel='bookmark' title='Permanent Link: Русификация Alfresco'>Русификация Alfresco</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Данная статья посвящена обзору популярного ресурса по Solaris &#8211;  <a title="Solaris Internals" href="http://www.solarisinternals.com/">Solaris Internals</a>.</p>
<p>Ресурс создавался для информационной поддержки одноименной книги Джима Мауро и Ричарда Мак Дугалла.  Со временем книга росла и превратилась в две: &laquo;Solaris Internals&raquo; и &laquo;Solaris Performance and Tools&raquo;. Все книги доступны, к сожалению, только на английском. Количество (и качество) информация на сайте тоже со временем увеличивалось и сейчас сайт заслуживает внимания отдельно от книг.</p>
<p>На сайте много информации по внутреннему устройству Solaris, включая такие новые возможности, как <a title="ZFS" href="http://www.solarisinternals.com//wiki/index.php?title=Category:ZFS">ZFS</a> и <a title="зоны" href="http://www.solarisinternals.com/wiki/index.php/Zones">зоны</a>. Подробно рассматривается настройка производительности как самой Solaris, так и <a title="Application Specific Tuning" href="http://www.solarisinternals.com/wiki/index.php/Application_Specific_Tuning">приложений на ней</a>, включая базы данных Oracle и MySQL. Есть интересная статья про <a title="CMT Utilization" href="http://www.solarisinternals.com/wiki/index.php/CMT_Utilization">производительность процессоров CMT</a>, но только про UltraSPARC T1.</p>
<p>Информация на сайте регулярно обновляется, появляются новые статьи. Недостаток &#8211; все на английском. Если знаете английский &#8211; настоятельно рекомендую данный ресурс.</p>


<p>Похожие записи:<ol><li><a href='http://solarisblog.ru/resources/c0t0d0s0' rel='bookmark' title='Permanent Link: c0t0d0s0.org &#8211; The sun in a lighthungry universe'>c0t0d0s0.org &#8211; The sun in a lighthungry universe</a></li>
<li><a href='http://solarisblog.ru/oracle/solaris10_resource_control_for_oracle' rel='bookmark' title='Permanent Link: Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle'>Как правильно настроить <del>параметры ядра</del> управление ресурсами в Solaris 10 для установки Oracle</a></li>
<li><a href='http://solarisblog.ru/alfresco/alfresco-russification' rel='bookmark' title='Permanent Link: Русификация Alfresco'>Русификация Alfresco</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://solarisblog.ru/mysql/solaris-internals/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

