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

Попробуйте , Samba Здесь Чиновник Документация Ubuntu от начала до конца. Также рассматривают это видео как укрепление, которое значительно помогло.

21
задан 07.05.2020, 21:49

3 ответа

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

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

Прежде всего, да, вы можете дать пользователям так называемую ограниченную оболочку , см. 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 писать в. Итак, если вы хотите ограничить пользователя в его домашнем каталоге, вам придется много копировать в него. Фактически, почти вся базовая файловая система, которая у вас уже есть, расположена в /.

20
ответ дан 07.05.2020, 21:50
  • 1
    В моем случае я настраиваю пользователя, чтобы позволить устройствам инвертировать ssh в машину для удаленного управления устройствами. Таким образом, я хочу ограничить ту учетную запись пользователя как можно больше на всякий случай it' s поставивший под угрозу - мне просто нужно успешное соединение, которое будет сделано. Я wouldn' t говорят it' s глупый, это просто зависит от того, что Вы пытаетесь выполнить. – Josh Caswell 07.05.2020, 21:50
  • 2
    Этот doesn' t имеют смысл мне, могло быть столько причин, почему Вы захотите, чтобы у пользователя только был доступ к 1 папке. Один пример мог предоставлять доступ ради передачи файлов от 1 сервера до другого. Я скорее думаю это it' s , немного глупый , что любой пользователь может просмотреть полную систему вместо этого. – Rob Kam 07.05.2020, 21:51

Мне нужно было предоставить доступ пользователю 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.

7
ответ дан 07.05.2020, 21:50
  • 1
    @Elder Да, я полагаю, что он был бы. Не прекрасный, но все еще ответ – Declan Shanaghy 07.05.2020, 21:50
  • 2
    @ElderGeek Can' t OP просто используют те же команды, но для корневого каталога? – grahamparks 07.05.2020, 21:50
  • 3
    Добро пожаловать в askubuntu! Я don' t рассматривают это как ответ на вопрос, который задают относительно корневых каталогов. – mobibob 07.05.2020, 21:51
  • 4
    @Seth Да, но это было бы ясно среднему пользователю? – Grant Limberg 07.05.2020, 21:51

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

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

1
ответ дан 07.05.2020, 21:50
  • 1
    Это, хотя не строго ответ на вопрос, все еще очень интересно... В ситуации, где Вы управляете удаленным сервером, в котором клиенты могут ssh к, здорово. Они могут все еще переместиться как they' d ожидают при сохранении конфиденциальности других клиентских имен пользователей. – Bruno 07.05.2020, 21:51

Теги

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