
- •Лабораторна робота № 10 основи роботи з операційною системою unix
- •1 Мета роботи
- •2 Основні положення
- •2.1 Загальна характеристика ос сімейства unix
- •2.2 Архітектура unix
- •2.3 Функціонування системи unix
- •2.3.1 Ядро системи
- •2.3.2 Початок і завершення сеансу робіт
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •2.1 Основні характеристики FreeBsd
- •2.2 Історична довідка
- •2.3 Мета проекту FreeBsd
- •2.4 Вимоги до системи при інсталяції FreeBsd
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •2.1 Поняття процесу
- •2.2 Компоненти процесу
- •2.2.1 Ідентифікатор процесу
- •2.2.2 Ідентифікатор батьківського процесу
- •2.2.3 Ідентифікатор користувача і групи
- •2.3 Стан процесу, "заблукалі" процеси
- •2.4 Управління процесами, команди kill та nice
- •2.4.1 Дворівнева схема керування процесами
- •2.4.2 Команда kill
- •2.4.3 Команда nice
- •2.5 Поточний контроль процесів, команди ps та top
- •2.6 Захист фонових процесів, команда nohup
- •3 Ключові запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Лабораторна робота № 13 права доступу в операційній системі unix
- •1 Мета роботи
- •2 Основні положення
- •2.1 Поняття прав доступу користувача
- •2.2 Основні біти доступу (читання/запис/виконання)
- •2.3 Додаткові біти доступу
- •2.4 Сполучення бітів доступу
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •2.1 Основні поняття клієнт-серверної архітектури
- •2.2 Основи мережного програмування
- •2.3 Компіляція
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Основні комбінації клавіш і команди
- •Закінчення таблиці а2
- •Закінчення таблиці а4
- •Приклади програм для реалізації клієнт-серверної архітектури
- •Перевірка буфера
- •Зчитування запису
- •Лістинг 2 Server-сервер, котрий демонструє застосування функції readvrev
Закінчення таблиці а4
telnet [сервер] |
Зв’язатися по telnet з іншою машиною. Використовуйте ім'я машини або її IP адресу. Увійдіть за допомогою вашого пароля (ви повинні бути зареєстровані на цій вилученій машині). Це дозволить вам увійти на іншу машину і працювати на ній, начебто ви сидите за її клавіатурою (майже жодних відмінностей) |
ftp [сервер] |
Зв’язатися по ftp з вилученим комп’ютером |
Таблиця А5 — Основні команди адміністрування
аdduser [ім’я_користу- вача] |
Зареєструвати нового користувача (у вас повинні бути права суперюзера). Наприклад: adduser ivanov Налаштувати пароль користувача; директорія користувача розміщена в каталозі /home/ім’я_користувача |
rmuser [ім’я_користу- вача] |
Вилучити користувача із системи (ви повинні увійти як root). З користувацьким каталогом і непрочитаними листами вилученого користувача слід займатися окремо |
Groupadd [ім’я_групи] |
Створити нову групу користувачів на вашій системі. Не обов’язково створювати групу безпосередньо на основній машині |
passwd |
Змінити пароль. Якщо ви є суперкористувач, то можете змінити пароль кожного зареєстрованого користувача, набравши команду: passwd ім’я_користувача |
chown [новий_хазяїн][файли] chgrp [нова_група] [файли] |
Змінити хазяїна і групу для файла. Ви можете використовувати ці дві команди, після того як зробили копію файла для іншого користувача |
su |
(=super user) Вхід у систему як суперкористувача (у вас запитають ваш пароль). Набравши “exit”, ви повернетеся у вашу попередню користувацьку оболонку. Користувач root існує для адміністрування системи — і команда su надає швидкий доступ до можливостей суперкористувача, коли вам це буде потрібно. Ніколи не заходьте в систему під користувачем root, використовуйте для цієї мети команду su. |
ДОДАТОК Б
Приклади програм для реалізації клієнт-серверної архітектури
Лістинг 1 Функція для читання запису змінної довжини (readvrec)
1 #include "../etcp.h"
2 int readvrec( SOCKET fd, char *bp, size_t len )
3 {
4 u_int32_t reclen;
5 int rc;
6 rc = readn( fd, ( char * )&reclen, sizeof( u_int32_t ) );
7 if ( rc != sizeof( u_int32_t ) )
8 return rc < 0 ? -1 : 0;
9 reclen = ntohl( reclen );
10 if ( reclen > len )
11 {
12 while ( reclen > 0 )
13 {
14 rc = readn( fd, bp, len );
15 if ( rc != len )
16 return rc < 0 ? -1 : 0;
17 reclen -= len;
18 if ( reclen < len )
19 len = reclen;
20 }
21 set_errno( EMSGSIZE );
22 return -1;
23 }
24 rc = readn( fd, bp, reclen );
25 if ( rc != reclen )
26 return rc < 0 ? -1 : 0;
27 return rc;
28 }
6...8 Довжина запису зчитується у змінну reclen. Функція readvrec повертає 0 (завершення файла), якщо число байтів, прочитаних readn, неповністю збігається з розміром цілого, чи 1 — у разі помилки.
Розмір запису перетвориться з мережного порядку на машинний.