Сначала оцените ваше требование. Какую проблему вы пытаетесь решить? Почему вы хотите запретить пользователям выходить из своего домашнего каталога? Разве это не то, что вы не хотите, чтобы они рылись в определенных других каталогах, таких как домашние каталоги других пользователей?
Очень трудно помешать пользователям покинуть свой домашний каталог. Это тоже немного глупо (объяснение следует). Гораздо проще запретить пользователям входить в каталоги, которые вы не хотите им вводить.
Во- первых, да , вы можете дать пользователям так называемую ограниченную оболочку , см man rbash. Это предотвратит их использование в cdдругом месте, но только внутри этой оболочки. Если пользователь запускает viили nano(или любую другую программу, способную открыть файл), он может снова открывать файлы в любом месте системы. На самом деле, ограниченная оболочка не мешает, например cat /etc/passwd.
Следующий шаг - корневая тюрьма. Больше информации о сообществе вики и по этому вопросу . Хотя корневая тюрьма блокирует пользователей внутри огороженного сада, в котором они не имеют доступа ни к чему, кроме файлов и команд, которые вы намеренно поместили туда, корневые тюрьмы действительно предназначены для изоляции ненадежного программного обеспечения, а не пользователей. В частности, они предназначены для программного обеспечения, которое должно работать с повышенными привилегиями - отсюда и корневая тюрьма.
С другой стороны, пользователям доверяют : им пришлось проходить аутентификацию и работать без повышенных привилегий. Следовательно, прав доступа к файлам достаточно, чтобы помешать им изменять файлы, которыми они не владеют, и видеть вещи, которые они не должны видеть. Чтобы запретить пользователям читать содержимое файла, удалите его удобочитаемость с помощью chmod o-r FILE. Чтобы пользователи не попадали в каталог, сделайте его недоступным для всех chmod o-rwx DIR.
По умолчанию, по понятной причине, удобочитаемость по умолчанию: пользователям на самом деле нужна большая часть содержимого файловой системы. Не блокируйте пользователей в их домах только потому, что снаружи существуют секреты.
Почему блокировать пользователей в их домашнем каталоге немного глупо
Чтобы сделать что-нибудь полезное, пользователям нужен доступ к командам и приложениям. Они находятся в таких каталогах, как /binи /usr/bin, поэтому, если вы не скопируете все необходимые команды оттуда в свои домашние каталоги, пользователям потребуется доступ к /binи /usr/bin. Но это только начало. Приложению нужны библиотеки из /usr/libи /lib, которые, в свою очередь, нуждаются в доступе к системным ресурсам, которые находятся в /dev, и к файлам конфигурации в /etcи /usr/share.
Это была только часть только для чтения. Приложения также захотят /tmpи часто /varпишут. Итак, если вы хотите ограничить пользователя в его домашнем каталоге, вам придется много копировать в него. На самом деле, почти вся базовая файловая система - которая у вас уже есть, расположена в /.