# создать пользователя user1 с домашним каталогом и bash
sudo useradd -m -s /bin/bash user1
# задать пароль (ввести дважды)
sudo passwd user1
# перейти под user1
su - user1
# создать файл с содержимым "hello"
cd ~
echo "hello" > file.txt
ls -l file.txt
# права 000 — ни чтения, ни записи
chmod 000 file.txt
ls -l file.txt
cat file.txt
echo "world" >> file.txt
# права 400 — только чтение
chmod 400 file.txt
ls -l file.txt
cat file.txt
echo "world" >> file.txt
# права 600 — чтение и запись
chmod 600 file.txt
ls -l file.txt
cat file.txt
echo "world" >> file.txt
cat file.txt
# права 006 — права только у others
chmod 006 file.txt
ls -l file.txt
cat file.txt
echo "test" >> file.txt
exit
su - user1
cd ~
# 2.1 скопировать cat в домашний каталог
which cat
cp /bin/cat ./cat
ls -l cat
# 2.2 прочитать file.txt через локальный ./cat
./cat file.txt
# 2.3 права 600 — нельзя запускать
chmod 600 cat
ls -l cat
./cat file.txt
# 2.4 права 100 — только x, запуск снова возможен
chmod 100 cat
ls -l cat
./cat file.txt
su - user1
cd ~
# 3.1 создать каталог и файл
mkdir folder
echo "hello" > folder/file.txt
ls -ld folder
ls -l folder
# 3.2 права 000 — содержимое не просматривается
chmod 000 folder
ls -ld folder
ls folder
# 3.3 права 400
chmod 400 folder
ls -ld folder
ls folder
echo "test" > folder/new.txt
# 3.4 права 600
chmod 600 folder
ls -ld folder
ls folder
echo "test2" > folder/new2.txt
# 3.5 права 700 — можно смотреть и создавать
chmod 700 folder
ls -ld folder
ls folder
echo "new" > folder/new3.txt
ls -l folder
# стать root
sudo -i
# создать файл в /home/user1 от root
echo "hello" > /home/user1/file2.txt
chown root:root /home/user1/file2.txt
chmod 644 /home/user1/file2.txt
ls -l /home/user1/file2.txt
4.2
# права 007 (u=0,g=0,o=rwx)
chmod 007 /home/user1/file2.txt
ls -l /home/user1/file2.txt
# посмотреть ACL до изменений
getfacl /home/user1/file2.txt
# добавить ACL для user1: только чтение
setfacl -m u:user1:r /home/user1/file2.txt
# посмотреть ACL после
getfacl /home/user1/file2.txt
su - user1
cd ~
ls -l file2.txt
cat file2.txt # чтение должно быть
echo "test" >> file2.txt # запись должна быть запрещена
exit
4.3
# снова root (если вышел)
sudo -i
# посмотреть ACL до изменения маски
getfacl /home/user1/file2.txt
# установить маску 0
setfacl -m m::0 /home/user1/file2.txt
# посмотреть ACL после
getfacl /home/user1/file2.txt
ls -l /home/user1/file2.txt
проверка:
su - user1
cd ~
cat file2.txt
echo "test2" >> file2.txt
exit