Создание пользователя, имеющего только доступ к папке и подпапке, который присутствует у другого пользователя той же Системы

У меня есть 2 пользователя в моей системе ubuntu, User1 и User2.

У меня есть каталог (папка) в User1 as /home/User1/Software и я хочу установить эту папку программного обеспечения в качестве домашнего каталога User2, чтобы при каждом входе пользователя2 он мог видеть только папку с программным обеспечением, которая также была доступна только с доступом для чтения.

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

Вам нужно изменить учетную запись User2, чтобы она использовала ограниченную оболочку, такую ​​как rbash .

 sudo chsh -s /bin/rbash User2 

ПРИМЕЧАНИЕ. Это ограничит только оболочку командной строки пользователя (включая вход в систему через ssh ). Это не повлияет на их среду рабочего стола GUI, например, если они входят в систему на консоли.

См. man rbash для получения более подробной информации, но некоторые ограничения заключаются в том, что пользователю запрещено:

· Изменение каталогов с помощью cd

· Установка или снятие значений SHELL, PATH, ENV или BASH_ENV

· Указание имен команд, содержащих /

· Указать имя файла, содержащее a / в качестве аргумента. встроенная команда

· Перенаправление вывода с помощью операторов>,> |, <>,> &, &> и >> перенаправления

· С помощью команды exec builtin для замены оболочки другой командой

Эти ограничения применяются после чтения всех загрузочных файлов.

Переадресация блокировки может быть чрезмерной для ваших нужд (или, может быть, нет, так как в любом случае rbash ), но, к сожалению, с rbash это все или ничего.

Как запретить пользователю просматривать любые файлы в каталоге /home кроме их собственных

Выполняйте это, управляя разрешениями файлов в каталогах, которые вы не хотите видеть.

Дайте пользователю уникальное имя пользователя и имя группы. Убедитесь, что они не имеют права собственности на систему; получить их числовой идентификатор пользователя и идентификатор группы и запустить:

 sudo find / -uid n -o -gid n 

Сделать все файлы под /home доступными только для user и group , а не для other .

 sudo chmod -R o-rwx /home 

Чтобы другие пользователи в системе могли видеть файлы друг друга в /home , добавьте их все в общую группу, например users , и установите их umask на 002 (как правило, по умолчанию).

Если вам нужно больше ограничений, чем это, вы можете исследовать решения, связанные с rbash и / или chroot.