МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра ЗІ
/
З В І Т
до лабораторної роботи №4
з курсу «Робота з файловою системою ОС GNU/Linux.
Система розмежування доступу, права доступу до файлів та
керування ними»
Варіант № 10
Львів – 2018
МЕТА РОБОТИ – ознайомитись із структурою файлової системи, основними командами для роботи з файлами та каталогами; оволодіти практичними навичками керування правами доступу до файлів та їх аналіз в ОС GNU/Linux.
ПОРЯДОК ВИКОНАННЯ РОБОТИ
1. В своїй робочій (домашній) директорії створіть каталог lab_4.
2. Скопіюйте в каталог lab_4 файл /bin/cat під назвою my_cat
3. За допомогою файлу my_cat, що знаходиться в каталозі lab_4,
перегляньте вміст файлу .profile (Ви знаходитесь у домашньому каталозі).
4. Перегляньте список файлів у каталозі lab_4. Потім перегляньте список
усіх файлів, включаючи приховані, з повною інформацією про файли. Зверніть
увагу на права доступу, власника, дату модифікації файлу, що Ви тільки-що
скопіювали. Потім перегляньте цю інформацію про оригінальний файл (той, який
копіювали) і порівняйте два результати.
5. Змініть права доступу до файлу my_cat так, щоб власник міг тільки
читати цей файл.
6. Переконайтеся в тім, що ви зробили ці зміни і повторіть п.3.
7. Визначте права на файл my_cat таким чином, щоб Ви могли робити з
файлом довільні дії, а всі інші— нічого не могли робити.
8. Поверніться в домашній каталог. Змініть права доступу до каталогу lab_4
так, щоб ви могли його тільки читати.
9. Спробуйте переглянути простий список файлів у цьому каталозі.
Спробуйте переглянути список файлів з повною інформацією про них. Спробуйте
запустити і видалити файл my_cat з цього каталогу.
10. Поясніть отримані результати. Результати виконання п.8 можуть бути
відмінними в різних версіях UNIX. Прокоментуйте отримані результати у
висновках.
11. За допомогою команди su <user name>, завантажтесь в систему,
користуючись обліковим записом іншого користувача. (Вам потрібно знати
пароль цього користувача). Спробуйте отримати доступ до Вашого каталогу
lab_4. Перевірте, чи правильно зроблено завдання попереднього пункту. Створіть
каталог lab_4_1.
12. Знову завантажтесь в систему, користуючись своїм обліковим записом.
Спробуйте зробити власником каталогу lab_4 іншого користувача. Спробуйте
зробити себе власником каталогу lab_4_1. Поясніть результати.
13.Зробіть так, щоб нові створені файли і каталоги (у каталозі lab_4)
одержували права доступу згідно таблиці (див. в кінці). Cпробуйте створити
новий файл і каталог і переконайтеся в правильності ваших налаштувань.
14. Поверніть собі права читати, записувати, та переглядати зміст каталогу
lab_4.
15. Створіть у каталозі lab_4 каталог testdir та у ньому файли file1, file2. Під
час створення file1 командою __________echo додайте до нього довільний текст.
16. Виведіть ACL для file1.
17. Змініть права доступу на file1 так, щоб тільки власник мав право на
читання.
18. Увійдіть до системи під іншим обліковим записом та спробуйте
прочитати вміст file1. Що отримаємо? Поверніться до свого облікового запису.
(Ви можете одночасно користуватись різними обліковими записами,
16
використовуючи для цього різні віртуальні консолі в текстовому режимі, або різні
вікна терміналів в графічній багатовіконній системі).
19. За допомогою команди setfacl додайте право на читання іншому
обраному користувачу для file1. Перевірте чи створився новий ACL для file1.
20. Увійдіть до системи під іншим обліковим записом та спробуйте
прочитати вміст file1. Що отримаємо? Поверніться до свого облікового запису.
21. За допомогою команди setfacl встановіть значення маски таким чином
щоб заборонити читати зміст file1 усім користувачам. Виведіть ACL для file1
22. Увійдіть до системи під іншим обліковим записом, та спробуйте
прочитати вміст file1. Ви не повинні мати такий доступ.
/
Результати з командного рядка
№1
user10@ubuntu-server:~$ mkdir lab_4
№2
user10@ubuntu-server:~$ cp /bin/cat ./lab4/my_cat
user10@ubuntu-server:~$ cd lab_4
user10@ubuntu-server:~/lab_4$ ls
my_cat
user10@ubuntu-server:~$ cd ..
№3
user10@ubuntu-server:~$ ./lab_4/my_cat .profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
№4
user10@ubuntu-server:~$ ls -a -li lab_4
total 44
1052064 drwxr-xr-x 2 user10 user10 4096 кві 22 15:41 .
1070374 drwxr-xr-x 15 user10 user10 4096 кві 22 15:42 ..
1052004 -rwxr-xr-x 1 user10 35064 кві 22 15:41 my_cat
# information about original file
user10@ubuntu-server:~$ ls -li /bin/cat
262170 -rwxr-xr-x 1 root root 35064 жов 4 2017 /bin/cat
№5
user10@ubuntu-server:~$ chmod 400 ./lab_4/my_cat
user10@ubuntu-server:~$ ls -li lab_4
total 36
1052004 -r--r-xr-x 1 user10 user10 35064 кві 22 15:41 my_cat
№6
user10@ubuntu-server:~$ sudo ./lab_4/my_cat .profile
sudo: ./lab_4/my_cat: command not found
№7
user10@ubuntu-server:~$ chmod 700 ./lab_4/my_cat
user10@ubuntu-server:~$ ls -li lab_4
total 36
1052004 -rwx------ 1 user10 user10 user10 35064 кві 22 15:41 my_cat
№8
user10@ubuntu-server:~$ chmod 477 lab_4
user10@ubuntu-server:~$ ls lab_4
ls: cannot access 'lab_4/my_cat': Permission denied
my_cat
№9
user10@ubuntu-server:~$ ls -li lab_4
ls: cannot access 'lab_4/my_cat': Permission denied
total 0
? -????????? ? ? ? ? ? my_cat
User10@ubuntu-server:~$ sudo ./lab_4/my_cat .profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
user10@ubuntu-server:~$ rm ./lab_4/my_cat
rm: cannot remove './lab_4/my_cat': Permission denied
№10
Результати пояснено у висновку, відповідно до завдання.
№11
user10@ubuntu-server:~$ su nyzhnyk
Password:
nyzhnyk@ubuntu-server:/home/user10$ ls -li lab_4
total 36
1052004 -rwx------ 1 user10 user10 35064 кві 22 15:41 my_cat
nyzhnyk@ubuntu-server:/home/user10$ mkdir ./lab_4/lab_4_1
nyzhnyk@ubuntu-server:/home/user10$ ls -li lab_4
total 40
1052182 drwxrwxr-x 2 nyzhnyk nyzhnyk 4096 кві 22 16:09 lab_4_1
1052004 -rwx------ 1 nyzhnyk nyzhnyk 35064 кві 22 15:41 my_cat
№12
nyzhnyk@ubuntu-server:/home/user10$ exit
exit
user10@ubuntu-server:~$
user10@ubuntu-server:~$ chown nyzhnyk lab_4
chown: changing ownership of 'lab_4': Operation not permitted
user10@ubuntu-server:~/lab_4$ chown nyzhnyk lab_4_1
chown: changing ownership of 'lab_4_1': Operation not permitted
№13
*** acl для катологів
user10@ubuntu-server:~/lab_4$ sudo setfacl -R -m d:u::7,d:g::6,d:o::5 ./
*** acl для файлів
user10@ubuntu-server:~/lab_4$ sudo setfacl -R -m d:u::6,d:g::6,d:o::4 ./.
№14
user10@ubuntu-server:~$ sudo chmod 755 lab_4
№15
user10@ubuntu-server:~/lab_4$ mkdir testdir
user10@ubuntu-server:~/lab_4$ cd testdir
user10@ubuntu-server:~/lab_4/testdir$ touch file2
user10@ubuntu-server:~/lab_4/testdir$ echo "arr arrrrr qwerty" > file1
№16
user10@ubuntu-server:~/lab_4/testdir$ getfacl file1
# file: arr arrrrr qwerty
# owner: user10
# group: user10
user::rw-
group::rw-
other::r—
№17
user10@ubuntu-server:~/lab_4/testdir$ setfacl -m u::4,g::0,o::0 file1
user10@ubuntu-server:~/lab_4/testdir$ getfacl file1
# file: arr arrrrr qwerty
# owner: user10
# group: user10
user::r--
group::rw-
other::r—
№18
user10@ubuntu-server:~/lab_4/testdir$ su nyzhnyk
Password:
nyzhnyk@ubuntu-server:/home/user10/lab_4/testdir$ cat file1
cat: file1: Permission denied
№19
user10@ubuntu-server:~/lab_4/testdir$ setfacl -m u:nyzhnyk:4 file1
user10@ubuntu-server:~/lab_4/testdir$ getfacl file1
# file: arr arrrr qwerty
# owner: user10
# group: user10
user::-wx
user:user10:r--
user:nyzhnyk:r--
group::---
mask::r--
other::---9
№20
user10@ubuntu-seerver:~/lab_4/testdir$ su nyzhnyk
Password:
nyzhnyk@ubuntu-server:/home/user10/lab_4/testdir$ cat file1
arr arrrrr qwerty
№21
user10@ubuntu-server:~/lab_4/testdir$ setfacl -m u::3,g::3,o::3 file1
user10@ubuntu-server:~/lab_4/testdir$ setfacl -m u:user10:3 file1
user10@ubuntu-server:~/lab_4/testdir$ setfacl -m u:nyzhnyk:3 file1
user10@ubuntu-server:~/lab_4/testdir$ getfacl file1
# file: file1
# owner: user10
# group: user10
user::-wx
user:user10:-wx
user:nyzhnyk:-wx
group::-wx
mask::-wx
other::-wx
№22
user10@ubuntu-server:~/lab_4/testdir$ su nyzhnyk
Password:
nyzhnyk@ubuntu-server:/home/user10/lab_4/testdir$ cat file1
cat: file1: Permission denied
Висновки
На цій лабораторній роботі я ознайомився із структурою файлової системи сімейства операційних систем GNU/Linux. Я також оволодів основними командами для роботи з файлами та каталогами, набув практичних навичків керування правами доступу до файлів і каталогів та їх аналізу за допомогою системного терміналу Ubuntu-Server 16.04 .