У меня есть папка «загрузки» внутри домашней папки «tempuser» («/ home / tempuser / downloads»), в которой я хочу разрешить «rwx» другому пользователю сказать «testuser». Тестовый пользователь не должен иметь никаких прав доступа к каким-либо другим файлам или папкам внутри / home / tempuser, кроме папки «downloads».
Как мне это сделать ?
чтобы пройти по папке, нужно разрешение на выполнение. Execute предоставит доступ для «выполнения» (т. Е. Перемещения) папки без доступа для чтения файлов в ней.
Итак, представьте, что у вас в домашней папке есть следующее дерево каталогов:
jvehent@laptop:~$ tree -d Downloads
├── linux-2.6.38
│ ├── arch
│ │ ├── alpha
│ │ │ ├── boot
│ │ │ │ └── tools
│ │ │ ├── include
│ │ │ │ └── asm
Вы можете предоставить кому угодно доступ к папке «asm», не давая им доступа к чему-либо еще, установив разрешение на выполнение для всех в полной иерархии, а затем разрешение на запись в папке asm:
chmod o+x /home/jvehent
chmod o+x /home/jvehent/Downloads
chmod o+x /home/jvehent/linux-2.6.38/
chmod o+x /home/jvehent/linux-2.6.38/arch
chmod o+x /home/jvehent/linux-2.6.38/arch/alpha
chmod o+x /home/jvehent/linux-2.6.38/arch/alpha/include
chmod -R o+wx /home/jvehent/linux-2.6.38/arch/alpha/include/asm
Следуя той же логике, вы можете поместить «testuser» и «tempuser» в отдельную группу «testgroup» и предоставить доступ только «tempgroup»
chgrp -R tempgroup /home/jvehent/linux-2.6.38/arch/alpha/include/asm
chmod -R g+wx /home/jvehent/linux-2.6.38/arch/alpha/include/asm
Добавить tempuser
и testuser
в группу и сделать /home/tempuser/downloads
могут быть записаны этой группой:
# groupadd temptest
# usermod -a -G temptest tempuser
# usermod -a -G temptest testuser
# chgrp -R temptest /home/tempuser/downloads
# chmod -R g+w /home/tempuser/downloads