Шрифт:
Интервал:
Закладка:
Разное полезное:
♦ N u отменить последние N изменений;
♦ N Ctrl+r вернуть последние N отмененных изменений;
♦ U отменить изменения в последней строке;
♦ N r <символ> заменить N следующих символов на <символ>;
♦ N >> добавить отступ (Tab) в N следующих строк;
♦ N << удалить один отступ (Tab) из N следующих строк;
♦ :sh временно выйти в оболочку (вернуться — exit);
♦ :!<команда> выполнить команду оболочки.
Поиск файловБыстрый поиск имени программы можно выполнить прямо из командной строки: для этого введите первые буквы нужной вам команды и нажмите <Tab>. Если введенные вами буквы однозначно определяют команду или исполняемый файл, то ее имя появится в командной строке. Эта функция называется автозаполнением командной строки. Если не появилось ничего, нажмите <Tab> еще раз для вывода списка всех доступных команд, начинающихся со введенных букв. Если таких команд окажется больше сотни, у вас попросят подтверждения того, что вы действительно хотите увидеть их все.
В разных каталогах может оказаться несколько исполняемых файлов с одинаковыми именами. Какой из них будет исполнен? На этот вопрос отвечает команда which. Она просматривает каталоги, перечисленные в переменной окружения PATH, в поисках исполняемого файла с указанным именем, и выводит абсолютное имя первого встреченного из них.
Команда whereis ищет не только исполняемый файл, но и его справочные страницы и исходный код.
Команда locate ищет файл по образцу имени, опираясь на свою базу данных о файловой системе. Ее вариант с повышенной безопасностью slocate сохраняет данные о правах доступа к файлам, так что пользователь не увидит тех файлов, на которые у него нет прав. В дистрибутиве Fedora Core 3 команда locate представляет собой символическую ссылку на утилиту slocate.
Команда find ищет файл по его атрибутам в указанном каталоге и его подкаталогах на заданную глубину. Например, при установке операционной системы я отказался устанавливать файловый менеджер Midnight Commander, а теперь он мне понадобился. Для каждого из 4 компакт- дисков дистрибутива запускаю команду поиска по шаблону имени «mc*», то есть всех файлов, имена которых начинаются с mc:
$find /media -name mc*
/media/cdrecorder/Fedora/RPMS/mc-4.6.1-0.8.i386.rpm
В итоге на третьем диске найден пакет RPM. Об установке программного обеспечения из пакетов RPM будет сказано в главе 7.
Изменение прав доступа к файлуКак многопользовательская операционная система, ОС Linux содержит механизм разграничения доступа к данным, позволяющий как защитить данные одного пользователя от нежелательного вмешательства других, так и разрешить другим доступ к этим данным для совместной работы.
Как уже сказано, любой ресурс компьютера под управлением ОС Linux представляется как файл, поэтому мы будем говорить только о правах доступа к файлу.
По отношению к файлу пользователь может входить в одну из трех категорий: владелец, член группы владельца, все остальные. Для каждой из этих категорий есть свой набор прав доступа.
Первым владельцем файла становится его создатель. Дальше файл можно передать другому владельцу или в другую группу командой
chown [ключи] <новый_пользователь>[:новая_группа] <файл>
или
chgrp [ключи] <новая_группа> <файл>
В некоторых реализациях Linux передать файл другому владельцу имеет право только суперпользователь, а в других — также его текущий владелец.
Набор прав доступа состоит из прав на чтение, запись и исполнение файла. В символьном представлении он выглядит как строка «rwx», где вместо любого символа может стоять дефис. Буква означает наличие права (r — чтение, w — запись, x — исполнение), дефис — его отсутствие.
Очевидно, что эти три бита могут быть записаны еще и как восьмеричное число. Так, права доступа r-x (чтение и исполнение без записи) понимаются как три двоичные цифры 101 или как восьмеричная цифра 5. Численное представление прав доступа называется абсолютным, или двоичной маской.
Полная строка прав доступа в символьном представлении устроена так:
<права_владельца><права_группы><права_остальных>
В абсолютном представлении права владельца являются старшим разрядом восьмеричного числа, права группы — вторым и права остальных — третьим. Так, права rwxr-x--x выглядят как число 111 101 001, или 751.
Команда изменения прав доступа chmod понимает как абсолютное, так и символьное указание прав.
Назначим файлу /home/den/README права rw-r-----, то есть разрешим себе чтение и запись, группе только чтение, остальным пользователям — ничего:
$cd ~ # переход в свой домашний каталог
$chmod 640 README # 110 100 000 == 640
$ls -l README
-rw-r----- 1 den users 0 Feb 14 19:08 /home/den/README
В символьном представлении можно явно указывать, кому какое право мы хотим добавить, отнять или присвоить. Добавим право на исполнение файла README группе и всем остальным:
$chmod go+x README
$ls -l README
-rw-r-x--x 1 den users 0 Feb 14 19:08 /home/den/README
Формат символьного режима:
chmod <категория><действие><набор_прав> <файл>
Возможные значения аргументов команды представлены в таблице 2.3.
Аргументы команды chmod в символьном режиме Таблица 2.3
Аргумент Значение Категория u Владелец g Группа владельца o Прочие a Все пользователи, то есть «a» эквивалентно «ugo» Действие + Добавить набор прав - Отменить набор прав = Назначить набор прав Право r Право на чтение w Право на запись x Право на исполнение s Право смены идентификатора пользователя или группы t Бит прилипчивости (sticky-бит) u Такие же права, как у владельца g Такие же права, как у группы o Такие же права, как у прочихНазвание бита прилипчивости унаследовано от тех времен, когда объем оперативной памяти был маленьким, а процесс подкачки медленным. Этот бит позволял оставлять небольшие часто используемые программы в памяти для ускорения их запуска. Сейчас его значение переосмыслено: этот бит, установленный для каталога, приводит к тому, что удалять файлы из этого каталога могут только владелец файла и владелец каталога. Обычно это используется в каталогах, открытых для записи всем (например, /tmp).
Права смены пользователя и группы (SUlD-бит и SGID-бит) означают следующее. Обычно исполняемый файл (программа или командный сценарий) получает те же права на доступ к файлам, что и пользователь, который запустил его на выполнение. Но у этого файла есть еще и владелец, полномочия которого могут быть совсем другими. Наличие одного из этих битов позволяет выполняющейся программе пользоваться полномочиями владельца программного файла или члена его группы
Так, команда su (substitute user), позволяющая «стать» другим пользователем без завершения своего сеанса и входа под новым именем (это нужно, например, чтобы быстро выполнить административную задачу от имени суперпользователя), имеет следующие атрибуты:
$ls -l `which su`
-rwsr-xr-x 1 root root [размер, дата, время] /bin/su
Биты «x» сообщают, что любой пользователь может запустить эту программу, а бит «s» — о том, что во время ее выполнения он будет пользоваться правами суперпользователя root (если, конечно, знает пароль).
Обратите внимание на применение обратных апострофов: они нужны для того, чтобы направить вывод команды which на вход команды ls.
Следует учитывать, что программы, требующие установления SUID (или SGID) для своей работы, являются потенциальными дырами в системе безопасности. Представьте такую ситуацию: у вас в системе установлена программа superformat, которая предназначена для форматирования дисков. Создание файловой системы, пусть даже на дискете, — это привилегированная операция, требующая полномочий суперпользователя.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение