Как я могу запретить пользователям доступ к чему-либо, кроме их собственного домашнего каталога?

Как я могу запретить пользователям доступ к чему-либо, кроме их собственного домашнего каталога?

Например, у меня есть раздел NTFS, смонтированный в /media/ntfs, поэтому, если пользователь входит в систему через ssh, он может получить доступ к этому разделу. Как я могу отключить пользователей cd из их домашнего каталога?

22
задан 29 January 2014 в 13:34

4 ответа

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

Чтобы предотвратить это, от имени пользователя root запустите chmod 701 /home. Это, конечно, делает сам каталог /home «доступным для чтения / записи / выполнения» для корневого каталога, но только «выполняет» для всех остальных. /home по-прежнему доступен для cd, но пользователи не могут читать его содержимое - домашние папки других пользователей и, следовательно, имена пользователей.

0
ответ дан 29 January 2014 в 13:34

Мне нужно было предоставить доступ пользователю sam только на /var/xyz и заблокировать список содержимого других папок внутри /var/

Я использовал следующую последовательность команд:

setfacl -R -m user:sam:--- /var/

setfacl -m user:sam:rx /var/

setfacl -R -m user:sam:rwx /var/xyz/
[ 118] Таким образом, пользователь может видеть каталоги, перечисленные в /var/, но не может видеть содержимое в подкаталогах, кроме /var/xyz.

0
ответ дан 29 January 2014 в 13:34

Сначала оцените ваше требование. Какую проблему вы пытаетесь решить? Почему вы хотите запретить пользователям выходить из своего домашнего каталога? Разве это не то, что вы не хотите, чтобы они рылись в определенных других каталогах - таких как домашние каталоги других пользователей?

Очень трудно предотвратить выход пользователей. их домашний каталог. Это тоже немного глупо (объяснение следует). Намного проще запретить пользователям входить в каталоги, которые вы не хотите, чтобы они входили.

Прежде всего, да, вы можете дать пользователям так называемую ограниченную оболочку , см. man rbash. Это предотвратит их cd -нахождение в другом месте, но только внутри этой оболочки. Если пользователь запускает vi или nano (или любую другую программу, способную открыть файл), он может снова открыть файлы в любом месте системы. На самом деле, ограниченная оболочка не предотвращает, например, cat /etc/passwd. [Одна тысяча сто тридцать одна]

Следующий шаг - корневая тюрьма. Больше информации в сообществе вики и в этом вопросе . Хотя корневая тюрьма блокирует пользователей внутри огороженного сада, в котором они не имеют доступа ни к чему, кроме файлов и команд, которые вы намеренно поместили туда, корневые тюрьмы действительно предназначены для изоляции ненадежного программного обеспечения , а не пользователей. В частности, они предназначены для программного обеспечения, которое должно работать с повышенными привилегиями - отсюда root jail.

С другой стороны, пользователям доверяют : они должны были аутентифицировать и работать без повышенных привилегий. Следовательно, прав доступа к файлам достаточно, чтобы помешать им изменять файлы, которыми они не владеют, и видеть вещи, которые они не должны видеть. Чтобы запретить пользователям читать содержимое файла, удалите его удобочитаемость с помощью chmod o-r FILE. Чтобы пользователи не попадали в каталог, сделайте его недоступным для всего мира с помощью chmod o-rwx DIR.

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

Почему блокировать пользователей в их домашнем каталоге немного глупо

Чтобы сделать что-нибудь полезное, пользователям нужен доступ к командам и приложениям. Они находятся в каталогах, подобных /bin и /usr/bin, поэтому, если вы не скопируете все необходимые команды оттуда в свои домашние каталоги, пользователям потребуется доступ к /bin и /usr/bin. Но это только начало. Приложению требуются библиотеки из /usr/lib и /lib, которые, в свою очередь, нуждаются в доступе к системным ресурсам, которые находятся в /dev, и к файлам конфигурации в /etc и /usr/share.

Это была только часть только для чтения. Приложения также захотят /tmp и часто /var писать в. Итак, если вы хотите ограничить пользователя в его домашнем каталоге, вам придется много копировать в него. Фактически, почти вся базовая файловая система, которая у вас уже есть, расположена в /.

0
ответ дан 29 January 2014 в 13:34

Чтобы завершить ответ @Willman, вы можете просто сделать это:

Во-первых, чтобы пользователи не перечисляли все домашние каталоги пользователей:

chmod 701 /home

Но если вы знаете путь к домашнему каталогу пользователя, вы все равно можете получить к нему доступ с помощью cd.

Таким образом, вы можете просто chmod 750 все ваши уже созданные каталоги пользователей.

Но мы хотим, чтобы домашний каталог любого нового пользователя не имел разрешения 755. За настройку новых пользователей отвечает файл: /etc/adduser.conf :

Просто измените DIR_MODE=0755 на DIR_MODE=0750

6
ответ дан 7 May 2020 в 01:43

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

Похожие вопросы: