В UNIX возможно ли защитить паролем каталог?

Есть ли способ защитить паролем каталог в UNIX? Что-то вроде:

~$ cd dir
~$ Password:
~/dir$

5 ответов

Решение

Unix способ сделать это через существующие разрешения, создать этот каталог и его содержимое owned конкретным владельцем и / или группой и требуют, чтобы все su этому владельцу или быть частью этой группы, чтобы получить доступ к содержимому, удалив права на чтение и запись у всех, кроме этого пользователя и / или группы, su запросит пароль.

Теоретически вы можете сделать что-то вроде хранения содержимого каталога в зашифрованном файле и fuse провайдер расшифровывает его в файловую систему - но сначала предоставляет пользователю диалог. (и предположительно блокирует системные вызовы этой файловой системы, пока пользователь не введет фразу-пароль)

Грязно, но это может сработать.

Да, это возможно. Решения таковы:

  • измените оболочку (для этого обновите bash)
  • используйте LD_PRELOAD и создайте библиотеку, которая заменит cwd(), и запросите пароль (pam...), если рабочий каталог запрещен и у процесса есть STDIN, STDOUT, подключенный к tty. После того, как вы довольны результатами, добавьте библиотеку в /etc/ld.so.preload

Вы можете сделать что-то безумное, например написать собственную программу 'cd', которая будет аутентифицировать пользователя, а затем использовать списки контроля доступа, чтобы изменить права доступа к каталогу, чтобы дать им разрешение на рассматриваемый каталог (и, я думаю, рекурсивно все под ним), а затем Назовите нормальный "CD", чтобы войти в него. Это также должно было бы как-то тайм-аут и отменить перманент или как-то определить, что они вышли из системы. Определенно испытание.

Прежде всего, нет более эффективной UNIX. Только UNIX-подобный. Сходство между ними слишком широкое, чтобы дать вам точный ответ на вопрос.

Вещи, которые можно упомянуть в связи с тем, что вы спрашиваете:

Другие вопросы по тегам