350d0c7d

вывод имени первичной группы пользователя


Ключи команды id:
  • -u — вывод только кодов UID;
  • -g — вывод только кодов GID;
  • -gn — вывод имени первичной группы пользователя вместо GID.
См. также
useradd, в отличие от своего родственника adduser, прекрасно работает в сценариях (например, в сценарии mass_useradd из раздела 8.17).
Поля комментария также известны под названием данных GECOS. Данные GECOS состоят из пяти полей, разделенных запятыми. Если вы собираетесь использовать поле комментария, включите все четыре запятые, даже если значения соответствующих атрибутов не указываются. В долгосрочной перспективе это окупится, особенно при выполнении серийных операций и при поиске. Традиционно в данные GECOS входит полное имя, номер комнаты, рабочий телефон, домашний телефон и прочее (произвольная информация). Полное имя используется многими внешними программами — в частности, почтовыми серверами, однако другие поля можно использовать так, как вы сочтете нужным. Например, они позволяют организовать произвольное деление пользователей на группы и их сортировку (см. раздел 8.19).
GECOS — пыльный пережиток прошлого, оставшийся с очень древних времен; сокращение означает «General Electric Compliant Operating System». За полной информацией обращайтесь к Файлу жаргона.
См. также useradd(8); Файл жаргона (http://www.catb.org/~esr/jargon/).



Полное имя является единственным важным атрибутом информации о пользователе. Оно необходимо любой внешней программе, работающей с /etc/passwd, например, почтовому серверу. И хотите — верьте, хотите — нет, но в большинстве версий Linux по-прежнему продолжает существовать finger:
$ finger anitab Login: anitab Name: Directory: /home/anitab Shell: /bin/bash On since Sun May 30 08:46 (PDT) on ttyl 10 hours 55 minutes idle (messages off) No mail. No plan. Phone 555-5555 Office Fooo
Другие поля могут содержать произвольную информацию. В частности, они могут использоваться для хранения заметок или группировки.


Пользователь может сменить свой номер комнаты и рабочий телефон командой chfn, но изменить полное имя и поле «прочее» ему не удастся.
См. также adduser(8), adduser.conf(5), finger(1).



Постарайтесь обойтись без изменения имени пользователя и кода UID, поскольку такое изменение будет иметь общесистемные последствия. Если изменение все же неизбежно, не забудьте отыскать все файлы, принадлежащие пользователю, смените имя в домашнем каталоге пользователя и обновите данные о принадлежности к группам.
8.7. Удаление пользователя Если заменить ключ -exec на -ok, команда find будет запрашивать подтверждение каждого изменения:
# find / -uid 1050 -ok chown -v 1200 {} \;
Трудно переоценить удобство такого применения find. Ключ -exec или -ok приказывает find выполнить следующую команду. Последовательность {} заменяется именем текущего файла. Точка с запятой указывает, где завершается команда chown, а символ \ «экранирует» точку с запятой, чтобы она не была обработана командным процессором.
См. также usermod(8), chfn(1); Файл жаргона (http://www.catb.org/~esr/jargon/).



Правила удаления учетной записи — дело тонкое. Если вы работаете в своей домашней системе, делайте, что хотите. В коммерческих системах заранее изучите политику своей компании. Всегда полезно сначала заблокировать учетную запись работника и создать резервную копию принадлежащих ему файлов.
См. также userdel(8), find(1); раздел 8.9.



Традиционный метод поиска процессов, принадлежащих пользователю, основан на использовании команды ps:
$ ps U 1007
или
$ ps U foober 3936 ? S 0:00 xchat 3987 ? S 0:00 /usr/lib/galeon-bin 4209 ? S 0:00 kdeinit: kio_file file /tmp/ksocket-carla/klauncherkF21rc.slave-
После этого процессы приходится убивать по одному:
# kill 3936 # kill 3987 # kill 4209 См. также
slay(1), kill(1).



Еще один способ заблокировать учетную запись — вставить восклицательный знак в начало поля пароля в файле /etc/shadow:
foobar:!$l$wiD1Qr34$mitGZA76MSYCY04AHIYl:12466:0:99999:7:: :
Также можно заменить х в поле пароля в файле /etc/passwd звездочкой (*):
foober:*:1025:1025:Foober Smith..,:/home/foober:/bin/bash
Наконец, можно лишить пользователя доступа к командному процессору:
# usermod -s /bin/false foober
И все же лучше всего придерживаться варианта с passwd -l и -u.
См. также passwd(1), passwd(5).



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



Рекомендуется использовать логически последовательную схему нумерации групп. С точки зрения Linux это несущественно, но зато такая схема избавит вас от многих хлопот. В Red Hat номера системных групп лежат в диапазоне 0-499, а в Debian — в диапазоне 100-999. За дополнительной информацией о схемах нумерации обращайтесь к разделу «Комментарии» в разделе 8.2.
См. также groupadd(8).
8.13. Создание системного пользователя


Многие демоны и процессы, которым необходима системная учетная запись, по умолчанию используют nobody, но все больше приложений требует создания собственной уникальной учетной записи. Старайтесь использовать уникальную учетную запись там, где это возможно, потому что это повышает уровень безопасности системы. Учетная запись nobody чаще всего становится объектом хакерских атак, поэтому собирать разнообразные процессы и демонов в единую цель для атаки не стоит.
См. также adduser(8), adduser.conf(5), useradd(8).



Для решения задачи также можно воспользоваться командами adduser и usermod, но будьте осторожны: adduser позволяет за один вызов включить пользователя только в одну группу, а команда usermod, позволяющая перечислить несколько групп, стирает прежние данные о принадлежности пользователя к группам.
См. также adduser(8), usermod(8).



Программа pwck проверяет логическую целостность файлов /etc/passwd и /etc/shadow. Она последовательно анализирует записи и проверяет, что каждая запись содержит:
  • правильное количество полей;
  • уникальное имя пользователя;
  • действительные идентификаторы пользователя и группы;
  • действительную первичную группу;
  • действительный домашний каталог;
  • действительный командный процессор.
pwck сообщает обо всех записях, не имеющих пароля. Мне очень нравится формулировка в man-странице: «Проверки правильности количества полей и уникальности имени пользователя являются фатальными». Нечего сказать, хорошая реклама! Но не волнуйтесь — вы в полной безопасности, и вызов pwck ничему не повредит.
Когда pwck обнаруживает ошибку, вы можете либо удалить учетную запись, либо проигнорировать ее. Во втором случае pwck прекращает работу и не проверяет новые строки (за одним исключением: обнаружив повторяющееся имя, программа продолжит проверку даже в том случае, если вы не удалите учетную запись).
Программа grpck анализирует файлы /etc/group и /etc/gshadow и проверяет, что каждая запись содержит:
  • правильное количество полей;
  • уникальное имя группы;
  • действительный список членов и администраторов.
См. также pwck(8), grpck(8).



В сценариях используются стандартные средства Shadow Suite, поэтому они легко настраиваются посредством регулировки параметров утилит, задействованных в их работе.
Файл выходных данных выглядит так:
dawns shabaefi 1002 nikitah gohbinga 1003 rubst ahtoohaa 1004
В файл /etc/passwd добавляются записи вида
dawns:x:1002:1002:Dawn Mari Schroder,,123-4567,trainers:/home/dawns:/bin/bash nikitah:x:1003:1003:Nikita Horse,,123-4567,equine:/home/nikitah:/bin/bash rubst:x:1004:1004:Rubs The Cat.101,,234-5678,,test:/home/rubst:/bin/bash
Листинг 8.1. Программа mass_useradd
#!/bin/sh ## ## Использование: ## sh mass_useradd < inputfile >> new-passwords.txt ## PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:$PATH # Чтение строки входных данных. # Формат входного файла:
продолжение ==>



Ключ - n тестирует команду без ее фактического выполнения:
# ./masspasswd -v -g -n usergroup generating password for dawns teivuphu generating password for nikitah kohfahsh 2 password(s) reset - see /root/mass_passwd/mass_passwd.log
Пароли остаются прежними; выполнение команды в этом режиме всего лишь проверяет параметры перед внесением изменений.
См. также Раздел 8.17.



Команда su позволяет переключиться на любую учетную запись, пароль которой вам известен.
Дефис после su существенно влияет на результат выполнения команды. Без дефиса команда сохраняет старую системную конфигурацию и переменные окружения — командный процессор, редактор по умолчанию, пути и umask. См. также


Команда sudo также может применяться для запуска пользователями сценариев (например, сценариев архивации). Будьте очень осторожны со сценариями, а также с командами, предоставляющими доступ к командному процессору или запускающими



Включите следующую строку в сценарий mass_useradd, после строки chmod, чтобы квота пользователя vhenson автоматически применялась для всех новых пользователей:
/usr/sbin/edquota -p vhenson $username
Команду add user можно настроить на автоматическое назначение квот для новых пользователей. Отредактируйте файл adduser.conf:
QUOTAUSER="vhenson"
А теперь плохие новости: Quota сейчас находится в переходной фазе. Код Quota в ядрах версий 2.2 и 2.4 устарел и не подходит для современных версий Quota. Если в ваш дистрибутив включена «заплатка» ядра — считайте, вам повезло. Впрочем, вы сможете быть полностью уверены в этом лишь после того, как установите и настроите Quota и назначите квоту пользователю. Если дистрибутив не содержит готовые к запуску версии Quota, вероятно, вам придется устанавливать целую серию «заплаток» ядра. Подробные инструкции приведены в документе «Quota mini-HOWTO».



Файловые разрешения вычисляются по табл. 9.2. Просуммируйте нужные значения для каждого типа пользователей, а затем перечислите их в порядке следования в таблице: владелец, группа, прочие. Специальные биты рассматриваются в разделе 9.7.
Таблица 9.2. Вычисление файловых разрешений
Специальные биты Разрешение Владелец Группа Прочие
setuid 4 Чтение 4 4 4
setuid 2 Запись 2 2 2
setuid 1 Исполнение 1 1 1
См. также
info chmod.



Символическая запись chmod порой бывает довольно сложной. Следующий пример стирает все существующие разрешения и приводит их в исходное состояние:
$ chmod -v a=,u-rwx,g=rx,o=r сценарий
То же самое можно сделать командой chmod 754.
Символическая форма записи также называется мнемонической:
  • r — чтение (Read);
  • w — запись (Write);
  • х — исполнение (Execute);
  • X — файл должен уже обладать разрешениям исполнения или быть каталогом;
  • s —назначение идентификатора пользователя или группы при исполнении — опасно! Не используйте с исполняемыми файлами (по крайней мере, если вы не до конца представляете, что делаете);
  • t — бит закрепления;
  • u - владелец файла;
  • g — группа, которой принадлежит файл;
  • o — прочие пользователи;
  • + — добавление новых разрешений к действующим;
  • = — замена действующих разрешений;
  • - — сброс разрешений.
См. также
info chmod; раздел 9.7.


Рядовые пользователи могут только вносить изменения в принадлежащие им файлы и не могут передать право владения файлом другому пользователю. Тем не менее пользователи могут изменять принадлежность к группам (при условии, что они принадлежат как к исходной, так и к итоговой группе). См. также
info chown.



У статических битов есть еще одно применение. Давным-давно установка этого бита для исполняемого файла приводила к тому, что файл оставался в памяти после завершения его выполнения. В доисторическую эпоху Unix с примитивным управлением памятью и слабосильным оборудованием это ускоряло запуск программ. В наши дни об этом можно не думать. См. также
info chmod; раздел 9.2. 9.8. Назначение разрешений по умолчанию с использованием маски umask


В табл. 9. 4 показано, как составить маску umask для любой комбинации разрешений.
Таблица 9.4. Все значения umask
Umask Разрешения файлов Разрешения каталогов
7 Нет Нет
6 Нет Исполнение
5 Запись Запись
4 Запись Запись и исполнение
3 Чтение Чтение
2 Чтение Чтение и исполнение
1 Чтение и запись Чтение и запись
0 Чтение и запись Чтение—запись—исполнение



Ошибка umount « Device is busy» чаще всего возникает из-за наличия открытого окна терминала, в котором смонтированное устройство является текущим рабочим каталогом:
carla@windbag:/floppy$
Очень важно, чтобы диск был демонтирован перед отключением. Это позволяет системе завершить операции записи и обеспечить корректное отключение. В более новых версиях Linux указывать тип файловой системы не обязательно, поскольку команда mount автоматически распознает типы файловых систем. См. также
mount(8); раздел 9.10.



Каждому запоминающему устройству соответствует блочное устройство в каталоге /dev. Имена устройств определяются способом физического подключения.
Примеры:
  • /dev/hda — первичное устройство на IDE0 (весь диск);
  • /dev/hdb — вторичное устройство на IDE0 (весь диск);
  • /dev/fd0 — флоппи-дисковод на контроллере 0, устройство 0;
  • /dev/fd1 — флоппи-дисковод на контроллере 0, устройство 1;
  • /dev/sda — первый диск SCSI (весь диск);
  • /dev/sdb — второй диск SCSI (весь диск).

Имена запоминающих устройств в Linux формируются по следующей схеме:
  • /dev/fd* — флоппи-дисководы;
  • /dev/hd* — дисководы IDE;
  • /dev/sd* — дисководы SCSI;
  • /dev/sd* — запоминающие устройства USB;
  • /dev/hd* - дисководы CD/DVD-ROM с интерфейсом IDE/ATAPI;
  • /dev/sd* - дисководы CD/DVD-R/RW с интерфейсом IDE/ATAPI;
  • /dev/sd*,/dev/hd* или /dev/XXXx4 — Zip-дисководы.

Устройствам IDE и USB, использующим подсистему эмуляции SCSI, иногда присваиваются имена /dev/sr*, которые представляют собой символические ссылки на /dev/sd*.
Если в вашей системе установлены исходные тексты ядра, поищите определения имен /dev в файле devices.txt. См. также
Глава 5; официальный список имен /dev (http://www.lanana.org/docs/device-list/devices.txt или файл devices.txt в каталоге /usr/src/* вашей системы).


Команда touch обычно используется в сценариях для создания новых файлов, а также для заполнения каталогов файлами с целью тестирования. См. также
mkdir(1), touch(1).


Команда rm -rf / стирает всю корневую файловую систему. Некоторые личности предлагают новичкам выполнить ее, считая это забавной шуткой.
Хотя обычно говорят «rm удаляет файлы», в действительности команда не удаляет файлы, а только отсоединяет их от i-узлов. Файл по-настоящему удаляется лишь после удаления всех жестких ссылок, указывающих на него, и перезаписи данных на диске. Рядовые пользователи могут удалять командой rm любые файлы в любых подкаталогах, доступных для них, но с каталогами дело обстоит иначе: команда rm удаляет только каталоги, принадлежащие данному пользователю.
Команда touch на самом деле предназначена для изменения временных пометок файла. Ее применение для создания новых файлов может рассматриваться как неожиданный побочный эффект.
Для удаления каталогов также существует команда rmdir. Эта команда отказывается удалять каталоги, содержащие какие-либо данные. На первых порах это помогает, но со временем начинает раздражать; многие программы создают файлы, не отображаемые в нормальных списках (имена файлов, начинающиеся с точки, обычно игнорируются; чтобы включить их в вывод, следует выполнить команду ls -a). Соответственно, при попытке выполнения rmdir команда скажет, что в каталоге еще остались файлы. Вероятно, со временем вы перейдете на команду rm -r. См. также
touch(1),rm(1).


В графических файловых оболочках (таких, как Nautilus, Konqueror, Midnight Commander, Gentoo File Manager, gmc и Rox Filer) операции переименования и копирования обычно выполняются быстрее и проще. См. также


Команда Linux fdisk предназначена только для создания томов Linux. Для томов Windows следует использовать команду fdisk из MS-DOS. Далее приводится список часто используемых команд fdisk:
  • m — вывод справки;
  • р — отображение текущей таблицы разделов;
  • d — удаление раздела;
  • n — создание нового раздела;
  • w — запись таблицы разделов на диск;
  • l — отображение списка типов файловых систем;
  • q — завершение работы fdisk без внесения каких-либо изменений.
9.17. Создание файловой системы в новом разделе См. также
fdisk(8).


Команда mke2fs предназначена для создания файловых систем Ext2/3. Она является частью пакета e2fsprogs, загружаемого с сайта http://e2fsprogs.sourceforge.net.
Команда mkreiserfs входит в поставку ReiserFS и является частью reiserfsprogs. Ее можно загрузить по адресу http://www.namesys.com.
Команда mkfs.jfs входит в семейство jfsutils (http://www-124.ibm.com/jfs/).
Команда mkfs.xfs входит в семейство xfsprogs (http://oss.sgi.com/project/xfs). См. также
Раздел «Введение» настоящей главы; JFS (http://www-124.ibm.com/jfs/); XFS (http://oss.sgi.com/project/xfs); ReiserFS (http://www.namesys.com/); Ext2/3 (http://e2fsprogs.sourceforge.net/ext2.html).


В документации часто рекомендуется разместить исходные тексты ядра и дерево сборки в каталоге /usr/src/linux, но делать этого не следует. В файле README ядра прямо сказано: «НЕ ИСПОЛЬЗУЙТЕ область /usr/src/linux! Она содержит (обычно неполный) набор заголовков, используемых библиотечными заголовками ядра. Заголовки должны соответствовать библиотеке и не зависеть от текущей версии ядра». Также не стоит злоупотреблять правами root и использовать каталог, требующий доступа root. Ядро может строиться где угодно, даже на полностью изолированном компьютере.


Описанная процедура настраивает новое ядро «с нуля». Команда make oldconfig не подходит, потому что она не изменяет старую конфигурацию, а позволяет только добавить в нее новые возможности.
Типичное базовое ядро занимает около 1-3 Мбайт (в сжатом виде). Некоторые администраторы предпочитают усекать свое ядро до абсолютного минимума. На сервере, особенно доступном из Интернета, по соображениям безопасности стоит использовать как можно более компактное ядро. Впрочем, на настольных



На сайтах http://lwn.net и http://kernetlrap. org публикуется самая свежая информация о новостях, изменениях, усовершенствованиях и Задачах в области ядра Linux. См. также
Раздел «Введение» настоящей главы; электронная справка в программе настройки ядра; раздел 10.2.


Для запуска xconfig вам понадобится Qt, qt-devel и X. Также можно использовать программу menuconfig.
Команда make без параметров заменяет make dep, make bzimage и make modules.



Не пытайтесь использовать старый файл .config от версии 2.4 — ядра сильно различаются, и у вас будет много проблем.
Команда make без параметров заменяет make dep, make bzlmage и make modules. См. также
Документация в дереве сборки ядра; раздел «Введение» настоящей главы; раздел 10.2.


Заплатки ядра существуют в нескольких разновидностях. Заплатки rc (Release Candidates) находятся в одном шаге от включения в стабильное ядро, а кандидаты pre (PreRelease) — в двух шагах. Если вам не терпится использовать новую возможность, но вы не хотите ждать новой стабильной версии, устанавливайте заплатки rc и pre.
Официальные версии ядра на сайте Kernel.org хорошо протестированы и готовы к эксплуатации. Версии с четными номерами являются стабильными, а версии с нечетными номерами находятся в процессе разработки. Ядро Linux активно поддерживается вплоть до версии 2.0, а в архивах можно найти все версии ядра до первых версий Linux. См. также
patch(1); Kernel Newbies (http://kernelnewbies.org); Kernel.org (http://kernel.org).


Обязательно прочитайте man- страницу mkinitrd, поскольку состав параметров может зависеть от дистрибутива.
Ничто не мешает вам встроить драйвер SCSI в базовое ядро; использование initrd не является обязательным.



Программа mkboot входит в пакет debianutils.
Не забудьте защитить дискету от записи, сдвинув вверх небольшую защелку. Всегда проверяйте загрузочные диски, прежде чем откладывать их для хранения. Диск должен храниться вместе с той системой, для которой он был создан. См. также
mkboot(8).


Не забудьте защитить дискету от записи, сдвинув вверх небольшую защелку. Всегда проверяйте загрузочные диски, прежде чем откладывать их для хранения. Диск должен храниться вместе с той системой, для которой он был создан. См. также
mkbootdisk(8).



Для выполнения команды cdrecord необходимы привилегии root. Чаще всего для того, чтобы пользователи могли использовать cdrecord, в системе создается группа cdrecord.
В документации иногда встречается запись вида dev=1,0
Начальный 0 для нулевой шины SCSI часто не указывается. И все же проще ввести лишнюю цифру и не оставить ни малейшей неоднозначности. В ядре 2.6 отдельно задавать код устройства не нужно. В командной строке достаточно передать имя /dev:
$ cdrecord dev=/dev/hdc <команды> См. также
cdrecord(1).



В Debian данные конфигурации модулей хранятся в файлах /etc/modules и /etc/modutils/idecd_opts. Включите в /etc/modules строку
ide-scsi Затем включите в /etc/modutils/idecd_opts строку
options ide-cd ignore="hdb hdc"
Для ядра 2.6 никакие особые действия не нужны, достаточно указать в командной строке имя /dev:
$ cdrecord dev=/dev/hdc <команды> См. также
grub(8), lilo(8).



В представленном решении все команды выполняются пользователем root. Это сделано для простоты, потому что команды mount, mkisofs и cdrecord требуют привилегий root. Чтобы пользователи могли выполнять команду mount, используйте sudo. Для выполнения команд mkisofs и cdrecord создайте группу cdrecord. Назначьте ее владельцем mkisofs и cdrecord и включите пользователей в группу cdrecord.
Помните, что в ядре 2.6 эмуляция IDE-SCSI не нужна, поэтому в командной строке cdrecord можно просто указать имя /dev:
# cdrecord dev=/dev/hdc <команды>
В этих нескольких командах выполняется довольно большая работа. Команда mkisofs берет все файлы и упаковывает их в один большой файл .iso. Если вам когда-либо доводилось загружать дистрибутив Linux для записи на компакт-диск, он был упакован в виде файла .iso. Это часто создает проблемы для новичков, которые не понимают, почему они получили один гигантский файл вместо дерева каталогов с файлами Linux.
Рассмотрим командную строку mkisofs более подробно:
# mkisofs -J -r -v -V data_disk -о data.iso /disk_data
Ключи:
  • -J — использование схемы имен Joliet для совместимости с Windows;
  • -r — использование схемы имен Rock Ridge для совместимости с Unix/Linux. Все файлы доступны для чтения для всех пользователей;
  • -v — расширенный вывод;
  • -V data_disk — определение идентификатора тома (data_disk). Это то самое имя диска, которое отображается в Проводнике Windows и в команде file - < /dev/scd* (о том, как определить имена /dev, рассказано в разделе 9.12);
  • -o data.iso /disk_data — имя нового образа .iso и файлы, выбранные для упаковки в .iso (в данном случае все содержимое /disk_data). Обратите внимание: корневой каталог /disk-data не копируется, только его содержимое.

Монтирование .iso перед записью диска является простейшей страховкой. Если вы видите все свои файлы — можно переходить к записи. Если нет, значит, при формировании файла .iso была допущена ошибка и его придется построить заново. Проверка .iso осуществляется так:
# mkdir /test-iso # mount -t iso9660 -o ro,loop data.iso /test-iso
Откройте каталог /test-iso и проверьте свои файлы.
Параметры команды mount:
  • -t iso9660 — тип файловой системы. Компакт-диски с данными всегда относятся к типу iso9660 (кроме udf, но в этом случае вам не придется создавать образ .iso);
11.5. Формирование файловых деревьев на компакт-дисках с данными
  • -o ro,loop data.iso — параметры монтирования data.iso: доступ только для чтения, с использованием файловой системы, внедренной в файл;
  • /test-iso — каталог, созданный как точка монтирования.

После завершения проверки .iso можно записать файл на диск.
# cdrecord -v -eject dev=0,1,0 data.iso
Параметры команды:
  • -v — расширенный вывод;
  • -eject — извлечение диска после записи (не обязательно);
  • -dev=0,1,0 — адрес SCSI устройства записи компакт-дисков;
  • data.iso — имя файла .iso, который содержит файлы, записываемые на диск.

Команда cdrecord по умолчанию записывает данные на максимальной скорости, поддерживаемой устройством и диском. При возникновении ошибок попробуйте снизить скорость записи:
# cdrecord -v -eject speed=4 dev=0,1,0 data.iso
Современные записывающие устройства поддерживают высокую скорость записи (20Х и выше), но многие диски CD-R/CD-RW ограничиваются гораздо более низкими скоростями. Как правило, команда cdrecord автоматически подбирает оптимальную скорость записи. См. также
cdrecord(1), mount(8), mkisofs(8); раздел 9.12; раздел 11.2.


Как говорилось выше, ядро 2.6 не нуждается в эмуляции IDE-SCSI — просто используйте имя /dev:
# cdrecord dev=/dev/hdc <команды>
Не забудьте, что объем созданного временного файла равен объему копируемого диска. 11.7. Стирание диска CD-RW Команда dd производит побайтовое копирование файла. Ее параметры:
  • if — входной файл (источник);
  • /dev/scd0 — имя устройства (см. раздел 11.3). Монтирование диска не обязательно;
  • of - выходной файл (приемник);
  • /tmp/diskfile.iso — временная копия исходного файла на жестком диске. Присвойте ей любое имя по своему усмотрению, но сохраните расширение .iso. Параметры cdrecord остаются теми же, что и в разделе 11.4, но к ним добавляются два новых параметра:
  • fs=8m — размер циклического буфера: чем больше, тем лучше... до определенной степени. Помните, что перебои приводят к фатальным последствиям; параметр fs=8m создает буфер, объем которого достаточен для продолжения записи даже в том случае, если пересылка данных по каким-то причинам замедлится. Если 8 Мбайт недостаточно, вероятно, вам стоит подумать о модернизации своего компьютера. С другой стороны, значение больше 8 Мбайт не обязательно лучше, потому что операционная система может тратить время на перезагрузку таблиц MMU (Memory Management Unit). Значение по умолчанию равно 4 Мбайт.
  • -dummy — замечательная функция тестового прогона перед записью на диск. Дисковод выполняет все операции с выключенным лазером, что дает пользователю возможность обнаружить ошибки до того, как они будут перенесены на диск.
См. также
cdrecord(1), dd(1); раздел 11.4.



Стирание на уровне дорожек не поддерживается большинством дисководов. Стирание дорожек или сеансов в произвольной последовательности также невозможно — необходимо начать с конца и постепенно продвигаться к началу. Если при использовании какого-либо значения параметра blank будет получено сообщение об ошибке, попробуйте добавить ключ -force:
$ cdrecord blank=track -force
Но скорее всего, диск был поврежден и его лучше выбросить.
Чтобы получить список всех режимов стирания, выполните команду
$ cdrecord blank=help
Помните, что CD-RW имеет ограниченный цикл жизни, а количество операций перезаписи не бесконечно. Точное значение зависит от производителя и качества диска, но диск должен выдержать как минимум 100 операций перезаписи, прежде чем он станет ненадежным. См. также
cdrecord(1).


Компакт-диски записываются по сеансам. В каждом сеансе задействовано определенное количество секторов диска, На односеансовом диске присутствует вводная запись, одно оглавление, данные и выводная запись, присутствие которой фиксирует диск и не позволяет записать на него что-либо еще. Команда mkisofs позволяет связать несколько сеансов на многосеансовом диске. Для этого нужно знать номера начального и конечного секторов каждого сеанса. Рассмотрим параметры команды:
$ mkisofs -о second-image.iso -J -r -V Session2 -C `cdrecord dev=0,1,0 -msinfo` \ -M 0,1,0 /path-to-new-files
  • -о second-image.iso — имя нового файла .iso (выбирается произвольно);
  • -J — схема имен Joliet для совместимости с Windows (не обязательно);
  • -r — схема имен Rock Ridge для совместимости с Unix/Linux, с открытием общего доступа к файлам для чтения. Параметр обязателен для создания многосеансовых дисков;
  • -C `cdrecord dev=0,l,0 -msinfo` — ключ -С существует под несколькими именами: CD+, CDExtra, last_sess_start, next_sess_start. Он указывает mkisofs на конечную точку последнего сеанса и начальную точку следующего сеанса. Обратные апострофы приказывают командному процессору найти и использовать значения автоматически. Их также молено сгенерировать вручную:

cdrecord dev=0,l,0 -msinfo 12968,20172
  • -М 0,1,0 — параметр -М должен использоваться с -С. Он определяет адрес шины SCSI устройства записи CD;
  • /путь_к_новым_файлам — список файлов (или каталог), включаемых в новый файл .iso. См. также

  • cdrecord(1), mkisofs(8).


    mkisofs использует спецификацию El Torito для создания загрузочного образа, который «обманывает» PC и заставляет его думать, что он видит загрузочную дискету. См. также
    mkisofs(8).


    Описанный способ хорошо подходит для проведения архивации «на скорую руку» или перемещения большого количества файлов, но не используйте его для регулярной архивации. Если хотя бы один фрагмент будет испорчен, восстановить данные будет довольно трудно (особенно из сжатых файлов).
    О проведении масштабной архивации рассказано в главе 16.
    split(1), tar(1), cat(1); глава 16.


    В последнее время появляется все больше дистрибутивов Linux в виде файлов .iso, размеры которых предназначены для записи на DVD, и это вполне естественно — некоторые дистрибутивы занимают 8 и более компакт-дисков.
    Команда growisofs заменяет cdrecord и обеспечивает интерфейс к mkisofs, так что вы сможете использовать знакомые параметры mkisofs с двумя исключениями:
    • не используйте параметр -o для указания выходного файла, потому что growisofs пишет непосредственно на DVD;
    • не используйте параметр -C, так как growisofs определяет начальную и конечную точки дорожек самостоятельно.

    Ключ -dvd-compat обеспечивает совместимость с большинством существующих дисководов DVD.
    Ключ -udf добавляет ограниченную поддержку UDF. На момент написания книги пакетная запись еще не была надежно реализована в ядре Linux. В принципе ее можно исключить, хотя ее включение «на всякий случай» обойдется всего в несколько битов метаданных,
    Утилиты dvd+rw-tools существуют в виде пакетов RPM, пакетов Debian и в формате .tar. В архиве .tar также имеется файл spec на тот случай, если вам захочется создать собственный пакет RPM.
    Форматировать новые диски DVD-RW не обязательно, потому что, начиная с версии 5.10, growisofs делает это автоматически при добавлении файлов на DVD.
    Чтобы узнать номер версии, выполните команду
    $ growisofs --version
    Программа supermount должна обеспечивать возможность вставки и извлечения дисков (например, дискет) без ввода команд mount и unmount. Она появилась в Red Hat, SuSE и других дистрибутивах, где обычно включается по умолчанию.
    Чтобы временно отключить supermount, выполните команду
    # /usr/sbin/supermount -i disable
    Повторное включение производится с параметром -i enable. К сожалению, supermount работает не очень надежно, поэтому, возможно, ее лучше отключить вообще. Для этого удалите записи supermount и /etc/fstab. Если вы предпочитаете перестраховаться, удалите пакет magicdev:
    # rpm -q magicdev 11.12. Запись аудиодиска для стандартных проигрывателей В Debian это делается командой
    # apt-get remove magic-dev См. также
    Домашняя страница dvd+rw-tools (http://fly.chalmers.se/~appro/linux/DVD+RW).



    Новые версии sox вроде бы должны поддерживать формат .mp3, но на практике это не всегда так. Выполните команду sox -h и посмотрите, какие форматы поддерживает команда. Если ваша конкретная версия sox не поддерживает .mp3, используйте mpgl23 и sox:
    $ mpgl23 -b 10000 -s filename.mp3 | sox -t raw -r 44100 -s -w -c 2 -filename.wav
    Параметры:
    • -b 10000 — размер буфера в байтах;
    • -s — перенаправление результата в стандартный вывод (вместо попытки воспроизведения файла);
    • sox -t raw -r 44100 -s -w -c 2 — описание формата .cdr с явным указанием спецификаций. Диск не может содержать более 99 дорожек. Впрочем, чтобы па одном диске поместилось 99 песен, эти песни должны быть совсем короткими.

    Если музыкальные файлы уже хранятся в формате .wav, вероятно, вам не придется преобразовывать их. Тем не менее не все файлы .wav имеют правильную структуру для записи на диск; в таких случаях команда cdrecord остановится и выдаст сообщение об ошибке. Преобразуйте неправильный файл .wav в .cdr при помощи sox, а затем снова преобразуйте .cdr в .wav.
    Форматы .wav и .flac обеспечивают наивысшее качество из всех форматов цифрового аудио. Всегда начинайте с них, если существует такая возможность, а потом преобразуйте их в другие форматы по мере необходимости. Чаще всего это делается для экономии места, поскольку файлы .wav и .flac очень велики. Файл .ogg обычно занимает около 1/10 объема файла .wav.
    Ogg Vorbis — открытая и не защищенная патентами технология кодирования аудиоинформации. Она не связана с лицензионными отчислениями или другими ограничениями, присущими запатентованным, закрытым форматам типа MP3.
    Формат .ogg обеспечивает хорошее качество звука при сжатии данных с потерями. Под «потерями» имеется в виду, что часть информации пропадает для уменьшения размера файла.
    MP3 — другой качественный формат сжатия с потерями. Это запатентованный, закрытый формат, поэтому его использование ограничено, код закрыт, а исполнители и распространители должны платить лицензионные отчисления. Компания «Thomson and Fraunhofer», которой принадлежат права на формат MP3, включают в него поддержку DRM (Digital Rights Management, а проще говоря, ограничение копирования). См. также
    cdrecord(1), sox(1), normalize(1).


    Всегда проверяйте диски аварийного восстановления перед тем, как их использовать.
    GRUB использует собственную схему нумерации разделов; отсчет начинается с 0, а не с 1. Диски IDE и SCSI обозначаются hd, а флоппи-дисководы обозначаются fd.
    Таблица разделов Linux:
    • 1-4-первичныеразделы;
    • 5 и выше — расширенные разделы.

    В GRUB она принимает следующий вид:
    • 0-3 — первичные разделы;
    • 4 и выше — расширенные разделы

    Дополнительные диски обозначаются hd1, hd2 и т. д. Таким образом, hd0,3 — то же самое, что /dev/hda4, а hd1,5 соответствует /dev/hdb6. См. также
    Раздел «Введение» настоящей главы; раздел 12.7; раздел 12.9; The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.



    При выполнении трех команд, о которых говорилось ранее, происходит следующее:
    grub> root (hd0.0) Назначение корневого устройства grub> setup (hd0) Установка GRUB в MBR grub> quit Выход из GRUB
    12.4. Установка GRUB сценарием grub-install См. также
    Раздел 12.7; раздел 12.9; The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.


    Вероятно, update- grub не создаст полный файл menu.lst в системе с альтернативной загрузкой, но по крайней мере вы сможете загрузить операционную систему Linux. После этого в menu.lst можно будет добавить записи других операционных систем. См. также
    grub-install(5); info grub; The Grub Manual (http://www.gnu.org/software/manual/ grub.html).


    В большинстве современных дистрибутивов Linux GRUB устанавливается по умолчанию. Проследите за тем, чтобы ваши дистрибутивы не установили LILO.
    QTParted — превосходная графическая утилита для создания, удаления, перемещения и изменения размеров дисковых разделов. Программа QTParted включена в Knoppix, поэтому при желании вы можете настроить разделы перед установкой Linux. Изменения также можно внести после установки, даже если раздел уже содержит данные. Разумеется, сначала необходимо создать резервную копию всех данных. QTParted хорошо справляется со своей работой, но изменение таблицы разделов чревато неприятностями.
    Размещение /swap в автономном разделе повышает быстродействие системы; кроме того, такой раздел может использоваться совместно разными системами при альтернативной загрузке. Выделение /home в автономный раздел позволит вам использовать содержимое в разных экземплярах Linux, а также проводить установку и удаление систем без восстановления данных из архива.
    Linux позволяет создать на диске IDE до 63 разделов: 3 первичных раздела и 4 раздел, содержащий до 60 логических разделов в одном расширенном разделе. Диски SCSI ограничиваются 15 разделами: 3 первичных и 12 логических в одном расширенном разделе. См. также
    fdisk(8); глава 13; домашняя страница QTParted (http://qtparted.sourceforge.net).


    Программа установки Libranet автоматически находит существующие разделы виртуальной памяти, поэтому выбирать их во время установки не нужно.
    Вы можете отредактировать файл menu.lst в любом из новых экземпляров Linux. Просто смонтируйте загрузочный раздел:
    # mkdir /bootpartition # mount /dev/hda1 /bootpartition # vim /bootpartition/boot/grub/menu.lst
    В этом проявляются некоторые преимущества использования загрузочного
    раздела — вы всегда знаете, где он находится, а его содержимое надежно изолировано от корневых файловых систем.
    Вероятно, разбиение диска на разделы является самой важной частью построения системы с альтернативной загрузкой. На физическом жестком диске могут существовать только четыре первичных раздела, поэтому старайтесь по возможности использовать логические разделы; в противном случае разделы быстро кончатся. См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub. 12.7. Определение параметров загрузки в командной консоли GRUB


    Если вы не уверены в том, что в системе использовались стандартные схемы выбора имен ядра, запросите у GRUB все содержимое /boot. Введите строку kernel /boot и нажмите клавишу Tab:
    grub> kernel /boot/<tab> System.map System.map-2.4.21 System.map-2.6.3 boot grub config-2.4.21 config-2.6.3 splash.xpm.gz vmlinuz vmlinuz-2.4.21 kernel-of-truth-2.6.3
    Похоже, мы обнаружили ядро 2.6 со странным именем kernel-of-truth-2.6.3. Несмотря на глупое имя, оно может работать точно так же, как его родственники с более вменяемыми именами.
    Автоматическое расширение имен клавишей Tab позволяет легко проводить поиск в целых файловых системах. Эта возможность особенно полезна для исследования незнакомых систем, потому что вы можете начать с корня:
    grub> root (hd0,6) grub> find /<tab> Possible files are bin dev etc lib mnt opt tmp sys var usr boot home proc sbin root cdrom floppy initrd
    Однако это открывает большую брешь в системе безопасности, так как любой пользователь, имеющий доступ к консоли GRUB, сможет прочитать любой файл в системе командой cat:
    grub> cat /root/secretpersonalstuff.txt grub> cat /etc/shadow
    В разделе 12.14 рассказано, как закрыть эту брешь посредством парольной защиты GRUB.
    Команда GRUB находит корневые устройства и ядра независимо от того, где они находятся. Допустим, в системе установлены два жестких диска IDE. На втором диске корневая файловая система Linux установлена в каталоге /dev/hdb5. Загрузка производится следующим образом:
    grub> root (hd1.4) grub> kernel /boot/vmlinuz-2.4.21 ro root=/dev/hdb5 grub> boot
    В незнакомой системе можно поручить GRUB поиск всех установленных жестких дисков:
    grub> root (hd<tab> Possible disks are: hd0 hd1 См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub. 12.8. Настройка загрузочного раздела


    Запутались? Помните, что и имя раздела не является именем каталога, потому что раздел — не каталог, а точке монтирования можно присвоить любое имя. GRUB ничего не знает о точках монтирования — загрузчик читает файловые системы до того, как они будут смонтированы-. Таким образом, если в загрузочном разделе не существует каталога /boot, GRUB не увидит /boot/grub, а только /grub. Хотя наличие каталога /boot не является строго обязательным, соблюдение этих правил существенно упростит вашу жизнь. См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.


    Запомните, что корневое устройство, заданное строкой
    root (hd0.0)
    определяет местонахождение каталога /boot, а в обозначении hd0, 0 используется собственная система нумерации разделов GRUB. В строке
    kernel /boot/vmlinuz-2.4.22-1 root=/dev/hda2 ro
    параметр root определяет корневую файловую систему с использованием dev-имени ядра. См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.
    12.10. Настройка menu.lst


    Определения глобальных параметров конфигурации:
    • default 0 — определение загрузочной строфы по умолчанию. Строфы нумеруются последовательно, начиная с 0, поэтому обозначение default 0 соответствует первой строфе;
    • timeout 5 — промежуток времени, по истечении которого загружается запись по умолчанию;
    • color cyan/blue white/blue — цветовая схема загрузочного меню GRUB. Первая часть (cyan/blue) определяет цвет текста и фона, а вторая (white/blue) — цвета выделенных строк текста. Список цветов приведен в руководстве GRUB и в описании info grub;
    • splashimage(hd0.0)/boot/splash.xpm.gz; foreground bbbbbb; background 000000 — заставку, входящую в ваш дистрибутив, можно заменить любым изображением по вашему выбору (см. раздел 12.16). Параметр splashimage задает путь к изображению. Также необходимо задать цвет текста и фона для отображения шрифтов с использованием стандартных шестнадцатеричных цветовых кодов HTML.

    Параметру default также можно присвоить значение saved. При использовании default saved также необходимо включить в загрузочные строфы строку savedefault:
    title Libranet GNU/Linux, kernel 2.4.21 root (hd0.0) kernel /boot/vmlinuz-2.4.21 root=/dev/hda1 savedefault
    В этом случае последняя строфа, использованная при загрузке, по умолчанию будет использоваться при следующей загрузке. Во многих дистрибутивах строка savedefault включается в загрузочные строфы, но параметр default saved отсутствует, поэтому механизм не работает. См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub; раздел 12.6.


    Последние три параметра строки стоит рассмотреть подробнее:
    • rootnotverify — не пытаться читать или монтировать раздел;
    • makeactive — установить флаг загрузочного раздела (необходимо для Windows);
    • chainloader +1 — ссылка на загрузчик операционных систем, не поддерживаемых GRUB напрямую (Windows относится к их числу).

    Существует более простой способ организации совместной работы Windows 95/98/ ME с Linux: сначала установите Windows 95/98/ME, а затем добавьте Linux. В этом случае программа установки автоматически запишет GRUB в MBR и создаст запись для Windows в меню GRUB. См. также
    Microsoft Knowledge Base Article 217210: «How to Multiple Boot Windows XP, Windows 2000, Windows NT, Windows 95, Windows 98, Windows ME, and MSDOS»; раздел 9.16; The Grub Manual (http://www.gnu.org/software/manual/grub.htmL).


    Если потребуется организовать альтернативную загрузку нескольких версий Windows, начните с самой старой и устанавливайте их по порядку, вплоть до самой новой. При этом вы можете установить только один экземпляр Windows 95/98/ ME, потому что эти системы, в отличие от Windows NT/2000/XP, не поддерживают альтернативную загрузку.
    Для всех версий Windows можно использовать один первичный раздел, разделив его на несколько логических разделов. Для создания разделов и их форматирования следует использовать программу установки Windows NT/2000/XP; не используйте программу Linux fdisk. См. также
    Microsoft Knowledge Base Article 217210: «How to Multiple Boot Windows XP, Windows 2000, Windows NT, Windows 95, Windows 98, Windows ME, and MSDOS»; The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub; раздел 12.13.


    Флоппи-дисководы постепенно исчезают с компьютеров, особенно с портативных. Даже в ноутбуках, заменяющих настольные компьютеры, вместо флоппидисковода часто устанавливается комбинированный дисковод CD-ROM/DVDROM/CD-R/RW. См. также
    Домашняя страница Knoppix (http://www.knopper.net); The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.


    Разрешения на доступ к файлам являются атрибутами файловой системы. GRUB работает вне файловых систем, поэтому каждый, кто имеет доступ к командной консоли GRUB, сможет прочитать любой файл в системе.
    Даже если вы потеряете пароль GRUB, это еще не катастрофа. Загрузите систему с диска аварийного восстановления и отредактируйте файл menu.lst. В этом проявляется старый принцип безопасности в Unix: «При наличии физического доступа к компьютеру с ним можно сделать все, что угодно». См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.


    Пароли GRUB и строка lock особенно полезны на общих рабочих станциях — например, в учебных залах, лабораториях и на рабочих местах. Тем не менее любой пользователь, обладающий физическим доступом к компьютеру, сможет использовать загрузочный диск аварийного восстановления и получить неограниченный доступ. Чтобы этого не произошло, можно запретить использование аварийных дисков в программе настройки BIOS, но не забывайте, сколько существует различных загрузочных устройств: дискеты, компакт-диски, устройства USB, Jaz/Zip, Ethernet Wake-on-LAN, SuperDisk... и наверное, это еще не все. Завершив настройку, установите пароль на вход в BIOS. См. также
    The Grub Manual (http://www.gnu.org/software/manual/grub.html); info grub.


    Семейство ImageMagick состоит из нескольких утилит командной строки:
    • animate
    • composite
    12.17. Загрузка Linux с использованием LILO
    • conjure
    • convert
    • display
    • identify
    • import
    • mogrify
    • montage

    Отдельной команды imagemagick не существует. За подробностями обращайтесь к imagemagick(1).
    Попробуйте провести поиск в Google по словам «grub splashimage». Вы найдете всевозможные галереи графических изображений, а также рекомендации и полезные приемы по их созданию. См. также
    imagemagick(1), gzip(1), info grub; The Grub Manual (http://www.gnu.org/software/manual/grub.html).


    Команда liloconfig хорошо подходит для создания базового файла lilo.conf; после этого файл проще и удобнее редактировать вручную. При каждом изменении /etc/lilo.conf необходимо запускать LILO, чтобы внести изменения в MBR:
    # /sbin/lilo -v
    Параметр -v определяет уровень детализации вывода, а его значения лежат в интервале от 1 до 5:
    # /sbin/lilo -v5 См. также
    lilo(8), lilo.conf(5); /usr/doc/lilo или /usr/share/doc/lilo; «The Large Disk Howto» на tldp.org.


    Когда в системе установлено несколько версий Windows, загрузчик Windows всегда относится к первой из них. Таким образом, если в /dev/hda1 установлена система Windows 95, а в /dev/hda2 — Windows 2000, в LILO все равно включается ссылка на /dev/hda1. См. также
    lilo(8), lilo.conf(5); /usr/doc/lilo или /usr/share/doc/lilo; Microsoft Knowledge Base Article 217210: «How to Multiple Boot Windows XP, Windows 2000, Windows NT, Windows 95, Windows 98, Windows ME, and MS-DOS».


    В мире Linux существует огромное количество всевозможных загрузочных дисков. Если вам удастся загрузить систему, вы сможете исправить любые ошибки. Обязательно проверьте установочные диски своего дистрибутива, потому что на них часто имеются средства аварийного восстановления, приспособленные для вашего дистрибутива, в том числе и утилиты для переустановки загрузчика. См. также
    lilо(8), lilo.conf(5); /usr/doc/lilo или /usr/share/doc/lilo.


    Для обеспечения дополнительной безопасности на стадии загрузки заблокируйте все внешние загрузочные устройства в программе настройки BIOS и установите пароль на вход в BIOS. Решение не идеально, но по крайней мере, рядовые пользователи не смогут испортить вашу работу. См. также
    lilo(8), lilo.conf(5); /usr/doc/lilo или /usr/share/doc/lilo,.


    Команда dd выполняет побайтовое копирование. Поддержка файловых систем ей не нужна, поэтому она может использоваться для копирования блочных устройств (например, /dev/hda).
    Если в вашей системе отсутствует флоппи-дисковод, испорченную запись MBR можно восстановить при помощи диска Knoppix (см. раздел 12.13). См. также
    dd(1), mke2fs(8); раздел 12.13.

    Содержание раздела