Файловая система (отчет по лабораторной), страница 3

При помещении в пустой каталог файла, видно, что в информацию о каталоге добавляется

информация об этом файле. При переименовывании файла разницы почти нет, изменилась строчка, отвечающая за имя файла. При создании в каталоге подкаталога результат аналогичен созданию в нём файла: добавилась информация о созданном каталоге. При создании в подкаталоге файла разницы не обнаружилось. Значит, информация о нём хранится в подкаталоге и на сам каталог не распространяется.

5.

В файлах etc/passwd и etc/shadow хранится информация о пользователях системы. Эта информация включает такие данные, как имя пользователя и пароль входа в систему.Утилита passwd позволяет пользователю изменить свой пароль. При этом необходимо ввести старый пароль и дважды новый. Старая информация о данных пользователя сохраняется в            файлах etc/opasswd и etc/oshadow. Если команду passwd выполнит пользователь root, указав      в качестве аргумента команды имя пользователя, то будет 2 варианта: если такой пользователь

уже существует, будет предложено изменить его пароль. Если такого пользователя нет. то

утилита предложит администратору ввести регистрационные данные для нового пользователя

для заполнения файла etc/passwd.

etc/passwd:

root::0:0:Superuser:/root:/bin/sh

bin:x:1:1:Binaries Commands and Source:/bin:

daemon:x:2:2:System Services:/daemon:

mail:x:8:40:User Mail:/var/spool/mail:

news:x:9:50:Network News:/var/spool/news:

uucp:x:12:60:Network News:/var/spool/news:

ftp:x:14:80:FTP User:/home/ftp:

sshd:x:15:6:sshd:/var/chroot/sshd:/bin/false

nobody:x:99:99:Nobody:/:

user::100:40811:User:/home/user:/bin/sh

test::101:40811:Test:/home/test:/bin/sh

6.

Команда chmod изменяет атрибуты доступа к файлу. Команда chown предназначена для

изменения владельца. Применим команду chmod a-r 1 .В результате всем будет отказано

доступе чтения данного каталога. В этом можно убедиться, выбрав опцию inspect на данном

каталоге в файловом менеджере: все флажки для пользователя группы и остальных в графе

read оказались сняты. Вернуть всё обратно можно с помощью команды chmod a+r 1.

# ls -l

total 74

drwxr-xr-x  4 root      root           4096 Nov 05 17:50 .

drwxrwxrwx  8 root      root           4096 Jan 10 18:17 ..

d-ws--x--x  2 23        root           4096 Nov 05 17:39 1

drwxr-xr-x  3 root      root           4096 Nov 05 17:39 2

# chmod a+r 1

# ls -l

total 74

drwxr-xr-x  4 root      root           4096 Nov 05 17:50 .

drwxrwxrwx  8 root      root           4096 Jan 10 18:17 ..

drwsr-xr-x  2 23        root           4096 Nov 05 17:39 1

drwxr-xr-x  3 root      root           4096 Nov 05 17:39 2

Изменим владельца директории  командой chown 23 1. Опять нажмём на опцию inspect и

увидим, что в поле owner отображается наше значение 23. Заметим, что на файлы, находящиеся

в каталоге, данные установки не распространяются. Для того чтобы применять настройки ко

всем вложенным файлам, нужно применить команду с флагом -R. 

Если для исполняемого файла установить флаг SUID, то идентификаторы UID и EUID нового

процесса будут установлены равными идентификатору владельца файла. Если этот флаг не

установлен, EUID и UID устанавливаются равными соответствующим идентификаторам

родительского процесса. Проверим, как формируются итоговые права доступа к файлу, если права пользователя и группы, в которую он входит различны. При разрешении чтения файла пользователю, но запрещении чтения группе, пользователь может прочитать файл. Если сделать наоборот, то доступ пользователя к чтению будет закрыт.

7.

Для того чтобы разработать программу-шлюз для доступа к данным другого пользователя при отсутствии прав на чтение информации, создадим программу на с++. Она будет принимать имена файла, который мы хотим прочитать и выходного файла.У исполняемого файла программы должны быть установлены права на исполнениедля нас. Установив на нём флаг SUID мы сможем прочитать данные другого пользователя. Для этого владельцем данной программы должен быть пользователь, имеющий права доступа к нужному нам файлу. В результате созданный процесс будет иметь UID и EUID такие же как у владельца программы.  Текст программы приведён ниже.