Как замаскировать путь к файлу под другой в Linux

Я буду многое предполагать, в ваших описаниях не хватает столь необходимой информации, и это вводит в заблуждение.
install.sh - это скрипт, который вы ожидаете запустить в bash, представленный вами как:

a="/var/mqm/trace/WMQUNX8000.00/LINUX/MQV8000GA/6/x86_64/install.sh"

Если это так, назовите его так:

/path/to/bash "$a"

Конечно, в install.sh должен быть такой код. Опять же, (вздох)

  • предположение if_error может быть реализовано функцией if_error в коде ниже.
  • $bin - это значение папки bin, например /usr/bin
  • У вас нет этой проблемы.
#!/bin/bash
# If bash is not installed in /bin/bash,
# use the correct path above.

bin="/usr/bin"
mountinst='some wild guess of its value'

if_error(){
    if [[ $1 != 0 ]]; then
        shift
        echo "$@"
    fi
}

rpm --prefix $mountinst -ivh $BIN/MQSeriesRuntime_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesSDK_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesServer_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesClient_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesSamples_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesJava_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesJRE_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesMan_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesExplorer_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesAMS_6-8.0.0-0.x86_64.rpm \
$bin/MQSeriesGSKit_6-8.0.0-0.x86_64.rpm 2>&1 | tee /tmp/MQinstV80.out

if_error "$?" "Installing MQSeries V8.0"

chown "mqm:mqm" "/tmp/MQinstV80.out"
if_error "$?" "Changing ownership of MQinst.out"

# Temporary workaround till IBM gets back with a fix
mkdir "$mountinst/logs"
chown "mqm:mqm" "$mountinst/logs"
chmod "755" "$mountinst/logs"

2
13.03.2019, 22:30
2 ответа

Я думаю, вы хотите объединить тюрьму ssh chroot и монтирование привязки. Предполагая, что корень chroot — это /home/test123

  • Создайте среду chroot, я предпочитаю использовать джейлкит(https://olivier.sessink.nl/jailkit/)

  • Создайте привязку внутри chroot mount -o bind /var/test /home/test123/root

  • Настройте sshd для chroot, для этого есть несколько инструкций, но в основном вы хотите добавить test123 в группу пользователей sshchroot, а затем добавить это в свою конфигурацию /etc/ssh/sshd _: Match group sshchroot ChrootDirectory /home/%u
  • Перезапустите sshd
2
27.01.2020, 22:08

Если вам не нужна настоящая chroot-тюрьма, вам придется изолировать сеансы пользователя в отдельное пространство имен монтирования , а затем смонтировать/var/testпривязку к /rootвнутри только это пространство имен. Для этого потребуется настроить создание сеанса пользователя. Возможно, это может сделать пользовательская библиотека PAM?

(Реализация оставлена ​​читателю в качестве упражнения. :На самом деле я не знаю никаких готовых -инструментов, пригодных для реализации этого, поэтому для этого может потребоваться программирование пользовательской библиотеки PAM. Тем не менее, технология контейнеризации привела к быстрому развитию пространств имен Linux -. Возможно, на самом деле уже реализовано что-то полезное для этого, но я просто не знаю об этом?)

Однако:если бы я столкнулся с системой, в которой не -root-пользователь, такой как test123, имел права на запись в /root, не говоря уже о том, что он был домашним каталогом, я бы немедленно предположил, что это какая-то хитрость, поскольку это было бы крайне ненормальной и небезопасной конфигурацией, если бы она была реальной.Если бы я заметил это и не имел доступа root, я бы попытался уведомить фактического системного администратора как можно скорее. Если бы я был системным администратором и у меня не было другого объяснения, я бы настоятельно предпочел отключить эту систему от сети (, сначала сделав криминалистические дампы памяти, если это возможно ), выключив ее и забрав ее диск (s )на другой компьютер для анализа, что побочным эффектом опровергнет ваш обман.

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

0
27.01.2020, 22:08

Теги

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