Будьте внимательны: исправление прав доступа на созданных пользователей

Во многих дистрибутивах правила создания пользователей по умолчанию позволяют все пользователям просматривать содержимое каталогов друг-друга. Проблема кроется в том, что при создании пользователя его каталогу выставляются права 755.

Обычно приложения в UNIX запускаются от отдельных пользователей для обеспечения, в том числе, большей безопасности. Данная проблема снижает ее уровень. И, конечно, это особо актуально, если за компьютером работает несколько пользователей.

Демонстрация проблемы

Давайте создадим двух пользователей:

# useradd -m user1
# useradd -m user2

Зайдём под user1 и создадим файлик:

# su user1
user1 $ echo password > ~/pass.txt

А теперь зайдём под юзером user2 и попробуем прочитать файл, к которому доступа иметь не должны:

# su user2
user2 $ cat /home/user1/pass.txt
password

Более того, вы можете просмотреть все файлы юзера не зная к ним точного пути (и просмотреть всех юзеров в /home/):

user2 $ ls /home/user1/
pass.txt

Объяснять последствия этих настроек по умолчанию я думаю смысла нет - всё очевидно и очень печально.

Как исправить проблему

На всех своих компьютерах выполните под root:

# chmod 750 /home/*

Чтобы предотвратить права 755 на каталоги будущих пользователей - необходимо произвести правку как минимум двух конфигов в системе.

1) Конфиг для утилиты adduser - /etc/adduser.conf.

Меняем:

DIR_MODE=0755

На:

DIR_MODE=0750

2) Конфиг для утилиты useradd - /etc/login.defs

Меняем:

UMASK           022

На

UMASK           027

Проверяем:

# userdel user1
# userdel user2
# rm -fr /home/user1 /home/user2
# useradd -m user1
# adduser user2
...
# ls -l /home/
drwxr-x---  2 user1    user1     4096 oct 19 16:54 user1
drwxr-x---  2 user2    user2     4096 oct 19 16:54 user2