- •1 Цель работы
- •2 Порядок выполнения работы
- •Методические указания.
- •1 Цель работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •4. Оформите отчет, который должен содержать:
- •Как быстрее выключить компьютер
- •Отмена автоматического запуска программ
- •Очистим папку автозагрузка (startup)
- •Отменим автозапуск программ в реестре
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Оформить отчет, который должен содержать:
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Задания к работе.
- •Процессы в Windows
- •Msconfig
- •Используйте приоритеты!
- •Уберите "скрытые" компоненты windows
- •Сервисы
- •Как отключать
- •4. Команда top
- •Сигналы
- •15 Примеров использования в linux команды top
- •2. Уничтожаем задачу без выхода из команды top — нажимаем k
- •3. Переопределяем приоритет процесса без выхода из команды top — нажимаем r
- •4. Изображаем выбранного пользователя в выходных данных команды top — используем top -u
- •5. Изображаем все процессоры / ядра в выходных данных команды top — нажимаем 1 (один)
- •6. Обновление по требованию выходных данных команды top системы unix (или) изменение интервала обновления данных
- •7. Выделение работающих процессов в выходных данных команды top системы Linux — нажмите z или b
- •9. Выход из команды top после заданного числа итераций — используем top -n
- •10. Выполнение команды Top в потоковом режиме
- •12. Получение помощи Help команды Top в командной строке и интерактивно
- •13. Уменьшение числа процессов, выдаваемых в выходных данных команды top — нажмите n
- •14. Изменение заголовка данных, выдаваемых командой Top, и увеличение числа изображаемых процессов
- •15. Сохраните конфигурационные настройки команды top — нажмите w
- •Введение в сервисы
- •Ip6tables и iptables
- •Irqbalance
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Методические указания.
- •3. Запуск, остановка и приостановка функционирования служб
- •4. Отменим автозапуск программ в реестре
- •5. Отключение служб, автоматически запускающийся при загрузке
- •Задание 1
- •Методические указания:
- •Задание 2
- •Методические указания:
- •Задание 3.
- •Оптимизация использования физической и виртуальной памяти сервера
- •Рекомендуемые методы работы
- •3 Методические указания
- •Предостережение
- •5 ДемоНстрация
- •1 Цель работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Оформить отчет, который должен содержать:
- •4. Методические указания
- •Заключение
- •Часть 1
- •1 Цель работы
- •2 Порядок выполнения работы
- •3 Методические указания
- •Генерируем пару ключей gpg
- •Подписываем ключ gpg
- •Шифрование файлов с помощью gpg
- •Расшифровываем файлы с помощью gpg
- •Импорт ключей gpg
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Задания к работе.
- •1 Цель работы
- •2 Порядок выполнения работы
- •3 Задание к работе
- •Защита реестра от несанкционированного удаленного доступа
- •Локальная политика безопасности Политика паролей
- •Политика блокировки учетной записи
- •Политика аудита
- •Назначение прав пользователя
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Задания к работе.
- •2 На самом деле ресурсы будут выделены под одно устройство. Второе будет отключено и скрыто. —
- •Дополнительные возможности
- •1 Цель работы
- •2 Порядок выполнения работы
- •2 Порядок выполнения работы
Заключение
Вы узнали о способах управления общими ресурсами. Вы познакомились с созданием общих ресурсов, управлением разрешениями, настройкой автономных файлов и прекращением общего доступа при помощи оснастки консоли управления Microsoft «Общие папки» и утилит командной строки. Помимо этого вы научились управлять файлами и сессиями общих ресурсов и закрывать их.
Практическая работа № 19-20 Команды обращения к файловой системе.
1 ЦЕЛЬ РАБОТЫ ознакомиться с командами обращения к файловой системе UNIX.
Порядок выполнения:
Проделайте задания части 1
Напишите свою пр. работу по образу ч. 1, используя методические указания (по всем сценариям), используя свои названия файлов, каталогов и т. п. . Можно использовать раздел : ПРИМЕРНЫЕ СЦЕНАРИИ
Выполните задания для самоподготовки
Напишите отчет по проделанной работе
Часть 1
Загрузить терминал Unix.
Выполнить команды Unix:
Просмотреть мое сетевое имя:
$ who am i
Просмотреть версию ОС UNIX: $ uname
Просмотреть системные дату и время: $ date
Просмотреть имя текущего каталога: $ pwd
Ответ: /home/user1
Просмотреть содержимое текущего каталога без параметров:
$ ls
Просмотреть содержимое текущего каталога с выводом в одну колонку:
$ ls -1
Просмотреть информацию о создателях файлов:
$ ls -author
Просмотреть полную информацию о файлах домашнего каталога:
$ ls -l
Просмотреть содержимое текущего каталога c учетом скрытых файлов:
$ ls -A
Просмотреть содержимое текущего каталога c сортировкой по размеру:
$ ls -l -S
Просмотреть содержимое текущего каталога c сортировкой по дате:
$ ls -l -t
Вызвать справку о команде ls (выход из справки q):
$ man ls
Просмотреть тип объекта Документы:
$ file Документы
Создать новый каталог sun:
$ mkdir sun
Создать еще один новый каталог moon.
Открыть новый каталог sun:
$ cd sun
Просмотреть имя текущего каталога.
Создать новый каталог star.
Открыть каталог star.
Просмотреть имя текущего каталога. Должно быть: /home/user1/sun/star
Создать в каталоге star новый текстовый файл tt1.txt с помощью редактора ED:
$ ed tt1.txt
?
: a [команда добавления текста в файл]
Фамилия имя
Группа
Предмет: “UNIX”
Тема: “Команды обращения к файловой системе”
Версия UNIX:
Мое сетевое имя:
Мой текущий каталог:
Дата:
Тип объекта “Документы”:
. [точка набирается в пустой строке]
w [команда записи файла]
q [команда выхода из текстового редактора]
$
Просмотреть содержимое текущего каталога.
Просмотреть содержимое созданного текстового файла:
$ cat tt1.txt
Просмотреть тип созданного файла:
$ file tt1.txt
Перейти из каталога star в каталог sun:
$ cd /home/user1/sun
Просмотреть имя текущего каталога.
Просмотреть из каталога sun содержимое каталога star, указав в команде просмотра путь к каталогу star.
Скопировать файл из каталога star в каталог moon:
$ cp <откуда> <куда>
Открыть каталог moon.
Просмотреть имя текущего каталога.
Просмотреть содержимое каталога moon.
Переименовать файл tt1.txt из каталога moon на файл text2
$ mv tt1.txt text2
Просмотреть содержимое переименованного текстового файла text2.
Просмотреть тип данных файла text2.
Создать копию файла text2 с именем text3.
Определить размер файла text2.
Дописать в файл text3 строку текста с указанием размера файла text2.
Выйти в корневой каталог:
$ cd /
Просмотреть имя текущего каталога.
Выйти из режима терминала:
$ exit
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
Изучаемые команды: cat,cd,cp,cut,echo,find,grep,head,ln,ls,mkdir,mv,paste,pwd,sort,tail,tar,touch,uniq,wc
Сценарий: Знакомство с каталогами UNIX
В этом сценарии будет освещено знакомство с командами UNIX, изучение файловой системы и базовых каталогов, создание рабочей среды в домашнем каталоге пользователя для выполнения всех последующих команд.
Начальные условия: Командная строка после входа в систему.
Получить имя текущего каталога с помощью команды pwd:
[user@localhost ~]$ pwd
/home/user/
Перейти в корневой каталог с помощью команды cd /:
[user@localhost ~]$ cd /
[user@localhost /]$ pwd
/
Отметить, как изменилась строка приглашения.
Посмотреть содержимое корневого каталога с помощью команды ls:
[user@localhost /]$ ls
bin dev home lib mnt proc sbin sys usr
boot etc image media opt root srv tmp var
Сравнить с использованием «расширенного» вывода команды ls -F:
[user@localhost /]$ ls -F
bin/ dev/ home/ lib/ mnt/ proc/ sbin/ sys/ usr/
boot/ etc/ image/ media/ opt/ root/ srv/ tmp/ var/
Каталоги отмечаются синим цветом и знаком «/» после имени.
Посмотреть содержимое домашнего каталога с помощью команды ls ~:
[user@localhost /]$ ls ~
Documents tmp
Домашний каталог содержит набор стандартных каталогов.
Вернуться в домашний каталог с помощью cd без параметров:
[user@localhost /]$ cd
[user@localhost ~]$
Создать каталог test с помощью команды mkdir test:
[user@localhost ~]$ mkdir test
Посмотреть обновлённое содержимое домашнего каталога ls:
[user@localhost ~]$ ls
Documents test tmp
Создать подкаталог subtest в каталоге test командой mkdir test/subtest:
[user@localhost ~]$ mkdir test/subtest
Посмотреть содержимое домашнего каталога и его подкаталогов с помощью ключа рекурсивного просмотра -R в команде ls -R:
[user@localhost ~]$ ls -R
.:
Documents test tmp
./Documents:
./test:
subtest
./test/subtest:
./tmp:
Сценарий: Изучение типов файлов в UNIX
В этом сценарии рассматриваются типы файлов в UNIX: простые файлы, каталоги, ссылки. Изучаются команды создания и копирования файлов. Показывается разница между жесткими и символическими ссылками, между копированием и переносом файла.
Начальные условия: Командная строка. Каталог test после предыдущего сценария.
Cоздать пустой файл с помощью команды touch first.txt:
[user@localhost test]$ touch first.txt
[user@localhost test]$ ls
first.txt subtest
Добавить строку текста в конец файла с помощью команды echo "Hello, world" >> first.txt и перенаправления вывода:
[user@localhost test]$ echo "Hello, world" >> first.txt
Посмотреть содержимое файла с помощью команды cat first.txt:
[user@localhost test]$ cat first.txt
Hello, world
[user@localhost test]$
Посмотреть расширенную информацию о каталоге, используя ключ -l команды ls. ls -l test:
[user@localhost test]$ ls -l
total 4
-rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest
Добавить псевдоним командной оболочки, чтобы сократить размер команды, с помощью команды alias ls='ls -F -l':
[user@localhost test]$ alias ls='ls -F -l'
[user@localhost test]$ ls test
total 4
-rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest
Посмотреть глубже на каталог test, используя ключи -a и -i. ls -a -i
[user@localhost test]$ ls -a -i
total 4
1014 drwxr-xr-x 3 user user 100 Feb 14 20:07 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Первый столбец — номера индексных узлов файловой системы. Третий столбец — число жёстких ссылок файла.
Скопировать файл с помощью команды cp first.txt copy1.txt:
[user@localhost test]$ cp first.txt copy1.txt
[user@localhost test]$ ls -a -i
total 8
1014 drwxr-xr-x 3 user user 120 Feb 14 20:33 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Новый файл имеет свой собственный индексный узел.
Переименовать файл с помощью команды mv first.txt orig.txt. mv first.txt orig.txt:
[user@localhost test]$ mv first.txt orig.txt
[user@localhost test]$ ls -a -i
total 8
1014 drwxr-xr-x 3 user user 120 Feb 14 20:37 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 orig.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Отметим, что изменилось только имя файла, все остальные атрибуты остались прежними.
Создать жёсткую ссылку командой ln orig.txt copy2.txt:
[user@localhost test]$ ln orig.txt copy2.txt
[user@localhost test]$ ls -a -i
total 12
1014 drwxr-xr-x 3 user user 140 Feb 14 20:41 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Добавилась ещё одна ссылка на тот же файл, число ссылок увеличилось на 1.
Создать символическую ссылку командой ln -s orig.txt orig.lnk:
[user@localhost test]$ ln -s orig.txt orig.lnk
[user@localhost test]$ ls -a -i
total 12
1014 drwxr-xr-x 3 user user 160 Feb 14 20:45 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt
1083 lrwxrwxrwx 1 user user 8 Feb 14 20:45 orig.lnk -> orig.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Новый файл имеет новый индексный узел и размер, равный имени файла orig.txt.
Сравним содержимое файлов при обращении к ним по имени:
[user@localhost test]$ cat orig.txt
Hello, world.
[user@localhost test]$ cat copy2.txt
Hello, world.
[user@localhost test]$ cat orig.lnk
Hello, world.
К одним и тем же данным можно обратиться через жесткую или символическую ссылку.
Сценарий: Поиск системных журналов
В этом сценарии изучается команда поиска файлов и каталогов.
Начальные условия: Командная строка, каталог test после прошлого сценария.
Вывести список всех файлов и каталогов в текущей директории, включая содержимое подкаталогов с помощью команды find:
[user@localhost test]$ find
.
./orig.lnk
./copy2.txt
./orig.txt
./copy1.txt
./subtest
Найти все файлы и дериктории в текущем каталоге и ее подкаталогах, которые начиняются на «o» с помощью команды find -name "o*":
[user@localhost test]$ find -name "o*"
./orig.lnk
./orig.txt
Найти все файлы и каталоги в каталоге /etc и его подкаталогах, которые начиняются на «o» с помощью команды find /etc -name "o*":
[user@localhost test]$ find /etc -name "o*"
find: /etc/tcb: Permission denied
find: /etc/default: Permission denied
find: /etc/buildreqs: Permission denied
...
Список найденных файлов может быть слишком большим и для его просмотра можно воспользоваться «прокруткой» терминала с помощью клавиш Shift-PgUp и Shift-PgDn.
Вы увидели множество сообщений об ошибках доступа («Permission denied»), которые можно подавить с помощью перенаправления ошибок следующим образом: find /etc -name "o*" 2>/dev/null
[user@localhost test]$ find /etc -name "o*" 2>/dev/null
/etc/modprobe.d/options
/etc/modutils.d/oss
/etc/net/ifaces/default/fw/options
/etc/net/ifaces/default/options
...
/etc/pam.d/other
/etc/rc.d/init.d/outformat
Найти все каталоги в /etc, которые начинаются на «o» с помощью команды find /etc -name "o*" -a -type d 2>/dev/null:
[user@localhost test]$ find /etc -name "o*" -a -type d 2>/dev/null
/etc/net/options.d
/etc/openssh
/etc/openssl
/etc/opt
Найти все обычные файлы в каталоге /var и его подкаталогах, заканчивающиеся на «log»:
[user@localhost test]$ find /var -name "*log" -a -type f 2>/dev/null
/var/log/Xorg.0.log
/var/log/faillog
/var/log/lastlog
Создать каталог logs с помощью команды mkdir logs:
[user@localhost test]$ mkdir logs
Скопировать найденные файлы в локальный каталог с помощью параметра -exec команды find. Для этого выполнить: find /var -name "*log" -a -type f -exec cp {} test/logs/ 2>/dev/null:
[user@localhost test]$ find /var -name "*log" -a -type f -exec cp {} test/logs/ 2>/dev/null
[user@localhost test]$ ls test/logs
итого 789
-rw-r----- 1 user users 601033 Окт 16 18:37 emerge.log
-rw-r--r-- 1 user users 292292 Окт 16 18:37 lastlog
-rw-r--r-- 1 user users 37383 Окт 16 18:37 Xorg.0.log
Были скопированы все файлы, права на чтение которых у нас есть.
Сценарий: Архивирование и деархивирование файлов и каталогов
В этом сценарии изучается команда архивирования файлов и каталогов. Командная строка, каталог test после прошлого сценария.
Начальные условия:
Перейти в домашний каталог с помощью команды cd:
[user@localhost test]$ cd
[user@localhost ~]$
Создать архив с именем test.tar.gz с применением сжатия, содержащий каталог test с помощью команды tar -czf test.tar.gz test:
[user@localhost ~]$ tar -czf test.tar.gz test
[user@localhost ~]$ ls
drwxr-xr-x 4 user users 208 Окт 16 18:36 test/
-rw-r--r-- 1 user users 79173 Окт 16 18:49 test.tar.gz
Создать новый каталог для содержимого архива командой mkdir test2:
user@desktop ~ $ mkdir test2
Перейти в новый каталог с помощью команды cd test2:
user@desktop ~ $ cd test2
Развернуть содержимое архива в текущий каталог с помощью команды tar -xzf ../test.tar.gz:
user@desktop test2 $ tar -xzf ../test.tar.gz
Убедиться, что содержимое распакованного архива совпадает с оригинальныйм каталогом. Ввести команду ls -l -F:
user@desktop test2 $ ls -l -F
итого 0
drwxr-xr-x 4 user users 208 Окт 16 18:36 test/
user@desktop test2 $ ls -l -F test
итого 12
-rw-r--r-- 1 user users 13 Окт 15 20:54 copy1.txt
-rw-r--r-- 2 user users 13 Окт 15 20:48 copy2.txt
drwxr-xr-x 2 user users 136 Окт 16 18:37 logs/
lrwxrwxrwx 1 user users 8 Окт 16 18:54 orig.lnk -> orig.txt
-rw-r--r-- 2 user users 13 Окт 15 20:48 orig.txt
drwxr-xr-x 2 user users 48 Окт 13 21:33 subtest/
Сценарий: Cоздание новых текстовых файлов
В этом сценарии изучаются команды для создания и модифицирования текстовых файлов. Командная строка.
Начальные условия:
Ввести команду echo "One line":
user@desktop test $ echo "One line"
One line
Данная команда принимает строку в виде аргумента и выводит её на стандартный вывод.
Ввести ту же команду, но перенаправить вывод в файл second.txt с помощью «>». Ввести команду echo "One line" > second.txt:
user@desktop test $ echo "One line" > second.txt
Добавить в конец файла second.txt строку «A line» с помощью другого перенаправления echo "A line" >> second.txt:
user@desktop test $ echo "A line" >> second.txt
Вывести содержимое файла с помощью команды cat second.txt:
user@desktop test $ cat second.txt
One line
A line
С помощью команды cat можно создавать многострочные файлы —, если переопределить вывод программы в файл и вводить текст до нажатия Ctrl-D (конец ввода). Ввести команду cat >multiline.txt и набрать текст
user@desktop test $ cat >multiline.txt
Simple text:
blah-blah-blah
1 2 3 4 5 6 7 8 9 0
bye!
(Ctrl+D)
user@desktop test $
Убедиться, что содержимое файла совпадает с введённым текстом, включая все переводы строки. Для этого ввести команду cat multiline.txt
user@desktop test $ cat multiline.txt
Simple text:
blah-blah-blah
1 2 3 4 5 6 7 8 9 0
bye!
Основным назначением команды cat является объединение файлов, имена которых передаются как аргументы командной строки. Объединить файлы с помощью команды cat orig.txt second.txt multiline.txt > big.txt:
user@desktop test $ cat orig.txt second.txt multiline.txt > big.txt
Убедиться, что новый файл содержит строки из перечисленных файлов с помощью команды cat big.txt:
user@desktop test $ cat big.txt
Hello, world
One line
A line
Simple text:
blah-blah-blah
1 2 3 4 5 6 7 8 9 0
bye!
Сценарий: Разрезание и склеивание файлов
В данном сценарии изучается, как выделять информацию, разбитую на части с помощью специального символа-разделителя (например, прообела или символа :), из файлов и создавать новые структурированные файлы.
Начальные условия: Командная строка.
Посмотреть содержимое файла /etc/passwd, в котором содержится информация о пользователях системы, с помощью команды cat /etc/passwd:
user@desktop test $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
adm:x:3:4:adm:/var/adm:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
...
Каждая строка хранит запись об отдельном пользователе. Запись состоит из полей, разделённых символом «:».
Выделить первый столбец в каждой записи, установив разделитель в «:», с потощью команды cat /etc/passwd | cut -f1 -d::
user@desktop test $ cat /etc/passwd | cut -f1 -d:
root
bin
daemon
adm
lp
sync
shutdown
...
Отсортировать список пользователей по алфавиту с помощью команды cat /etc/passwd | cut -f1 -d: | sort:
user@desktop test $ cat /etc/passwd | cut -f1 -d: | sort
adm
alias
apache
at
bin
cron
cyrus
...
Выделить седьмой столбец в каждой записи, соответствующий командной оболочке пользователя, с помощью команды cat /etc/passwd | cut -f7 -d:
user@desktop test $ cat /etc/passwd | cut -f7 -d:
/bin/bash
/bin/false
/bin/false
/bin/false
/bin/false
/bin/sync
...
Список содержит много повторяющихся строк.
Удалить повторяющиеся строки командой cat /etc/passwd | cut -f7 -d: | uniq:
user@desktop test $ cat /etc/passwd | cut -f7 -d: | uniq
/bin/bash
/bin/false
/bin/sync
/sbin/shutdown
/sbin/halt
/bin/false
...
Некоторые повторяющиеся строки остались, так как сравниваются только последовательные строки.
Добиться полной уникальности, предварительно отсортировав строки с помощью команды sort. Ввести команду cat /etc/passwd | cut -f7 -d: | sort | uniq:
user@desktop test $ cat /etc/passwd | cut -f7 -d: | sort | uniq
/bin/bash
/bin/false
/bin/sync
/dev/null
/sbin/halt
/sbin/shutdown
Выделить первый и седьмой столбец файла /etc/passwd в отдельные файлы. Для этого ввести команды cat /etc/passwd | cut -f1 -d: > users и cat /etc/passwd | cut -f7 -d: > shells:
user@desktop test $ cat /etc/passwd | cut -f1 -d: > users
user@desktop test $ cat /etc/passwd | cut -f7 -d: > shells
Объединить результаты с помощью команды paste users shells:
user@desktop test $ paste users shells
root /bin/bash
bin /bin/false
daemon /bin/false
adm /bin/false
lp /bin/false
sync /bin/sync
...
Сценарий: Быстрый анализ текстов
В данном сценарии изучаются команды, которые позволяют провести первичный анализ файла: с чего он начинается, как заканчивается и каков его размер.
Начальные условия: Командная строка.
Получить число строк в файле /etc/passwd с помощью команды wc -l /etc/passwd :
user@desktop test $ wc -l /etc/passwd
44 /etc/passwd
Или другим способом: посчитав число слов в созданном ранее файле users с помощью команды cat users | wc -w:
user@desktop test $ cat users | wc -w
44
Посмотеть первые несколько строк длинного файла с помощью команды head logs/Xorg.0.log:
user@desktop test $ head logs/Xorg.0.log
X Window System Version 6.8.2
Release Date: 9 February 2005
X Protocol Version 11, Revision 0, Release 6.8.2
Build Operating System: Linux 2.6.13-gentoo i686 [ELF]
Current Operating System: Linux thinkpad 2.6.13-gentoo #1 Wed Sep 7 01:03:14 MSD 2005 i686
Build Date: 08 October 2005
Before reporting problems, check http://wiki.X.Org
to make sure that you have the latest version.
Module Loader present
Аналогично, посмотеть последние несколько строк с помощью команды tail logs/Xorg.0.log:
user@desktop test $ tail logs/Xorg.0.log
(II) RADEON(0): [RESUME] Attempting to re-init Radeon hardware.
(II) RADEON(0): [agp] Mode 0x1f000201 [AGP 0x8086/0x3340; Card 0x1002/0x4c66]
(II) Mouse1: ps2EnableDataReporting: succeeded
SetClientVersion: 0 8
SetGrabKeysState - disabled
SetGrabKeysState - enabled
(II) 3rd Button detected: disabling emulate3Button
SetClientVersion: 0 8
SetGrabKeysState - disabled
SetGrabKeysState - enabled
Это бывает полезно при просмотре системных журналов — в них самые последние события содержатся в конце файлов.
Сценарий: Поиск строк по регулярным выражениям
В данном сценарии рассматривается практическое использование регулярных выражений для поиска по текстовым файлам.
Начальные условия: Командная строка. Каталог test/log с найденными системными журналами.
Среди найденных системных журналов посмотреть файл журнала загрузки графичской системы XFree86.0.log с помощью команды less test/log/XFree86.0.log:
user@desktop ~ $ less test/log/XFree86.0.log
Выйти из просмоторщика можно нажатием клавиши q.
Найти все предупреждения в журнале: строка, начинающаяся с «(WW)». Для этого ввести команду grep "^(WW)" test/log/XFree86.0.log:
user@desktop ~ $ grep "^(WW)" test/log/XFree86.0.log
(WW) The directory "/usr/share/fonts/freefonts/" does not exist.
(WW) The directory "/usr/share/fonts/unifont/" does not exist.
(WW) The directory "/usr/share/fonts/artwiz/" does not exist.
...
Получить все строки, содержащие следующий шаблон: последовательность из 1 или более цифры или буквы, затем символ собаки, затем еще одна последовательность 1 или более цифры или буквы или точки, затем символ точки, затем от двух до четырёх букв (имя домена первого уровня). Также служебный вывод ошибок удаляется (перенаправляется в нулевое устройство). Для этого ввести команду grep "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null:
user@desktop ~ $ grep "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null
/etc/devfsd.conf:# Richard Gooch <rgooch@atnf.csiro.au> 3-JUL-2000
/etc/inittab:# Author: Miquel van Smoorenburg, <miquels@cistron.nl>
/etc/inittab:# Modified by: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com>
...
При работе с несколькими файлами grep по умолчанию использует вывод имени файла перед найденной стокой.
Избавиться от имени файла в начале строки с помощью ключа -h. Ввести команду grep -h "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null:
user@desktop ~ $ grep -h "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null
# Richard Gooch <rgooch@atnf.csiro.au> 3-JUL-2000
# Author: Miquel van Smoorenburg, <miquels@cistron.nl>
# Modified by: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com>
...
Для вывода только найденной подстроки используется ключ -o. Ввести команду grep -ho "[a-zA-Z0-9]\+@[a-zA-Z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null:
user@desktop ~ $ grep -ho "[a-zA-Z0-9]\+@[a-zA-Z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null
rgooch@atnf.csiro.au
miquels@cistron.nl
volkerdi@ftp.cdrom.com
...
Получить все файлы каталога /etc/ с помощью команды find /etc -type f 2>/dev/null, игнорируя ошибки:
user@desktop ~ $ find /etc -type f 2>/dev/null
/etc/X11/xorg.conf.example
/etc/X11/Sessions/kde-3.4
/etc/X11/Sessions/Xsession
/etc/X11/chooser.sh
...
Для каждого из найденных файлов произвести поиск подстроки «nameserver». Для этого ввести команду find /etc -type f -exec grep "nameserver" {} \; 2>/dev/null:
user@desktop ~ $ find /etc -type f -exec grep "nameserver" {} \; 2>/dev/null
# merge the new nameservers with the other options from the old ...
grep --invert-match '^nameserver[[:space:]]' $REALRESOLVCONF
nameserver 10.22.10.20
...
Для большего удобства добавить вывод имени файла (ключ -H) и номера строки (ключ -n), на которой было найдено совпадение, с помощью команды find /etc -type f -exec grep -Hn "nameserver" {} \; 2>/dev/null:
user@desktop ~ $ find /etc -type f -exec grep -Hn "nameserver" {} \; 2>/dev/null
/etc/ppp/ip-up:24: # merge the new nameservers with the other optio...
/etc/ppp/ip-up:26: grep --invert-match '^nameserver[[:space...
/etc/ppp/resolv.conf:1:nameserver 10.22.10.20
...
Таким образом, команда grep может эффективно использоваться вместе с командой find для нахождения информации в файлах.
Задания для самоподготовки
Создайте каталог test1 в домашнем каталоге. Сравните время создания системных каталогов /bin, /tmp с каталогом test1.
Скопируйте файл /bin/ls в локальный каталог. Посмотрите атрибуты этого файла. Попробуйте запустить его.
Создайте в локальном каталоге символическую ссылку tmplnk на каталог /tmp. Скопируйте несколько файлов в каталог tmplnk.
Сравните файлы /dev/tty1 и /dev/hda1. Какой тип они имеют? Чем они отличаются?
Найдите все файлы в системе, которые были модифицированы не более суток назад.
С помощью одной команды найдите все файлы с расширением .html в каталоге /usr и скопируйте их в локальный каталог htmls.
Создайте архив каталога /etc и узнайте его размер. Попробуйте создать сжатый архив того же каталога. Сравните степень сжатия gzip и bzip2 на этом примере.
Создайте текстовый файл a.txt из десяти строк. Узнайте его размер. Создайте новый файл, содержащий в себе файл a.txt четыре раза.
С помощью одной команды найдите все файлы с расширением .txt в каталоге /usr и объедините их в один большой файл big.txt.
Получите с помощью одной команды файл, содержащий все числовые идентификаторы пользователей, зарегистрированных в ситсеме.
Получите с помощью одной команды строки с 5-ой по 8-ю в файле /proc/cpuinfo, содержащем информацию о процессоре.
С помощью одной команды найдите все файлы с расширениями .txt или .html в каталоге /usr, в которых содержится слово user.
ПРАКТИЧЕСКАЯ РАБОТА №21-22. Управления безопасностью в UNIX. Управление доступом в UNIX.
1 ЦЕЛЬ РАБОТЫ: научиться работать с командами доступа к файлам и каталогам UNIX
Проделайте задания ч. 1
Напишите свою пр. работу по образу ч. 1, используя методические указания (по всем сценариям), используя свои названия файлов, каталогов и т. п. . Можно использовать раздел : ПРИМЕРНЫЕ СЦЕНАРИИ
Выполните задания для самоподготовки
Напишите отчет по проделанной работе
Часть1
Зайдите в режим терминала.
Самостоятельно выведите строку текста: “Мой логин <ваше имя регитсрации> и мой домашний каталог <путь вашего домашнего каталога>”
Просмотрите в подробном режиме содержимое домашнего каталога: ls -l
Просмотрите содержимое файла table_1.
Создайте файл жесткой связи hardtab для файла table_1: ln table_1 hardtab.
Просмотрите в подробном режиме содержимое домашнего каталога и обратите внимание на размеры файлов жесткой связи.
Создайте файл символической связи simtab для файла table_1: ln -s table_1 simtab.
Просмотрите в подробном режиме содержимое домашнего каталога и обратите внимание на размер файла символической связи.
Просмотрите в подробном режиме права доступа файлов домашнего каталога, начинающихся с буквы t
Установите запрет на просмотр файла table_1 для владельца: chmod u-r table_1
Попробуйте просмотреть содержимое файла table_1 снова.
Установите разрешение на просмотр файла table_1 для владельца: chmod u+r table_1
Установите запрет на запись в файл table_1 для владельца: chmod u-w table_1
Попробуйте добавить строку текста в файл table_1.
Установите разрешение на запись в файл table_1 для владельца: chmod u+w table_1
Добавьте строку текста в файл table_1.
Определите местоположение файла tt1.txt: find /home/login -name tt1.txt
Просмотрите содержимое файла tt1.txt
Установите право на чтение файла tt1.txt для всех пользователей, за исключением владельца: chmod go=r tt1.txt
Просмотрите содержимое файла tt1.txt снова.
Перейдите в домашний каталог: cd
Создание “темного” каталога:
Просмотрите имя текущего каталога.
Создайте новый каталог darkroom.
Просмотрите права и атрибуты каталога darkroom.
Преобразуйте каталог darkroom в “темный” каталог, добавляя право на выполнение и убирая право на чтение: chmod a-r+x darkroom.
Снова просмотрите права и атрибуты каталога darkroom.
Скопируйте в каталог darkroom файл table_1 с имнем file1.
Перейдите в каталог darkroom.
Попытайтесь просмотреть содержимое каталога darkroom.
Просмотрите содержимое файла file1.
Создайте новый каталог Personal.
Уберите право записи для каталога Personal.
Просмотрите права и атрибуты каталога Personal.
Создайте в домашнем каталоге новый текстовый файл visa с помощью редактора nano: nano visa
Добавьте в файл visa информацию:
Колледж ЭУП ДГТУ
ИВАНОВ ИВАН ПЕТРОВИЧ
Группа СП-4
Специальность: “230105.51 ПОВТ и АС”
Квалификация: техник
Сохраните и закройте файл.
Уберите все права доступа к файлу для группы и прочих пользователей.
Просмотрите права и атрибуты файла visa.
Создайте необходимые условия и скопируйте файл visa с именем visa1 в каталог Personal.
Создайте необходимые условия и подсчитайте количество символов в файле visa1.
Откройте полный доступ ко всем файлам и подкаталогам вашего домашнего каталога.
Определите в каких файлах домашнего каталога содержится символ нуля.
Осуществите замену в текстовых строках:
Цена в рублях | Цена в $$$$$$
(0 + 0) = ### | (% + %) = %%%
UNIX is fine?? | UNIX is fine!!
Составьте и выведите на экран фразу: “Сегодня, <текущая дата>, я, <ваше имя регистрации> работаю в ОС <версия ОС> от сервера <имя сервера>”.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО КОМАНДАМ УПРАВЛЕНИЯ БЕЗОПАСНОСТЬЮ В UNIX
Команды по управлению правами
chmod
Команда используется для изменения прав доступа к файлам.
Команда chmod имеет следующий синтаксис:
chmod [-fhv] [-R [-H | -L | -P]] права_доступа файл ...
Права доступа к файлу могут изменить только владелец файла и суперпользователь. Параметр права_доступа задается в числовой форме, либо в символьной.
Права доступа в числовой форме задаются в виде восьмеричного числа – битовой маски, являющегося суммой одного или нескольких следующих значений: 4000 – установка бита SUID
2000 – установка бита SUID
1000 – установка sticky-бита
0400 – право на чтение для владельца
0200 – право на запись для владельца
0100 – право на выполнение для владельца
0040 – право на чтение для группы владельца
0020 – право на запись для группы владельца
0010 – право на выполнение для группы владельца
0004 – право на чтение для остальных пользователей
0002 – право на запись для остальных пользователей
0001 – право на выполнение для остальных пользователей
Права доступа в символьном виде задаются с помощью следующей грамматики: права_доступа ::=выражение [, выражение ...]
выражение ::=[субъект ...] [действие ...] действие
действие ::=операция [права ...]
субъект ::=a | u | g | o
операция ::=+ | - | =
права ::=r | s | t | w | x | X | u | g | o
Пример использования. Для того, чтобы для файла test.txt сбросить все права для группы владельца и остальных пользователей, а для владельца установить права на чтение и запись, можно использовать следующие команды (они эквивалентны): chmod u=rw,go= test.txt, chmod a=,u=rw test.txt, chmod 600 test.txt. Результат:
user@desktop$ ls -l test.txt
-rw-r--r-- 1 pp ppgroup 0 7 дек 00:34 test.txt
user@desktop$ chmod a=,u=rw test.txt
user@desktop$ ls -l test.txt
-rw------- 1 pp ppgroup 0 7 дек 00:34 test.txt
Для добавления группе владельца права на запись и отмена для остальных пользователей права на чтение можно использовать следующую команду: chmod g+w,o-r test.txt. Результат:
user@desktop$ ls -l test.txt
-rw-r--r-- 1 pp ppgroup 0 7 дек 00:34 test.txt
user@desktop$ chmod g+w,o-r test.txt
user@desktop$ ls -l test.txt
-rw-rw---- 1 pp ppgroup 0 7 дек 00:34 test.txt
chown
Команда используется для смены владельца/группы файлов.
Команда имеет следующий синтаксис:
chown [-fhv] [-R [-H | -L | -P]] владелец[:группа] файл ...
chown [-fhv] [-R [-H | -L | -P]] :группа файл ...
Владельца файла может изменить только суперпользователь. Группу может изменить владелец и суперпользователь. В качестве имени владельца/группы берется первый аргумент, не являющийся опцией. Если задано только имя пользователя (или числовой идентификатор пользователя), то данный пользователь становится владельцем каждого из указанных файлов, а группа этих файлов не изменяется. Если за именем пользователя через двоеточие следует имя группы (или числовой идентификатор группы), без пробелов между ними, то изменяется также и группа файла.
Для изменения группы-владельца файла test.txtна guest необходимо ввести следующую команду: chown :guest test.txt. Результат:
user@desktop$ ls -l test.txt
-rw------- 1 pp ppgroup 0 7 дек 00:34 test.txt
user@desktop$ chown :wheel test.txt
user@desktop$ ls -l test.txt
-rw------- 1 pp wheel 0 7 дек 00:34 test.txt
Команды по управлению пользователями
su
Команда используется для временной подмены идентификатора пользователя.
Команда имеет следующий синтаксис:
su [-] [-flms] [-c класс] [пользователь [аргументы]]
Команда su позволяет пользователю временно стать другим пользователем. Если не указан параметр пользователь, то используется значение по умолчанию - суперпользователь. Если указанному пользователю назначен пароль, то потребуется его ввести, прежде чем стать другим пользователем.
Для того, чтобы стать суперпользователем, нужно ввести команду su без параметров:
user@desktop$ su
Password:
desktop#
Для того, чтобы получить окружение суперпользователя, необходимо запустить su -.
sudo
Программа sudo является логическим развитием программы su и позволяет как переходить в сеанс суперпользователя, так и запускать отдельные программы от имени суперпользователя.
Программа sudo имеет синтаксис:
sudo [-HSb] [-u пользователь] {-s | команда}
. Можно использовать следующие опции:
-H
переменная окружения HOME изменяется в соответствии с выбранным пользователем;
-b
команда исполняется на заднем фоне;
-s
вместо команды запускается командная оболочка данного пользователя.
Главным достоинством команды sudo является возможность гибкого конфигурирования – на какие программы каким пользователям разрешено повышение превилений. Конфигурация хранится в файле /etc/sudoers, рассмотрение формата которого выходит за рамки курса.
passwd
Команда используется для изменения пароля.
Команда имеет следующий синтаксис:
passwd [-l] [пользователь]
Обычные пользователи могут сменить только собственные пароли. Суперпользователь может менять пароли любых пользователей. При вызове команды сначала необходимо ввести старый пароль, если он был установлен. Затем предлагается дважды ввести новый пароль. Если указанные операции были сделаны без ошибок, то пароль пользователя будет изменен.
useradd
Команда предназначена для добавления нового регистрационного имени пользователя в системе.
Команда имеет следующий синтаксис:
useradd [-u идентификатор [-o] [-i]] [-g группа] [-G
группа[[,группа] . . .]] [-d каталог] [-s shell] [-c комментарий] [-m [-k
skel_dir]] [-f inactive] [-e expire] [-p passgen] [-a событие[, . . .]]
регистрационное_имя
userdel
Команда предназначена для удаления регистрационных имен пользователей из системы.
Команда имеет следующий синтаксис:
userdel [-r] [-n месяцев] регистрационное_имя
Команда userdel удаляет определение регистрационного имени пользователя из системы. Она удаляет определение указанного регистрационного имени и выполняет соответствующие изменения в регистрационных файлах и файловой системе. Команда также запоминает идентификационный номер удаляемого пользователя (UID) в файле /etc/security/ia/ageduid, так что этот идентификатор не будет повторно использован на протяжении определенного периода времени. Эта практика не использования идентификатора пользователя называется устареванием идентификатора (UID aging). Для удаления домашней директории пользователя необходимо указать флаг -r. Параметр месяцев задает, сколько месяцев будет запрещено использовать удаляемый идентификатор.
usermod
Команда предназначена для изменения регистрационной информации о пользователе в системе.
Команда имеет следующий синтаксис:
usermod [-u идентификатор [-U] [-o]] [-g группа] [-G
группа[[,группа] . . .]] [-d каталог [-m]] [-s shell] [-c комментарий] [-l
новое_рег_имя] [-f inactive] [-e expire] [-p passgen] [-a
[оператор]событие[, . . .]] регистрационное_имя
Команда предназначена для изменения регистрационной информации о пользователе в системе.
groupadd
Команда используется для создания новой группы в системе.
Команда имеет следующий синтаксис:
groupadd [-g идентификатор [-o]] группа
Новую группу может добавить только администратор. Команда groupadd создает новое определение группы в системе путем добавления соответствующей записи в файл /etc/group.
groupdel
Команда используется для удаления определения группы из системы.
Команда имеет следующий синтаксис:
groupdel группа
Команда groupdel удаляет определение группы из системы путем удаления записи о соответствующей группе из файла /etc/group. Она, однако, не удаляет идентификаторо группы (GID) из файла паролей; удаленный GID действует для всех файлов и каталогов, которые его имели.
groupmod
Команда предназначена для изменения определения группы в системе.
Команда имеет следующий синтаксис:
groupmod [-g идентификатор [-o]] [-n имя] группа
Команда groupmod изменяет определение указанной группы путем изменения соответствующей записи в файле /etc/group. Новое имя группы задается в параметре группа, новый идентификатор группы задается в параметре идентификатор. Опция -o позволяет задать дублирующийся идентификатор группы. Если перед группой стоит символ «+», (например, +student), определение группы администрируется сетевой информационной службой (Network Information Service - NIS). В этом случае, значение идентификатора группы берется из базы данных NIS. Для таких групп использование опций -g или -o вызовет выдачу сообщения о синтаксической ошибке.
Сценарий: Рассматриваем базовые права доступа в UNIX, их просмотр и изменения.
Начальные условия: Командная строка после входа в систему.
Для просмотра прав доступа можно использовать команду ls с ключом вывода расширенной информации: ls -l.
user@desktop ~ $ ls -l
drwxr-xr-x 1 user users 22 Дек 19 11:18 test/
-rw-r--r-- 1 user users 90 Сен 19 00:20 test.txt
Особый интерес представляют: первая колонка (права доступа), третья и четвётрая – владелец и группа владельцев соответственно.
Рассмотрим исполняемый файл ls -l /bin/bash.
user@desktop ~ $ ls -l /bin/bash
-rwxr-xr-x 1 root root 746544 Дек 21 13:40 /bin/bash*
Исполняемые файлы в UNIX определяются наличием специального бита прав доступа.
Для директории права на исполнения трактуются по-другому. Рассмотрим права директории /tmp ls -ld /tmp:
user@desktop ~ $ ls -ld /tmp
drwxrwxrwt 26 root root 5168 Дек 22 20:04 /tmp/
Директория имеет дополнительный sticky-bit, определающий права на создание и удаление файлов в директории.
Изменение файла с недостатком прав приводит к ошибке доступа. Например, команда: rm /bin/bash.
user@desktop ~ $ rm /bin/bash
rm: удалить защищенный от записи обычный файл `/bin/bash'? y
rm: невозможно удалить `/bin/bash': Permission denied
Для всех файлов, на которые данный пользователь не имеет прав записи команда rm может выводить предупреждение об удалении.
Изменение прав доступа производится с помощью команды chmod. Для задания файлу прав только для чтения воспользуемся командой: chmod a=r test.txt.
user@desktop ~ $ chmod a=r test.txt
Для лишения всех прав группы владельцев и остальных пользователей воспользуемся командой: chmod go-rwx test.txt.
user@desktop ~ $ chmod go-rwx test.txt
Практическая работа № 23 Редактирование, резервное копирование и восстановление реестра.