Ограничьте пользователя от просмотра файлов, которыми он не владеет

Я думаю, что необходимо использовать:

testvar="sudo /home/pi/shared/blink.sh 27 off"
ssh -n -q -q -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 $1 "${testvar}"

Это работает на меня:

$ bash -x -c 'testvar="la la la"; echo "${testvar}"'
+ testvar='la la la'
+ echo 'la la la'
la la la

Но если я пишу, что то же как Вы сделало, я получаю тот же неправильный результат:

$ bash -x -c 'testvar="\"la la la\""; echo ${testvar}'
+ testvar='"la la la"'
+ echo '"la' la 'la"'
"la la la"
2
31.12.2014, 16:42
2 ответа

Одним из вариантов, которые могут работать, является создание Chroot с минимальной установкой вашей системы. В Debian и Ubuntu это может быть достигнуто с Debootstrap. В FreeBSD это достигается более тщательно через тюрьмы (я не буду ссылаться на тюремные тюрьмы, отличные от здесь).

После того, как у вас есть этот шаг, запустите SSHD на другом порту в среде Chroot. Что-то вроде этого:

chroot /srv/chroot-for-user /usr/bin/sshd -p 2200

Добавьте пользователя в Chroot / etc / passwd и создайте домашний каталог для них.

Они будут войти в новую среду и увидеть только файлы до границы Chroot. Они все равно будут прочитать доступ ко всем системам системных файлов в Chroot, как раньше, потому что без них они не смогут использовать обычные системные инструменты, такие как Ls, awk и Tee, но они будут их собственной копией за пределами Chroot.

Есть еще более умные способы достижения такого рода вещей, но Chroot - это проверенный и верный способ ограничить доступ к файловой системе.

2
27.01.2020, 22:00

Если ваш пользователь переходит на SSH к системе, это немного сложно. Если он будет использовать SFTP-клиент, вы можете настроить chroot jail. Это позволит вам установить ChrootDirectory в папку, на которую вы ссылаетесь.

2
27.01.2020, 22:00

Теги

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