Руководство начинающего пользователя Linux.
(Оно же "Руководство новичка - администратора Linux",
оно же - "Linux Newbie Administrator Guide" или просто LNAG).

Версия 0.193 2002-12-14 by Stan, Peter and Marie Klimas.
Оригинал на английском языке находится по адресу http://sunsite.dk/linux-newbie.
Переведено - ~77 %. Текст еще не прошёл литературную обработку :).
Все комментарии / исправления / сообщения по поводу перевода принимаются на xoid26@linux-online.ru.

Copyright (c) <1999-2002> Peter and Stan Klimas. Your feedback, comments, corrections, and improvements are appreciated. Send them to linux_nag@canada.com. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0, 8 or later http://opencontent.org/openpub/ with the modification noted in lnag_licence.html.

Главная | 0. Преимущества Linux | 1. Перед установкой | 2. Помощь | 3. Основы работы | 4.1. Способы загрузки
4.2. Накопители | 4.3. X Window System | 4.4. Конфигурации | 4.5. Работа в сети | 5. Команды | 6. Программы

Часть 3: Основы работы в Linux. Перевод - Robert Peterson.
[переведено частично]
Содержание:
3.1 Основы
   3.1.1 Имена файлов
   3.1.2 Для чего нужны другие каталоги?
   3.1.3 Как я смогу запускать программы на выполнение?
   3.1.4 Как я могу изменить PATH?
   3.1.5 Как мне выключить компьютер?
   3.1.6 Что мне делать с зависшей программой?
   3.1.7 Опции команд
3.2  Пользователи, пароли, доступ к файлу и безопасность
   3.2.1 Домашние каталоги, администратор, добавление пользователя
   3.2.2 Безопасный пароль
   3.2.3 Я забыл пароль администратора
   3.2.4 Я забыл мой пользовательский пароль
   3.2.5 Запрещение или удаление учетной записи пользователя
   3.2.6 У меня есть проблемы с правами на файл. Как изменить владельца файла и права работы с ним?
   3.2.7 Мой плейер mp3 замолчал. Звук прерывистый (как установить suid)
3.3 Job scheduling with "at", "batch", and cron
   3.3.1 How do I execute a command in the "background"?
   3.3.2 How do I execute a command at a specified time ( using "at"or "batch")?
   3.3.3 How do I set up cron?
3.4  Shell
   3.4.1 What's a shell and do I want to use a different one?
   3.4.2 How do I customize my shell prompt?
   3.4.3 Colour in text terminal
   3.4.4 How do I print symbols on the console,  in a text mode application, or in X?
   3.4.5 How do I write a simple shell script?
   3.4.6 Meaning of quotes
   3.4.7 Input/output redirection
   3.4.8 Shell special characters (metacharacters)
3.5  Package installation and rpm package manager
   3.5.1 How do I install a program I downloaded from the Internet?

3.1 Основы

3.1.1 Имена файлов

Linux чувствителен к регистру. Например: myfile, Myfile, и myFILE - это три разных файла. Ваш пароль и логин также чувствительны к регистру. (Причиной этого является то, что и UNIX и язык "c" регистрозависимы.)  Требования к именам файлов и каталогов идентичны. Все файлы и каталоги, которые я создаю (для себя, как пользователя) записаны в нижнем регистре, за исключением некоторых особенных причин. Большинство команд Linux также пишутся в нижнем регистре.
Имена файлов в Linux могут быть длиной до 256 символов и они обычно содержат буквы, числа, "." (точки), "_" (подчеркивания) и  "-" (тире).  Другие символы не рекомендуются, хотя и допустимы.  В частности, не рекомендуется использовать специальные метасимволы: "*" (звездочка), "?" (вопросительный знак), " " (пробел),  "$" (знак доллара),  "&" (амперсанд), любые скобки, и т.д. Это так, потому что метасимволы имеют специальное значение для процессора команд Linux  (это - то же, что и  COMMAND.COM в DOS).  Возможно применять пробел в имени файла, но мы не рекомендуем Вам это делать -- вместо него используйте  "_" (подчеркивание).
Нельзя использовать  '/' (слэш) как часть имени, потому что '/' используется как вершина дерева каталогов и как разделитель в полной спецификации файла (то же, что и '\' в DOS).

Я не могу дать имя файлу  "." или ".." (одна или две точки)--это означает текущий и родительский каталог соответственно, так же как и в DOS.

Ниже описаны некоторые из метасимволов:
*  = Означает любую последовательность от 0 и более символов за исключением "." (точки) в начале имени файла.
?  = Означает любой один символ.
[abC1]  = Означает одиночный символ из заданной последовательности. В заданном примере множество символов состоит из: 'a',  'b',  'C', и '1'.
[a-z] = Означает любую букву в нижнем регистре.
[A-F] = Означает любой символ в верхнем регистре от A до F.
[0-9] = Означает любую одиночную цифру.
[a-zA-Z0-9] = Означает любую букву (в нижнем или верхнем регистре) или цифру.

Символ \ (бэкслэш) также метасимвол. Он придает метасимволу значение обычного символа.

Примеры. Эта команда выводит список всех файлов в текущем каталоге, исключая файлы начинающиеся с  "." (точки):
ls *
Эквивалентом этой команды является команда ls или dir (без "*").  Файлы с именами, начинающиеся с  "." не будут показаны, так как первый символ "." в имени файла не включен в спецификацию метасимвола  "*". Файлы, начинающиеся с ".", эквивалентны скрытым файлам DOS. Используйте ls -a (список с опцией "all") или ls .* для просмотра этих "точка"-файлов.  Файлы с точкой в начале имени находятся обычно в домашнем каталоге пользователя и используются для хранения настроек данного пользователя.
Эта команда выводит все файлы в текущем каталоге, которые содержат "." (точку):
ls *.*
Эта команда выводит список файлов, содержащих две точки:
ls *.*.*
Заметим, что в Linux отсутствует "тип файла" как в DOS, но Вы можете использовать его. Например, я могу иметь файл с именем my_text.txt.zip. Некоторые другие особенности именования файлов DOS-типов вообще отсутствуют (к примеру "Micros~1.doc").
Эта команда найдет (во всей файловой системе ) любой файл с типом "htm", следующим за одним и более символом:

locate *.htm?

Эта команда покажет все файлы в текущем каталоге, которые начинаются с символа "a" или "b", или любого прописной буквы:

ls [abA-Z]*
Эта команда выведет список файлов, начинающихся с "a" и заканчивающихся на "n"

ls a*n

Автозавершение коммандной строки.  Это отличная особенность --я использую клавишу [Tab] для уменьшения количества набранных символов. Это ускоряет ввод длинных и сложных команд / имен файлов. Например, ввести такое имя файла не проблематично, если я использую автозавершение:

dir Eurosong\ 2000\ Olson\ Brothers\ -\ Fly\ on\ the\ wings\ of\ love\ \(denmark\).mp3

я только набираю

dir Eu<Tab>

и если нет другого файла начинающегося с "Eu", остальная часть имени файла автоматически заполняется за меня. В противном случае, я посмотрю на то, что напечатано за меня и наберу еще один или два символа для уточнения имени файла. В примере символ "\" (бэкслэш) указывает на то, что пробелы - это обычные символы, являющиеся частью имени файла, а не разделитель имен.

Проблемы со странными именами файлов.  Большинство этих проблем разрешаются автозавершением . В дополнение, для управления файлами с именами, которые содержат метасимволы, я могу использовать ' ' (пару апострофов), так, что метасимволы закавычены и  поэтому интерпретатор воспринимает их как обычные символы. Например,для переименования файла  my file* (содержащего пробел и звездочку), я пишу:

mv 'my file*' filename_without_weird_characters.txt

Заметьте, что я использовал пару  ' (апострофов) для закавычивания. Если мы используем пару  "  " (кавычек) в общем случае это будет менее эффективно, чем использовать апострофы. Если Вы используете " (кавычку), то некоторые метасимволы могут быть восприняты.

Следуя традиции UNIX, в Linux можно создать файлы с именами, содержащими любой символ, включая непечатные (управляющие) символы. Это бывает очень редко, но если Вы встретили такой файл, Вы действительно почувствуете себя жутко. Я переименовываю такие файлы, используя аккуратно позиционированный метасимвол. Я использую сначала команду ls для проверки своего действия, чтобы убедиться в том, что это действительно требуемый файл, который я переименовываю:

ls -l myfile*y.html
mv myfile*y.html myfile.html

В качестве примера возможного столкновения с такой проблемой, когда используются нерекомендованные символы в имени файла, попробуйте создать файл с именем начинающимся с "-"(тире) и затем удалите его -- кажется, что нет возможности выполнить это (потому что "-" обычно предваряет опцию команды).  Такая команда

dir > -junk

создаст такой забавный файл (как и в DOS, символ ">" перенаправляет вывод из команды  dir в файл с именем -junk).  Теперь обычный способ удаления файла -junk не работает, поэтому я использую:
rm ./-junk
Символы "./" в начале означает "текущий каталог", и они здесь необходимы для сокрытия лидирующего тире, чтобы команда rm не воспринимала junk как опцию. 

Лучше все-таки выполнять соглашения об именах, чем сталкиваться с такими осложнениями.

Кроме автозавершения, апострофов и кавычек, я могу манипулировать именами файлов, содержащие такие символы, используя "\" (бэкслэш). Например, я могу создать файл с именем *?[ используя  команду:

touch \*\?\[

(Команда touch создает пустой файл или, если файл существует, заменяет его дату/время последней модификации.)
 

3.1.2 Для чего нужны другие каталоги?

Ответ на этот вопрос отлично изложен в Руководстве Системного Администратора (SAG), который доступен в Вашей системе . Чтобы ознакомиться с ним выполните команды:
cd /usr/doc/LDP/sag
lynx sag.html
Они запустят Вам текстовый броузер "lynx" для просмотра этой книги в формате html . Вы можете также использовать любой другой броузер, такой как  Netscape для Linux или Windows, для просмотра этой книги. Она и другие книги LDP очень понятны для чтения.
Если описать всё очень коротко, Linux содержит пять файловых систем. Эти файловые системы могут находиться на одном или разных физических дисках и/или дисковых разделах, в зависимости от размеров и требований Вашей системы. (Одна файловая система может также быть распределена между разными физическими устройствами, если это необходимо.)
Файловая система root "/" ("корневая") содержит базовую операционную систему и инструменты для ее поддержки. Содержание этой файловой системы достаточно для старта и выполняет аварийное сохранение и восстановление в случае необходимости.
Файловая система /usr содержит все команды, библиотеки, документацию, и другие файлы, которые не изменяются в течение нормальной работы. Она содержит также важные приложения, которые Вы получаете вместе с дистрибутивами, например Netscape.
Файловая система /var содержит файлы, которые изменяются:  каталоги спулинга, файлы журналов, файлы блокировки, временные файлы и форматные страницы руководств (маны).
Файловая система /home  содержит пользовательские файлы (установки пользователя, избранные файлы, документы, данные ,почта, кэши, и т.д.). Содержимое этого каталога будет сохранено при обновлении операционной системы.
Файловая система /proc содержит только файлы-призраки. Они в действительности не существуют на диске и не занимают пространства на нем (хотя  команда ls -l покажет их размер). Когда Вы просматриваете их, в действительности Вы получаете доступ к информации, расположенной в памяти. Они используются для доступа к информации о системе.
Частями корневой файловой системы являются:
/bin -- исполняемые (двоичные) файлы, требуемые при загрузке, которые могут быть использованы обычными пользователями.
/sbin -- исполняемые (системные двоичные) файлы, не предназначенные для использования обычными пользователями (пользователи могут использовать их, но эти каталоги не включены в их пути по умолчанию PATH -- путь, читается "пас").
/etc -- файлы конфигурации системного уровня Вашей операционной системы.
/root -- домашний каталог системного администратора (называемого суперпользователем или root).
/dev -- файлы устройств. Устройства представлены в Linux, как файлы, поэтому записывать в них и читать из них - очень просто.
/mnt -- точки монтирования для сменных устройств (флоппи-диски, cdrom, zip-диски), разделы  других операционных систем (например MS Windows), сетевые диски, и что-нибудь еще, что смонтировано к файловой системе временно. Он обычно содержит отдельный каталог для каждого смонтированного ресурса. Содержимое этих устройств/ресурсов появляется в этих каталогах -- буквы устройств в Linux отсутствуют.
/lib -- общие библиотеки для программ, которые размещены в файловой системе root и модулях ядра.
/boot -- файлы, используемые мультзагрузчиком (LILO или GRUB) - программа, позволяющая Вам после загрузки компьютера выбрать, какую операционную систему загрузить, если у Вас на компьютере имеется более одной операционной системы . Этот каталог обычно содержит и ядро Linux  (сжатый файл vmlinuz), но оно может быть расположено в другом месте, если LILO настроен так, что он знает об этом.
/opt -- дополнительные приложения, например, kde для RedHat 5.2 (для RedHat 6.0, kde распределен как другая X-windows (система графического режима), основные исполняемые файлы находятся в  /usr/bin directory).
/tmp -- временные файлы. Этот каталог может быть очищен автоматически.
/lost+found -- файлы, восстановленные в течение восстановления (ремонта) файловой системы.
Наиболее интересные части файловой системы  /usr указаны ниже:
/usr/X11R6 -- система X-windows  (версия 11, реализация 6).
/usr/X11 -- то, что и  /usr/X11R6 (это символическая ссылка на  /usr/X11R6).
/usr/X11R6/bin -- куча маленьких  X-windows приложений, и возможно символических ссылок на исполняемые файлы некоторых больших приложений для X-windows, которые расположены в  собственном подкаталоге где-нибудь в другом месте).
/usr/doc -- документация Linux (на более новых системах она перемещена в /usr/share/doc).
/usr/share -- данные независимые от архитектуры Вашего компьютера - например, словарь.
/usr/bin и /usr/sbin -- схожие со своим эквивалентом в файловой системе root (/bin и /sbin), но не обязательные для основной загрузки (например, во время аварийного сохранения). Большинство команд находятся здесь.
/usr/local -- приложения, установленные администратором (возможно, каждое приложение расположено в отдельном каталоге). После "основной" установки системы, этот каталог пуст. Содержимое этого каталога  переживет обычную переустановку или обновление операционной системы.
/usr/local/bin -- содержит небольшие исполняемые файлы, установленные пользователем, плюс символические ссылки  на более крупные исполняемые файлы содержащиеся в отдельных подкаталогах каталога /usr/local.
Важно понять, что все каталоги появляются в едином дереве каталогов, даже если каталоги содержат различные разделы, физические (включая флоппи и др.), или даже если они распределены в сети . Поэтому в Linux и отсутствуют "буквы дисков" как в DOS. То, что является  устройством в DOS или MS Windows, появляется как каталог в Linux.

Система каталогов является стандартной в большинстве дистрибутивов Linux (в настоящее время небольшие отличия имеются в Linux Standard Base). Это также верно для многих коммерческих  систем UNIX.

Дополнительно о файловой системе /proc (только для серьезных читателей).
Псевдо-файловая система /proc является резидентной файловой системой реального времени, в которой отражаются статус ядра операционной системы и процессов, выполняемых на Вашем компьютере. Псевдо-файловая система /proc является полностью виртуальной, т.е. она не присутствует ни на одном из обычных дисков или другом устройстве хранения данных, она существует только в памяти компьютера, и она постоянно обновляется для отображения любых изменений Вашей системы. Размер каталога  /proc  всегда равен нулю и дата последней модификации равна текущей дате.В некоторых случаях возможно изменить установки Вашей системы, изменив вручную содержимое файлов в файловой системе  /proc . Многие утилиты Linux используют файловую систему  /proc как источник информации для своего действия - например, dmesg, ps и top.

Содержимое файловой системы  /proc .

Каталоги с "цифровыми" именами, такие как  "1" "170" "4908" являются идентификаторами процессов запущенных на Вашем компьютере. Каждый каталог содержит несколько файлов, напр.,: cmdline (содержит полную команду, с помощью которой был запущен этот процесс), cwd (символическая ссылка на cwd процесса), environ (переменные окружения определенные для этого процесса в в виде ПЕРЕМЕННАЯ=значение), exe  (символическая ссылка на исполняемый файл, к которому присоединен текущий процесс), fd  (список файловых дескрипторов, открытых процессом), maps (именованный канал, который может быть использован для доступа к памяти процесса), root (симовлическая ссылка к каталогу, который является корнем для обычного процесса), stat (информация о статусе процесса).

Другие файлы в системе  /proc :
/proc/cpuinfo -- информация о процессоре, такой как тип, производитель, модель и представление.
/proc/devices -- список устройств настроенных в текущем ядре.
/proc/dma -- DMA каналы используемые в данный момент.
/proc/filesystems -- типы файловых систем, скофигурированных в ядре.
/proc/interrupts -- используемые прерывания, и как много их может быть.
/proc/ioports -- порты ввода/вывода используемые в данный момент.

Например,я могу прочитать информацию о процессоре в моей системе, используя следующую команду:
cat /proc/cpuinfo

3.1.3 Как я смогу запускать программы на выполнение?

Вы набрали имя исполняемого файла в командной строке и нажали Enter, но программа не запускается? Здесь может быть три причины.
Первая: Вы некорректно набрали имя файла. Проверьте регистр -- Linux чувствителен к нему!  Например, если набрать  "Pico" или "PICO", то редактор  pico не запустится.
Вторая: может быть, программа не находится в каталогах Вашего пути по умолчанию (PATH).  В Linux (или UNIX), исполняемые файлы должны находиться в Вашем  PATH, чтобы они могли быть запущены, а текущий каталог обычно НЕ находится в Вашем PATH. Наберите полный путь к файлу перед именем файла, или выполните:
cd the_program_directory
./program_name
Вы должны расположить точку и слэш впереди имени файла или программа не будет исполнена.  (Это - особенность запуска, относящаяся к безопасности системы: не включать текущий каталог в  путь по умолчанию. Это создает проблемы "троянским коням". "Троянский конь" - вредная программа, которая  притворяется, что она делает нечто другое, чем на самом деле.)  Точка означает "текущий каталог", а слэш  "/" - разделитель между именем каталога и именем файла (как и  "\" в DOS).
Вы можете посмотреть текущий каталог, используя команду:
echo $PATH
Чтобы узнать как изменить свой PATH, или добавить в него Ваш текущий каталог, смотрите следующий ответ.
Если Вы потеряли где-то в дереве каталогов исполняемый файл, Вы можете найти его так, например:

find / -name "netscape"
чтобы найти файл с именем "netscape" для поиска, начиная с корневого каталога "/". Вы можете получить тот же результат быстрее, используя :
locate netscape
(Locate работает быстрее, потому что он опирается на базу данных файлов Вашей системы, построенную заранее.  Эта база данных обновляется в фоновом режиме процессом cron, который запускается обычно ночью, поэтому не проверяйте, как работает locate при поиске файла, если Вы обычно  ночью выключаете компьютер, и не ищите файл, который только что установили.)
Заметим, что обычно PATH для администратора и для обычных пользователей различаются (PATH администратора включает в себя /sbin и /usr/sbin, тогда как у пользователей этих каталогов нет). Поэтому  пользователи не могут исполнять программы, расположенные в каталоге "sbin", если они в командную строку не включают полный путь исполняемого файла. Также, если Вы стали суперпользователем, выполнив команду su, Вы наследуете PATH пользователя, и для выполнения программы, расположенной в sbin, Вам всё равно требуется указывать полный путь.
С другой стороны, если Вам требуется узнать, где расположен исполняемый файл, который включен в Ваш PATH (т.е., исполняемый файл запускается при наборе его имени,и Вам хочется знать, где он находится), Вы можете использовать такую команду:
which netscape
которая покажет полный путь к программе "netscape".
Третья: может быть, этот файл - не исполняемый. Если это так, то сделайте этот файл исполняемым. Например (как администратор или собственник этого файла):
chmod a+x my_file
Эта команда сделает файл "my_file" исполняемым для всех пользователей. Проверьте это так:
ls -l  my_file
Прочтите  здесь, если Вы не поняли результат этой команды.

Заметим, что в Linux (или UNIX) не существует расширений файлов (например, .exe или .com или .bat), которое делает файл исполняемым. Файлу необходим "режим доступа исполняемого файла", и это - не то же самое, что и "атрибут файла" в DOS.
 

3.1.4 Как я могу изменить PATH?

Обычно Вы не можете изменить свой PATH, но очень полезно понять, что это такое.

PATH - это список каталогов, в котором ищется имя программы которое Вы указали при запуске. Вы можете проверить свой PATH, используя команду:

echo $PATH
которая в моей системе показывает PATH пользователя "yogin":
/opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/yogin/bin
":" - это разделитель, поэтому вышеуказанный PATH представляет следующий список каталогов:
/opt/kde/bin
/usr/local/bin
/bin
/usr/bin
/usr/X11R6/bin
/home/yogin/bin
Ниже показан результат команды "echo $PATH" запущенный в моей системе при входе в нее как администратор ("root"):
/opt/kde/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
Вы можете изменить PATH для всех пользователей системы редактируя файл /etc/profile и  подправляя (как администратор) в командной строке с помощью "PATH=".  Я делаю это, используя редактор pico (как администратор):
pico -w /etc/profile
(Опция -w отключает свертку длинных линий.)
Для получения эффекта от изменений надо войти в систему заново.  Для изменения PATH для конкретного пользователя отредактируйте файл /home/user_login_name/.bash_profile (обратите внимание на точку впереди имени файла -- файлы, начинающиеся с точки, обычно невидимы в системе, и для того, чтобы их увидеть, необходимо ввести команду  ls -a).
Если Вы действительно хотите иметь текущий каталог в Вашем PATH, добавьте "." (точку) в Ваш PATH. Там, где имя каталога опущено, она означает "текущий каталог". Спецификация пути в /etc/.bash_profile может выглядеть так:
PATH="$PATH:$HOME/bin:"."
export PATH
Эта команда берет содержимое переменной окружения, называемой PATH (как установленной для всех пользователей в /etc/profile), и добавляет к ней имя Вашего домашнего каталога из переменной HOME с присоединенным к нему "/bin" и затем точки. В завершение, команда присоединяет результирующую строку к переменной PATH.  Необходимо использовать команду "export" после изменения PATH или любой другой переменной окружения, для того чтобы переменная была видна вне скрипта, который изменил ее.

3.1.5 Как мне выключить компьютер?

В текстовом терминале, нажмите <Ctrl><Alt><Del> ("салют-тремя-пальцами", нажимать одновременно), подождите, пока процесс выключения завершится, и выключите питание компьютера только после того, как он снова пойдет на перезагрузку.  Если Вы находитесь в графической среде X-windows, сначала перейдите в текстовый терминал нажатием  <Ctr><Alt><F1> (три клавиши одновременно). Не выключайте компьютер, пока процесс выключения не завершится, иначе у Вас будут ошибки на диске при следующей загрузке. (Обычно ошибки, полученные в результате ненормального завершения работы во время следующей загрузки будут исправлены автоматически, но иногда могут возникнуть более серьезные проблемы, и Вам может потребоваться ручное восстановление файлов или переустановка системы!)
Если предпочитаете выключать Ваш компьютер при нажатии <Ctrl><Alt><Del> (вместо перезагрузки по умолчанию), Вы можете установить это, отредактировав файл /etc/inittab. Этот файл содержит такие строки:
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Как администратор, замените опцию "-r" на "-h", так чтобы этот фрагмент выглядел так:
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -h now
Строка, начинающаяся с  "#", является комментарием (она предназначена для людей, а не для компьютера). Опция  "-t3" говорит, что команда shutdown ожидает 3 секунды перед тем, как начать завершение процессов . Опция  "-r" и "-h" означает "перезагрузку" и "остановку" соответственно, они указывают выполнить завершение для перезагрузки или завершение для остановки компьютера.
Администратор может использовать команду shutdown для выключения  напрямую. Эта команда  может быть использована как для локального, так и для удаленного выключения Вашего компьютера, но она используется в большинстве для удаленного выключения, так как клавиатура недоступна для нажатия <Ctrl><Alt><Del>. Это может быть также использовано для ситуации, когда программа зависла и клавиатура не функционирует.Например:
telnet name_of_machine_with_no_operable_keyboard
 (telnet имя_машины_с_нерабочей_клавиатурой)
[подключился как пользователь]
su
[ввел пароль]
Затем - выполните ps axu |more, найдите идентификатор зависшего процесса в выводе на экран команды  ps и введите

kill pid_of_offending_process
(kill  идентификатор_зависшего_процесса)

или перезагрузите Вашу машину с помощью:

/sbin/shutdown -rn now

Эта команда действительно быстро завершит работу, пропуская стандартную (более длинную) процедуру завершения -- полезно, когда система на самом деле сбоит (опция  -n сообщит   "завершению" об уничтожении всех процессов перед перезагрузкой).
Заметим, что по соображениям безопасности, Вы не можете войти в удаленную машину как администратор  (например, через telnet).  Вы входите как пользователь, и затем выполняете su и вводите пароль для того, чтобы стать администратором.
Команда завершения может быть выполнена позже. Например. (как администратор):
/sbin/shutdown -r 23:59
перезагрузит компьютер за минуту до полуночи. Я могу также использовать:
/sbin/shutdown -r +1

завершит через минуту . Я могу прервать завершение с помощью :
/sbin/shutdown -c

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

init 0
init 6

Значение различных уровней работы описано в файле  /etc/inittab и здесь.

3.1.6  Что мне делать с зависшей программой?

Программы с ошибками в Linux могут зависнуть. Крах приложения, однако, не будет влиять на операционную систему, поэтому Вам не придется перезагружать компьютер.  Известны сервера на платформе Linux, работающие более года без перезагрузки. По нашему опыту, плохое поведение операционных систем часто связано с аппаратными или конфигурационными проблемы:  мы часто встречались с проблемой перегрева процессора (вентилятор недостаточно быстро вращается или вообще остановился, гнездо процессора при его подключении было грязное), плохие чипы памяти, различные чипы памяти имеют различную тактовую частоту  (Вы можете переставить их местами, это иногда помогает), неправильная настройка BIOS (Вы, возможно, выключили все "дополнительные" опции - Linux заботится об этом сам). 

Сообщения об ошибке "signal 11" обычно (в 99% случаев) ассоциируются с проблемами аппаратного обеспечения и проявляются, когда вы выполняете интенсивные вычислительные задачи: установка Linux, компиляция ядра, и т.д.  Если Ваш процессор имеет тенденцию к перегреву, имеются несколько советов для его охлаждения, особенно в жаркую погоду: очистите гнездо процессора, замените вентилятор, работайте без кожуха на системном блоке и направьте на него внешний вентилятор, увеличьте в BIOS "wait-state", не разгоняйте, понизьте нагрузку при использовании, например, замените супер-навороченный screensaver на черный экран.

На самом деле не зависло. Некоторые программы могут создавать эффект зависания, хотя в действительности они всего лишь ждут ввода информации от пользователя. Обычно это случается когда программа ожидает ввода имени файла, как аргумент коммандной строки, и пользователь не вводит имя файла, поэтому программа  ждет его со стандартного ввода (по умолчанию с консоли). Например, эта команда
cat
может выглядеть как зависшая, но она ожидает ввода имени файла с клавиатуры.  Попробуйте нажать <Ctrl>d  (что означает "конец файла") чтобы увидеть, что это завершит команду.  Другой пример: я видел много вопросов в группах новостей о "глючности" команды tar, которая "зависает" во время распаковки загружаемого файла,например:
tar -zxv my_tar_filename [неверно!]
Она также ожидает ввода, так как опция "-f " с указанием имени файла отсутствует, а "my_tar_file" не распознается как имя файла. Корректная команда будет такова:
tar -zxvf my_tar_filename
Заметим, что имя файла должно сразу следовать за опцией "f" (которая и стоит тут для "имени файла"). Нижеследующая команда НЕ БУДЕТ работать (очень распространенная ошибка):
tar -zxfv my_tar_file  [неверно!]
Любая программа (зависшая или нет) может быть уничтожена.

Программа в текстовом режиме часто может быть уничтожена нажатием <Ctrl>c. Эта комбинация клавиш  не сработает  для больших приложений, которые блокируют <Ctrl>c, поэтому и не используется .  Вы можете послать программу в фоновый режим работы, нажав <Ctrl>z  (нет гарантий, что это сработает)  или  переключиться на другой терминал, например нажав <Ctrl><Alt><F2> и зарегистрироваться под тем же именем, что и пользователь, у которого зависла программа (это сработает всегда). Теперь когда Вы снова управляете компьютером, найдите программу, которую хотите прервать, например, так:

ps
Эта программа выводит список программ, которые сейчас запущены данным пользователем. В выводе  ps, я нахожу идентификатор процесса  (PID) зависшей программы и теперь я могу уничтожить его. Например:
kill 123
уничтожит программу с идентификаторм процесса (PID) равным "123".
Как пользователь, я могу уничтожить только собственный процесс (с именем-паролем, которого я стартовал). Администратор может удалить любой процесс. Чтобы увидеть полный список всех процессов, запущенных в системе, выполните:
ps axu | more
Эта команда выводит все запущенные сейчас процессы (опция "a"), даже те, которые не управляются терминалом (опция "x"), и вместе с именем пользователя, который является собственником процесса (опция "u"). Так как этот вывод больше, чем один экран,я использовал канал "more", и вывод останавливается после каждого заполненного экрана.
Команда kill имеет сокращение  killall для уничтожения программы по ее имени,например:
killall netscape
уничтожит любую программу, содержающую "netscape" в своем имени, а

killall pppd

надежно рассоединит любое подключение удалением демона (резидентной программы) ppp.

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

Прервать последнюю команду можно нажатием <Ctrl><Alt><Esc>, которое также изменит курсор на нечто, похожее на смертный приговор -- Вы наводите курсор мыши на окно требуемой программы, кликаете мышью и окно с программой закрываются.

Если Ваша система X-windows разрушилась так, что не может быть восстановлена, или только что  она замерла, простеший путь уничтожит ее - нажать <Ctrl><Alt><BkSpace>. После было бы неплохо запустить на выполнение ps axu, найти всевозможные X-программы, которые еще работают и уничтожить их. Если Вы это не сделаете,  та программа, которая вела себя плохо и нарушила работу Вашей X-windows системы, снова создаст Вам проблемы.
Если у Вас имеются программы, работающие/приостановленные в фоновом режиме, операционная система возразит против Вашего выхода из системы, и выдаст сообщение типа "There are stopped jobs"("Имеются приостановленные программы").  Для выхода из системы несмотря на это, только повторите выход или команду  exit -- программы фонового режима автоматически прервутся и Вы выйдете  из системы.
Core файлы. Когда программа терпит крах, она часто делает дамп памяти "core" в Ваш домашний каталог. Это сопровождается соответствующим сообщением. Core - это образ памяти (плюс отладочная информация) и предназначенная быть инструментом отладки. Если Вы - пользователь, который не собирается отлаживать программу, Вы просто удалите этот файл:
rm core
или ничего не делайте (core будет переписан при следующем дампе памяти). Вы можете также запретить дамп core используя команду:
ulimit -c 0
Проверьте, что это сработало так:
ulimit -a
(Эта команда покажет "ограничения пользователей", опция "-a" означает для "всех".) Установить постоянный запрет на дамп core для всех пользователей можно, отредактировав файл /etc/profile (как администратор), где устанавливается ulimit, и регулируется настройка. Войдите вновь под своим именем для того, чтобы  /etc/profile возымел эффект.
Если Вы захотите увидеть как файл  core может быть использован, введите (в каталоге, в котором есть файл core ):
gdb -c core
Эта команда  запустит отладчик GNU (gdb) на core-файле и покажет имя программы, которая его создала, сигнал на котором программа была прервана, и т.д. Наберите "quit" для выхода из отладчика. Узнать о различных сигнал можно командой:
cat /usr/include/bits/signum.h |more

3.1.7 Опции команд

Большинству команд доступны многочисленные опции. Опция вводится с помощью "-" (тире). Например:

dir -l

показывает мне список файлов в текущем каталоге но в расширенном формате (по умолчанию формат вывода "короткий").  Если надо ввести более одной опции, то можно их объединить, эти варианты эквивалентны:

dir -l -a

или

dir -la

Любая из двух команд покажет мне список файлов в текущем каталоге в расширенном формате (опция -l), и включит все файлы в список ,также и скрытые (опция -a).

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

dir --help

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

dir --help | more

3.2 Пользователи,пароли,доступ к файлу, безопасность

3.2.1 Домашние каталоги, администратор, добавление пользователя

На диске есть только одно место (как правило), куда обычные пользователи (не-администраторы) могут писать  - это их домашний каталог, который имеет имя  /home/user_login_name (например, /home/JohnSmith если пользователь имеет имя JohnSmith).
Этот "домашний" каталог содержит все пользовательские файлы : настройки, файлы конфигурации программ, документы, данные, кэш броузера, почту, и т.д.  Как пользователь, Вы можете создать подкаталоги в Вашем домашнем каталоге, организованные по Вашему усмотрению.  Другие пользователи не могут читать Ваши файлы или писать в Ваш домашний каталог без Вашего разрешения .
Обычный пользователь может также читать и выполнять много других файлов в системе (в дополнение к их домашнему каталогу), но обычно они не могут изменять или удалять их.
"Администратор"(root - читается так "руут") ,также называемый "суперпользователем" (superuser), это специальная административная учетная запись, которая имеет власть для модификации любого файла в системе. Работать в системе, как администратор, если Вы он и есть - это дурная привычка, если Вы это делаете, то Ваши ошибки обойдутся Вам очень дорого. Установите и используйте учетную запись обычного пользователя для ежедневной работы, другая учетная запись для Вашего сына, третья для супруги. Сразу после установки Linux единственная учетная запись - это учетная запись администратора. Итак, для нормальной работы Linux Вы должны сразу создать "пользовательские" учетные записи.
Учетная запись пользователя может быть создана администратором, например, так:
adduser joe
passwd joe
[набрать пароль для пользователя joe]
[перенабрать пароль для пользователя joe для исключения ошибки набора]
Сначала я регистрируюсь как администратор. Затем, в командной строке, я ввожу команду "adduser" с параметром "joe". Это создает учетную запись "joe" на моем Linux-компьютере. Затем, я ввожу команду "passwd joe" для изменения пароля пользователя "joe" на что-нибудь достаточно секретное. Теперь, я говорю "joe", какой у нее пароль для входа в систему, и она может войти в систему и изменить свой пароль так, как ей хочется. Заметим, что учетное имя ("joe") и пароль чувствительны к регистру.

Администратор может изменить пароль любого пользователя, хотя он/а и не могут прочесть его.  [Пароли шифруются используя однонаправленный алгоритм шифрования и только эта версия установлена в системе, в файле /etc/passwd (в старых системах) или /etc/shadow (в более новых системах), и никогда не было еще версии где хранились бы пароли в "открытом" виде. Когда Вы регистрируетесь в системе, пароль снова шифруется используя тот же алгоритм шифрования и сравнивается с уже зашифрованным паролем, хранящимся в /etc/passwd или /etc/shadow.]

Разделение администратора и пользователя делает систему Linux безопасной и устойчивой--это  создает трудности вирусам в Linux (программы, которые пользователь запускает могут писать только в его/ее домашнем каталоге, и поэтому не могут воздействовать на жизненно важные части операционной системы).
Обычно, пользователь меняет пароль после первого входа в систему ,например:
passwd
("current"-текущий) UNIX password:  пароль_СТАРЫЙ
New UNIX password:  пароль_НОВЫЙ
Retype New UNIX password:  пароль_НОВЫЙ
В действительности, пароль не появляется на экране во время ввода (по соображениям безопасности) . Найдите достаточно времени, чтобы не спешить, если Вы меняете пароль впервые -- все-таки непросто печатать "вслепую".

В  Linux один и тот же пароль используется для:
- входа в текстовый терминал,
- входа в графический экран (GUI),
- разблокирования текстового терминала,
- разблокирования хранителя экрана, защищенного паролем в графическом режиме (GUI) (например, KDE или GNOME).

3.2.2 Безопасный пароль

Слабые пароли в большинстве случаев являются источником проблем безопасности. Даже дома, Вы можете подвергнуться серьезной опасности, потому что кто-то может взломать Ваш компьютер, когда Вы бродите по Интернету и читаете/удаляете свои файлы, или использовать Ваш компьютер  для каких-нибудь грязных замыслов, направленных против Вашей компьютерной сети. Поэтому, сохраняйте все Ваши имена/пароли в секрете, даже дома. Хотя бы раз, кто-нибудь проникнет в Ваш компьютер, даже как обычный пользователь, он сможет добраться до прав доступа администратора (рано или поздно, в зависимости от того, как хорошо построена Ваша система и насколько он/а хороший хакер).

Имеется несколько примеров рискованных паролей:
- Без пароля (и такое возможно!).
- Слово "пароль"  (это действительно слабый пароль!).
- Ваше имя для входа в систему (Имя и пароль - одно и тоже? М-да.).
- Ваше имя или имя Вашей дочери, сына, мужа, жены, подружки, или чье-то имя . Число имен вполне ограничено --достаточно заглянуть в книгу "имя Вашего ребенка". Не думайте, что раз Вы из Индии, то Ваше имя в качестве пароля безопасное --Канада многонациональная страна и обычный список имен перекрывает все сорта.
- Ваша или чья-нибудь фамилия. Число фамилий неожиданно ограниченно! Только проверьте данные переписи США, чтоб увидеть, что Ваша "редкая" фамилия с острова Абамамахаба хорошо представлена в американском списке частоиспользуемых фамилий, состоящем из 89,000 записей (напр., http://www.census.gov/genealogy/www/freqnames.html). Или только гляньте в телефонную книгу Toronto. Еще одно доказательство того, что мы все - одна семья :))
- Прозвище собаки, канарейки или компьютера. (Люди используют очень малое число кличек, гораздо меньшее чем фамилии!)
- Имя Вашей любимой спортивной команды, праздника, зубной пасты или стирального порошка,  имена популярных футбольных команд, музыкального ансамбля .
- День рождения, номер страхового полиса т.д., это просто вычисляемо.
- Имя Вашей компании, отдела, рабочей группы, и т.д.
- Пароль, написанный в календаре у Вас на столе или на компьютере.
- Пароль, который Вы используете в несекретном общественном месте,например для входе в Интернет или почтовый ящик. В общем ,Вы должны использовать разние пароли в разных местах, контролируемые разными организациями.
- Любое слово, имеющееся в английском словаре. Словарь не содержит так много слов, как может показаться. Не-такой-уж-опытный-хакер может просто установить программу шифрования всех слов в словаре (100 000? так это меньше 1 MB!) и затем сравнить все зашифрованные строки с Вашим зашифрованным паролем. Попробуйте поработать с программой  crack сами, чтобы понять как это легко. Бранные или разговорные слова и выражения обычно делают пароль уязвимым для взлома.
- Любое другое слово, фамилия, имя, домашнее животное или бранное слово, не есть нечто такое в другом языке. Для взлома охватить большинство языков, если уже охвачен один -это не большие дополнительные расходы. Сколько значащих языков имеется? 40?  Взломщик только добавит немногим больше файлов и добавит их в список взлома. То, что подмножество слов, которые люди обычно используют намного меньше теоретического предела произвольных комбинаций символов. - Любое из указанного выше с добавлением цифры/буквы в начале/конце. "yuoping1" есть действительной слабый пароль.

Хороший пароль относительно длинен (минимум 6 символов, некоторые эксперты рекомендуют не менее 10 символов),  содержит смесь букв (верхнего и нижнего регистра,если возможно), числа и спецсимволы, и изменяемый регулярно (8-16 недель?).

К сожалению, более хороший пароль и запомнить трудно.Я решил эту проблему для себя потратив 10 минут для разработки моей персональной схемы паролей. Я всегда начинаю и заканчиваю символом (@), и использую 2 слова, соединенные восклицательным знаком,последний символ каждого слова - прописная буква, например "@whitE!housE@".  Выглядит как достаточно сложный пароль, и прост для запоминания. Если Вы гений в области запоминания, Вы можете использовать mkpasswd  для генерации действительно отличных паролей  :) ).

Системный администратор может устанавливать политику паролей  (минимальная длина, требование спецсимволов, истечение срока действия пароля) через утилиту, включенную в конфигурационную программу (запускаемую под именем администратора):
linuxconf
в меню "user account"-"policies"-"password & account policies"("учетные записи пользователя" - "политика" - "пароль&политика учетной записи").  Обычные пользователи не могли бы вводить слишком короткий пароль, или слово из словаря, или не содержит предписанное число не алфавитно-числовых симолов (но администратор может изменить любой пароль так, как ему/ей нравится, он/а лишь получит предупреждение).
Также убедитесь, что некоторый файл, который содержит Ваш пароль (например, /root/.kde/share/config/kppprc) имеет правильный доступ, так, что не может быть прочитан кем-нибудь. Например, большинству таких файлов Вы установите:
chmod 600 kppprc

Если Вы используете соединение через телефон с Интернетом только пару часов в неделю, Вы можете прекрасно использовать относительно слабый пароль в системе. Но ,пожалуйста, пересмотрите Вашу систему безопасности, если Вы используете кабельный модем или подключены к Интернету значительное время.

Большинство компьютерно-полуграмотных людей используют потрясающе слабые пароли.  "Около 50% пользователей компьютеров основывают  пароли на именах членов семьи, партнеров или домашних животных. 30% используют поп-идолов или спортивных героев," по анализу CNN (http://www.cnn.com/2002/TECH/ptech/03/13/dangerous.passwords/index.htmll).  Обратите внимание на пароль с использованием подчеркивания. Добавление цифр к очевидному слову вряд ли делает пароль более безопасным.

3.2.3 Я забыл пароль администратора

Даже если я никогда не забывал свои пароли, я и сейчас изучаю этот предмет в деталях, потому что это может дать мне намек о том, как моя мама сможет прочесть мою историю ICQ-чата :-)
Первый метод. Простейший путь к решению проблемы "забывания пароля администратора" - это перезагрузить  Linux в однопользовательском режиме, в так называемом приглашении "lilo" (в момент загрузки) набрать:
linux single
Эта команда произведет Вас в "администраторы" без запроса пароля. Теперь, став администратором, Вы можете изменить пароль используя команду (никаких знаний о старом пароле не требуется):
passwd
Если это шокирует Вас с точки зрения безопасности, то знайте, что не существует безопасных компьютерных систем, если посторонние люди имеют доступ к Вашей аппаратуре. Мне никогда не нравилось пользоваться лазом  "linux single" на моем домашнем компьютере и я заткнул эту дыру  добавлением следующих строк в файле /etc/lilo.conf  (в конце секции "image=" ):
password="my_password"
restricted
[Этот "lilo" пароль требуется, во время приглашения LILO, если кто-нибудь вводит слово "linux" с каким-то параметром (обычная загрузка без каких-либо параметров доступна без пароля).]  Для того, чтобы изменения в /etc/lilo.conf возымели эффект, я должен перезапустить команду lilo .  С этого момента мой  lilo пароль незашифрован, я должен сделать файл /etc/lilo.conf доступным для чтения только администратору, следующей командой:
chmod 600 /etc/lilo.conf
Второй метод.  Другой путь для решения проблемы "забыт-пароль-администратора" это загрузка Вашего компьютера с загрузочной дискеты Linux или CD.  Затем находите Ваш корневой раздел с Linux на жестком диске, монтируете его, и редактируете файл /etc/shadow.  (Я могу это сделать, потому что после загрузки с дискеты я становлюсь администратором без запроса пароля.)  В файле паролей я удаляю зашифрованный пароль для администратора (например, используя редактор pico),поэтому он пуст.
Информация о пользовательских учетных записях хранится в обычном текстовых файлах: /etc/passwd and /etc/shadow.

Файл /etc/passwd содержит "читаемую всем миром" информацию обо всех учетных записях на моем компьютере. Каждая строка в этом файле содержит информацию об одной учетной записи. Каждая строка содержит  7 полей, разделенных двоеточием : имя пользователя, символ "x", числовой идентификатор пользователя, числовой идентификатор первичной группы пользователя, комментарий (например, полное имя пользователя), домашний каталог пользователя, имя интерпретатора (означающее имя программы запускаемое при регистрации).

В противовес к этому  информация об учетных записях на моем компьютере расположена в файле /etc/shadow. Этот файл более защищен, потому что обычно администратор может читать его. В нем каждая строка описывает информацию-"отражение" об одной учетной записи и содержит 9 полей разделенных двоеточием: имя, шифрованный пароль, количество дней прошедших от 1 января 1970 года до последней даты изменения пароля, количество дней до того как пароль может быть изменен, количество дней после которого пароль должен быть изменен, количество дней для предупреждения пользователя до того как действие пароля закончится, количество дней на запрет учетной записи после того как действие пароля закончится, количество дней с 1 января 1970 года когда учетная запись будет запрещена, и резервное поле.

Некоторые  (старые) UNIX или Linux системы не содержат файл /etc/shadow и хранят шифрованный пароль пользовательской учетной записи во втором поле каждой строки файла /etc/passwd (поле, которое в новых системах обозначены символом "x").

Например, в моем /etc/shadow строка для учетной записи администратора может выглядеть как:

root:$1$BuPbmLAz$1G7.evIChyqaEI0TlZp0F.:11071:0:99999:7:-1:-1:134540356

и после того как пароль будет стерт, она выглядит как:

root::11071:0:99999:7:-1:-1:134540356

Теперь, учетная запись администратора не имеет пароля, и я могу перегрузить компьютер и вместо имени ввести "root", а вместо пароля просто нажать ENTER (пусто, нет пароля). После удачной регистрации в системе я сразу же назначу пароль администратора такой командой:

passwd

Видимо, несмотря на удаление пароля из  /etc/shadow, дистрибутив Debian  не позволит Вам войти в систему "без пароля" (дополнительная безопасность?). В этом случае, что мешает Вам заменить пароль в /etc/shadow на зашифрованный пароль из другой учетной записи, пароль которого Вы знаете. После этого Вы можете в систему с известным паролем.

Отправка/получение по почте  зашифрованного пароля может также быть безопасным путем для установки учетной записи удаленного пользователя : "Я установил Вашу учетную запись на моем ftp-сервере. Вышлите мне по электронной почте Ваш зашифрованный пароль."  После получения зашифрованного пароля, Вы вставляете его в соответствующее поле файла  /etc/shadow. Теперь, пользователь может регистрироваться, кроме его/её никто не знает пароль.

Я считаю необходимо отключить запуск компьютера с дискеты. К сожалению,в наши дни Linux можно загрузить также с CD. Я устанавливаю последовательность загрузки (в настройках BIOS) так, чтобы система загружалась с жесткого диска до того как делается попытка загрузиться с CD или дискеты,и добавляю пароль "администратора" на запрет изменений в настройках BIOS. Даже теперь я беспокоюсь, что пароль в настройках  BIOS просто взломать, или удалить батарейку питающую  настройки BIOS. Кто-то может также вытащить мой жесткий диск и подключить к другому компьютеру для просмотра :-) . Я подумываю об установке "шифрованной файловой системы", которая уже возможна в Linux, но считаюсь со всеми проблемами, которые могут возникнуть при этом, возможно я расположусь в запертой комнате :-) . Если все эти напоминания сводят Вас с ума, что вполне может быть--это только лишь иллюстрация низкого уровня компьютерной безопасности, даже в Linux, если потенциальный взломщик имеет физический доступ к Вашему оборудованию.

3.2.4 Я забыл свой пользовательский пароль

Если обычный пользователь (не-администратор) забыл свой пароль, это не проблема, так как администратор может изменить любой пароль. Например, введя  (как администратор):
passwd barbara
получите приглашение на ввод нового пароля для "barbara" (без требования от администратора знания о том, какой был старый пароль). Если обычный пользователь (не-администратор) желает изменить свой пароль, он/а сначала должен ввести старый пароль. (Это сделано по соображениям безопасности, так никто не может изменить Ваш пароль, если Вы оставили свой терминал без присмотра.)

3.2.5 Запрещение или удаление учетной записи пользователя

Учетная запись пользователя может быть временно запрещена или навсегда удалена.

Для временного запрещения (lock) учетной записи пользователя не нужно менять его/её пароль. Только установите знак "*" в начале второго поля (перед зашифрованным паролем) в файле /etc/shadow .  "*" означает, что не разрешена регистрация для этой учетной записи. Когда Вы пожелаете восстановить учетную запись, всего лишь удалите "*" и учетная запись пользователя восстановится со старым паролем.

Здесь представлен пример из файла  /etc/shadow с паролем запрещенным для пользователя  "peter":

peter:*$1$narMEFm6$fhA1puOU422HiSL5aggLI/:11193:0:99999:7:-1:-1:134539228

Я могу также блокировать учетную запись следующей командой:

passwd peter -l

и разблокировать её такой командой

passwd peter -u

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

su doomed_user_login_name  #(su <имя пользователя>)
mail                                            #(проверка почты)
logout                    #(отключение пользователя от системы)

- удаляю пользовательскую запись и группу

userdel doomed_user_login_name        #(userdel <имя пользователя>)
groupdel doomed_user_login_name   #(groupdel <имя пользователя>)

Удаляю вхождение учетной записи пользователя в другие группы:

usermod -G doomed_user_login_name doomed_user_login_name

- удаляю пользовательский домашний каталог со всем содержимым включая подкаталоги:

rm -fr /home/doomed_user_login_name

3.2.6  У меня имеются проблемы с правами на файл. Как изменить владельца файла и права работы с ним?

Linux (как и любая UNIX-система) является безопасной, многопользовательской операционной системой, и это создает определенный уровень сложности в "правах на использование файлов". Проблемы с правами на файл могут привести к неожиданным и неприятным проблемам. Понимание  прав на файл является крайне важным для возможности администрировать любую многопользовательскую систему (независимо от того,что это UNIX или WinNT или Linux). Мой совет будет такой: изучите соглашение Linux (или любой UNIX) о правах на файл ; и Вы не пожалеете об этом.
Владельцы файлов.  Каждый файл (или каталог) принадлежит владельцу (обычно имя пользователя) и группе. Владельцем является тот, кто создал (или скопировал) файл. Группа часто состоит из одной персоны--владельца, и имеет идентичное имя, но не обязательно это так. Файл может быть удален (стерт) только владельцем файла, или членом группы, владеющей файлом, или администратором. Другие пользователи, однако, могут иметь разрешение на изменение или удаление содержимого файла, если им разрешено сделать это. Владелец и группа-владелец файла будет показана в результате вывода команды  ls -l  (="list in the long format"- список файлов в расширенном формате).Например, команда:
ls -l junk
выведет на мой экран:
-rwx------   1 yogin    inca           27 Apr 24 14:12 junk
Это показывает, что файл "junk" принадлежит владельцу "yogin" и группе "inca".
Владелец файла может быть изменен командой chown (change owner-изменить владельца) и chgrp (изменить группу), которая обычно выполняется под правами администратора:
chown peter junk
chgrp peter junk
ls -l junk
После выполнения трех вышеуказанных команд, команда  ls-l junk  выведет следующее на экран:
-rwx------   1 peter    peter           27 Apr 25 20:27 junk
Изменение владельца файла удобно если Вы перемещаете/копируете файлы как администратор для использования их другими пользователями. В конце Вашей операции Вы как правило заменяете владельца файла на соответствующего пользователя.
Права на пользование файлами.  Теперь, владелец файла может сделать файл доступным в трех режимах: чтение (r), запись (w) и выполнение (x) трем классам пользователей: владельцу (u), членам группы (g), остальным пользователям системы (o). Вы можете проверить текущие права на пользование используя команду:
ls -l filename
Если файл доступен всем пользователям (владельцу,группе,остальным) во всех трех режимах (чтение, запись,исполнение) это будет показано так:
-rwxrwxrwx
Пропустите первый знак "-" (этот знак показывает  "d" для каталогов, "-" для обычных файлов, "l" для ссылок,  "c" для симольных устройств, "b" для блочных устройств, "p" для именованных каналов напр., FIFO файлов, "f" для стэков напр., LIFO-файлов). После этого начального символа, первая тройка показывает права для владельца файла, вторая тройка показывает права для группы, которая владеет файлом, третья тройка показывает права для остальных пользователей. "Нет прав" показывается символом "-".  Ниже показан результат вывода на экран команды  ls -l на файле, собственником которого является администратор, для которого владелец имеет все права (администратор), но группа и остальные могут его только читать и запускать на выполнение:
drwxr-xr-x   2 root     root        21504 Apr 24 19:27 dev
Первый символ "d" показывает, что файл в действительности является каталогом.
Вы можете изменить права на файл, которым Вы владеете используя команду chmod (="change mode"- изменить режим). Например, Эта команда добавит права на чтение файлу "junk" для всех (=пользователь+группа+остальные):
chmod a+r junk
В вышеуказанной команде, вместо "a" (="all"-все), я могу использовать "u", "g" или "o" (="user"- пользователь, "group"-группа или "others"-остальные).  Вместо "+" (="add the permission"-добавить право), я могу использовать "-" или "=" ("remove the permission"-удалить право или "set the permission"-установить право). Вместо "r" (="read permission"-право на чтение),я могу написать "w" или "x" ("write permission"-право на запись или "execute permission"-право на выполнение).
Второй пример. Эта команда удалит право на выполнение файлу"junk" у остальных пользователей:
chmod o-x junk
Вместо символов, можно также использовать числа для указания прав. Чтобы понять, как это работает рассмотрите:

выполнение=1
запись=2
чтение=4

Итоговое право для класса пользователей есть сумма всех трех. Так:

0 = нет никаких прав (ни писать, ни читать,ни выполнять)(часто встречаемое)
1 = только выполнение (редко встречаемое)
2 = только запись  (редко встречаемое)
3 = запсиь и выполнение (редко встречаемое)
4 = только чтение (часто встречаемое)
5 = чтение и выполнение (часто встречаемое)
6 = чтение и запись (часто встречаемое)
7 = чтение,запись и выполнение (часто встречаемое).

Право для всех трех классов пользователей (владелец,группа, остальные) получается соединением трех цифр вместе в одно число. Например, команда
chmod 770 junk
даст владельцу и группе полные права, но нет никаких прав для других. Команда:
chmod 666 junk
дает всем трем классам пользователей (владелец,группа, остальные) права на чтение и запись (но не выполнение) файлу с именем "junk".  Обратите внимание на "666". Это достаточно часто используется и (для одной персоны по крайней мере,как я знаю) это служит доказательством, что  Linux (как и любая UNIX-система) это проделки дьявола >:-0.
Такая команда:
chmod 411 junk
даст владельцу право только читать, а группе и остальным только выполнять файл "junk". Это не кажется вполне полезным, но может показаться забавным, по крайней мере тем североамериканским пользователям, кто звонит по 411 (телефонный номер) для получения справки.  Напишите мне если Вы сможете придумать какие-нибудь другие веселые права (возможно  007?).
Цифровое представление прав на файл называется  "восьмеричным", потому что эти числа имеют в основании 8 (десятичная система базируется на 10).  Самая большая цифра в восьмеричной системе  7 (восьмеричная система имеет восемь цифр от 0 до 7, аналогично десятичной системе имеющей 10 цифр : от 0 до 9). Восьмеричное представление по-настоящему удобная запись для двоичного представления прав на файл, где каждое право отмечено флагом как "установлен" или  "запрещен" единицей или нулем и итоговое представление выглядит как строка нулей и единиц, как на диаграмме:
класс пользователей:                           владелец группа остальные
права в примере :                                 rwx     rw-      r--
отсутствующие права:                              ---     --x      -wx
двоичное представление прав:                      111     110      100
восьмеричное представление :                       7       6        4
 
Права на каталоги.
Понятие прав на каталоги различно для каталогов и "обычных" файлов. Для обычных файлов: r=право на чтение содержимого файла, w=право на изменеие содержимого файла, и x=право на выполнение файла.
Для каталогов: r=право на получение списка файлов в каталоге, w=право на создание или удаление файлов в каталоге, и x=право на доступ в каталог. С другой стороны, права для каталогов устанавливаются также, как и для обычных файлов.

Права на файл по умолчанию с помощью umask.  Когда новый файл создается, он получает права по умолчанию. В моей системе, они таковы:

-rw-r--r--
Это означает, что файл созданый пользователем может быть прочитан и записан им же;группа или остальные могут только читать его. До сих пор на моей RedHat системе, пользователи не могут читать файлы в домашних каталогах других пользователей,потому что права на домашний каталог такие :
drwx------
Я могу проверить права по умолчанию, даваемые вновь созданным файлам используя команду:
umask -S
(Опция  "-S" означает "символический" и сообщает команде  umask вывести на экран права в простой-для-чтения форме, вместо цифровой, которая установлена по умолчанию.)
Я могу изменить права на файлы по умолчанию для вновь создаваемых файлов, используя команду:
umask u=rw,g=,o=
которая даст владельцу права на чтение, запись вновь создаваемым файлам  (r+w), и не даст прав группе и остальным.
Используя числа для установки прав по умолчанию с помощью команды umask более сложно. Числа показывают права ,которые Вы забираете у пользователей (в противоположность к chmod).  Так:
umask 000
даст полные права каждому на вновь создаваемые файлы. Следующий пример дает права чтения и записи владельцу, и нулевые права всем остальным (это кажется то, что он и может хотеть):
umask 177

Чтобы сделать эти установки постоянными для всех пользователей системы, добавьте соответствующую строку в файл /etc/profile .

3.2.7 Мой mp3 плейер замолчал. Звук идет прерывистый (как установить suid).

MP3-плейер может не получает достаточных ресурсов процессора (их для плейера требуется много). Это может значит, что Ваш компьютер неважный. Или может Вы одновременно запустили слишком много программ, пожирающих ресурсы процессора. Или, чаще всего, Вам требуется запустить плейер с более высоким приоритетом . (Приоритет программы может быть установлен командой  nice -- прочтите man nice или info nice). Попробуйте запустить плейер как администратор--программы, запущенные администратором имеют более высокий приоритет, чем запущенные обычным пользователем. Если это решит проблему "заикания музыки",то установите  "suid" на праве выполнения файла, так все пользователи получат "эффективный идентификатор пользователя" владельца файла (обычно администратора) когда выполните эту установку, например:
chmod a+s /usr/bin/xmms
выполнит этот прием для программы  xmms . Теперь результат вывода проверки прав
ls -l /usr/bin/xmms
будет таким:
-rwsr-sr-x  1 root  root  908k Feb 22  2000 /usr/bin/xmms
Первый "s" указывает, что бит "substitute-user-id" (suid) (дословно переводится как "идентификатор заместителя пользователя") установлен. Второй "s" указывает, что бит "substitute-group-id" (sgid) ("идентификатор заместителя группы") также установлен.  Так тот, кто запустит на выполнение xmms получет эффективный идентификатор владельца программы и эффективный идентификатор группы-владельца, которые в указанном выше примере "root" в группе "root".
Установка suid для программы может стать дырой в безопасности Вашей системы. Это маловероятный случай на закрытой домашней сети и когда suid установлен для программы, источник которой хорошо просматривается. Однако, даже дома я не устанавливаю suid для кода, источник которого ненадежен, даже если инструкция по установке советует это сделать. Также, эта идея по определению плоха, чтобы установить suid слишком многим исполняющим программам в системе--это бросает вызов системе UNIX-безопасности.
Некоторые программы ,однако, требуют установки suid для правильного функционирования, например kppp (популярная утилита "ppp"-соединения через модем в графической оболочке KDE). Это потому что они требуют прямой доступ к аппаратуре--что позволено только администратору.

Если у Вас имеются постоянные проблемы с нормальной работой Вашей системы,или некоторое "оборудование реального времени" (например, записывающий CD) имеет склонность к сбою, попробуйте уменьшить число демонов (резидентных программ) на Вашей Linux-системе. Запустите (как администратор) setup (специфичная команда для RH) и запретите все "сервисы" которые Вам не требуются. В крайнем случае, Вы можете переключиться в режим командной строки, выгрузить графическую оболочку (команда  init 3 как администратор), и затем работа пойдет наверняуа лучше.

Для тех, кому требуется. чтобы их  Linux был "универсальной" операционной системой (рабочей станцией, сервером, офисным компьютером, игровой приставкой, мультимедиа-центром, и т.д., и все это одновременно), имеется "заплатки"(патчи) для ядра Linux : "low latency patch" и "pre-emptive kernel patch", которые агрессивно атакуют "скрытые" проблемы перегрузки системного ресурса.

Переход к части: 4.1 - Вопросы по загрузке.
На главную страницу