Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx»
Шрифт:
14.3 Получение справки
Начинающих пользователей Linux очень часто любят пугать так называемыми манами. Дело в том, что man — это система справки о командах для терминала. Пользоваться ей очень легко, просто наберите в терминале
man команда
Например:
man ls
Появится собственно текст справки [52] , разбитый на разделы. Перемещаться по нему можно с помощью стрелок и клавиш PgUp и PgDown, а для выхода просто нажмите Q.
52
Или вам сообщат, что справочной страницы для этой команды нет. Хотя в основном информация есть по всем командам, кроме встроенных терминальных, вроде cd.
Кроме man-страниц
утилита --help
Например:
ls --help
Есть и другие способы получения помощи, например похожая на man утилита info. Но чаще всего наиболее полную информацию о программе можно получить именно из man-страниц, а краткую справку — указав ключ – -help при вызове [54] .
53
Если вы вдруг не знаете — практически любая консольная команда является на самом деле отдельной программой, а не какой-либо встроенной возможностью терминала. Фактически, только cd является частью терминала, а для всех остальных команд можно легко найти основной исполняемый файл, набрав в терминале
which команда
И даже which — это тоже отдельная программа. Если вы вникните во всё это — то, надеюсь, начнёте лучше понимать Linux в целом и терминал в частности. Но если вы считаете всё это слишком сложным, то можете просто использовать терминал когда потребуется и ни о чём не думать.
54
Как я уже упоминал в предыдущей сноске — каждая команда по сути является отдельной программой. Так вот, справка по – -help всегда встроена в саму программу, а man и info берут информацию из отдельных файлов документации, которые не всегда поставляются вместе с приложением. Зачастую, правда, их можно поставить отдельно с помощью соответствующего пакета с припиской – doc, но об установке пакетов я ещё не говорил, так что просто имейте это ввиду.
14.4 Разные полезности терминала
На всякий случай немного коснусь ещё одной темы. Бывает так, что вы что-то запустили в терминале и хотите прервать работу этого чего-то. Обычно это сделать очень просто, достаточно нажать на клавиатуре сочетание клавиш Ctrl-C [55] .
Есть и другие управляющие сочетания, например Ctrl-D посылает сигнал конца файла запущенному приложению, а без запущенных утилит делает тоже, что и терминальная команда exit. Ну а если вы хотите более подробно управлять работающими программами, то посмотрите на системный монитор htop, который, правда, нужно доустанавливать отдельно.
55
Это особенно актуально при случайном запуске каких-нибудь крайне опасных команд с неправильными аргументами, например
sudo rm -rf /
Кстати, знакомьтесь, эта команда удалит абсолютно все файлы с вашего компьютера. Именно поэтому не стоит её никогда выполнять. Даже если вы прервёте её выполнение на середине — систему вы восстановить уже не сможете. Я пишу это лишь затем, чтобы показать, что несмотря на всю мощь терминала (или благодаря ей) при выполнение консольных команд самое главное — это внимательность пользователя. Никогда не выполняйте команд, назначения которых вы не понимаете. Например, команда
echo “test” | perl -e ’$??s:;s: s;;$?::s;;=]=>%-{<-|}<&|‘{;;y; -/:-@[-‘{-};‘-{/“ -;;s;;$_;see’
делает ровно то же, что и упоминаемая выше
rm -rf /
И самое ужасное, что запустив её вы даже ничего не заметите до тех пор, пока она не закончит работу и вы не обнаружите пропажу абсолютно всех своих файлов. Так что всегда будьте внимательны!
14.5 История введённых команд
Напоследок хочу лишь сказать, что терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторного исполнения введённых ранее команд. А посмотреть всю историю можно командой
history
У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и номер нужной команды:
Рис. 14.10: Работа с историей команд.
А повторить предыдущую набранную команду можно просто написав два восклицательных знака !!.
Мне кажется, что с непривычки
уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга, существуют ещё тысячи полезных команд и интересных приёмов работы в терминале. С помощью терминала можно редактировать файлы, слушать музыку, смотреть видео и выполнять ещё массу повседневных операций, но описание всего этого выходит далеко за рамки данного руководства.На этом я пожалуй закончу краткое введение в богатейший мир консольных команд Linux и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы.
Глава 15
Пользователи, группы и права доступа
Теперь немного поговорим о разграничении прав доступа к различным элементам. Описанный в этой главе механизм является основополагающим в Linux и соответственно в Ubuntu, так что читайте внимательно.
15.1 Пользователи и группы
Linux в целом и Ubuntu в частности — системы многопользовательские, т. е. на одном компьютере может быть несколько различных пользователей, каждый со своими собственными настройками, данными и правами доступа к различным системным функциям.
Кроме пользователей в Linux для разграничения прав существуют группы. Каждая группа так же, как и отдельный пользователь, обладает неким набором прав доступа к различным компонентам системы и каждый пользователь-член этой группы автоматически получает все права группы. То есть группы нужны для группировки пользователей по принципу одинаковых полномочий на какие-либо действия, вот такая тавтология. Каждый пользователь может состоять в неограниченном количестве групп и в каждой группе может быть сколько угодно пользователей [56] .
56
Однако как минимум в одной группе каждый пользователь состоит всегда. Это так называемая основная группа, по умолчанию она носит такое же имя, как и у самого пользователя.
Например, в Ubuntu есть одна очень полезная группа: admin. Любой член этой группы получает неограниченные административные привилегии. Я уже рассказывал про роль администратора в Ubuntu, так что если вы уже успели забыть кто это, можете освежить свои знания, прочитав соответствующую главу. Создаваемый при установке Ubuntu пользователь автоматически становится членом группы admin [57] .
57
И именно поэтому и только по этой причине он собственно и является администратором.
Управлять пользователями и группами можно с помощью специального инструмента, находящегося в меню Система->Администрирование->Пользователи и группы ( Рис. 15.1 ).
Вообще основной областью применения механизма пользователей и групп является не совсем разграничение доступа к различным функциям системы, а скорей разграничение доступа к файлам на винчестере [58] . Вот об этом я и постараюсь рассказать дальше.
58
Но поскольку все запускаемые приложения, включая программы редактирования настроек и системные сервисы, являются обычными файлами, то через разграничение доступа к файлам на винчестере можно легко управлять доступом к различным функциям.
Рис. 15.1: Программа управления пользователями и группами.
15.2 Права доступа в Linux
Любой файл и каталог в Linux имеет пользователя-владельца и группу-владельца. То есть любой файл и каталог принадлежит какому-то пользователю системы и какой-то группе. Кроме того, у любого файла и каталога есть три группы прав доступа: одна для пользователя-владельца, одна для членов группы-владельца и одна для всех остальных пользователей системы. Каждая группа состоит из прав на чтение, запись и запуск файла на исполнение. Для каталогов право на исполнение и право на чтение всегда идут вместе и означают одно и то же.
То есть, изменяя владельцев того или иного файла и различные группы прав доступа к нему, можно гибко управлять доступом к этому файлу. Например, сделав себя владельцем некоего файла и полностью запретив к нему доступ всем, кроме пользователя-владельца, можно скрыть содержимое и запретить изменение этого файла для всех других пользователей. Такая же штука проходит и с каталогами. Можно, например, запретить записывать файлы в каталог, или вообще скрыть его содержимое от посторонних глаз.
В данный момент нас интересует одно крайне важное следствие из подобной организации прав доступа в системе. Конкретному пользователю Ubuntu принадлежит только его домашний каталог и всё его содержимое. В системе этот каталог находится по адресу /home/имя_пользователя. Все остальные файлы системы, включая все приложения, системные настройки и т. д., располагающиеся вне /home, принадлежат преимущественно root. Помните, я говорил, что root — это пользователь с неограниченными привилегиями, непосредственное использование которого в Ubuntu запрещено. Так вот, все системные файлы и каталоги принадлежат root недаром, им всем выставлены права на изменение только для пользователя-владельца, таким образом никто, кроме root, не может вмешаться в работу системы и что-то поменять в системных файлах.