Широковещательная передача или отправляет машиночитаемый код ssh клиентам

Нет, Вы не можете сделать то, что Вы спрашиваете. Как Вы отметили, Вы не можете сослаться на файл в файловой системе, которую Вы еще не смонтировали. [*]

Однако существует схема, которая могла бы работать на Вас: файловая система в файле на донорском разделе, смонтированном через циклическое устройство. Рассмотрите:

# cd /mnt/temphome
# chmod 700 .
# chown root.root .
# dd if=/dev/zero of=temphome bs=4k count=1M
# mke2fs -j temphome
(answer yes to the annoying question)
# mount temphome /home -o loop

То, что это делает, создает 4 гибибайта /home файловая система, которая живет в файле в корне /mnt/temphome раздел. Все еще необходимо смонтировать донорский раздел и оставить смонтированным, но только базироваться, может смонтировать его или изменить его содержание непосредственно, включая монтирование /home через циклическое устройство. После того как Вы смонтировали новое /home, однако, обычные пользователи могут записать в ту новую файловую систему, потому что они делают так через ядро, которое имеет власть делать это, питание, которым управляют полномочия в файловой системе цикла.

Если по некоторым причинам, который все еще выставляет /mnt/temphome раздел для больше риска, чем Вы хочет принять, лучшая альтернатива, о которой я могу думать, должна использовать gparted, чтобы уменьшить донорский раздел и использовать пространство, открытое для создания нового временного файла /home раздел. Когда Вы сделаны с помощью него, поп назад в gparted, удаляете временный раздел и повторно разворачиваете донорский раздел для использования освобожденного пространства. Это имеет его собственные риски, хотя: изменение разделов не является 100%-м сейфом.


[*] ну, это не совсем верно. Иногда Вы видите, что обман включает знание точного дискового местоположения (сектор, голова, дорожка) файлов в других файловых системах. Это наиболее распространено в операциях низкого уровня: спящий режим, подкачка, загружаясь... Чтобы это работало, Вам нужен абсолютно непрерывный файл (т.е. никакая фрагментация), который никогда не перемещается, так, чтобы можно было только начать читать и писать необработанные секторы от и до размонтированного раздела.

Если Вы наблюдаете тенденцию таких вещей со временем, тем не менее, Вы замечаете, что они имеют тенденцию становиться менее популярными со временем из-за различных последствий. С одной стороны, дефрагментаторы имеют тенденцию повреждать такие схемы. Это - одна причина /boot и swap обычно отдельные разделы в соответствии с Linux.

2
02.02.2014, 01:30
3 ответа

Шаг № 1

Сначала удостоверьтесь, что поле датчика движения имеет закрытый ключ SSH, настроенный на нем: ssh-keygen.

Шаг № 2

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

 /home/${user}/.ssh/authorized_keys

Примечание: $ {пользователь} является именем Вашего пользователя на более мощном компьютере.

Кроме того, удостоверьтесь на мощном компьютере, /home/${user}/.ssh/ имеет полномочия 700 (drwx------), и /home/${user}/.ssh/authorized_keys имеет полномочия 600 (-rw-------). Можно использовать chmod установить полномочия.

$ chmod 700 /home/${user}/.ssh/
$ chmod 600 /home/${user}/.ssh/authorized_keys

Шаг № 3

Затем от удаленного компьютера датчика, выполняет что-то как:

$ ssh user@more-powerful-computer '/usr/local/bin/process_motion_event'
1
27.01.2020, 22:22
  • 1
    мне действительно нравится этот ответ, но по некоторым причинам шаг 3 не вполне работает. таким образом в движении приложение Linux, на on_motion_detected строке, у меня есть команда: sudo ssh user@more-powerful-computer "mplayer ~/test.mp3", но это не работает из-за pubkey того, чтобы быть отклоненным. Если я просто непосредственно выполняю это команда sudo от поля датчика, она также не работает..., она будет только работать с регулярным ssh, не sudo ssh. Однако приложение движения не инициирует события без команды, являющейся sudo. –  Uzumaki Naruto 02.02.2014, 03:46
  • 2
    Необходимо будет разрешить, чтобы корневые логины на more-powerful-computer затем сделали ssh root@more-powerful-computer mplayer /root/test.mp3. Это вызвано тем, что это команда sudo заставляет Вас базироваться на мониторе, не более мощном компьютере. Для включения корневых логинов (если не уже сделанный), может, возможно, должен отредактировать файл /etc/sshd_config (или это /etc/ssh/sshd_config?). –  samiam 02.02.2014, 04:10
  • 3
    Нужно также отметить это, потому что корень на локальной машине выполняется ssh, ssh будет искать закрытый ключ в корневом каталоге корня, не Вашем. (Также: делает mplayer действительно потребуйте корня? Это кажется мне, что-то как простое проигрывание звукового файла не должно требовать корня (OS X afplay не делает), и мне это не кажется очень хорошей идеей, мудрой безопасностью для включения корневых логинов только для этого.) –  Blacklight Shining 02.02.2014, 06:56
  • 4
    К Вашему Невидимому свету точки - как я делаю движение выполненным как обычный пользователь, так, чтобы этому не был нужен sudo к ssh. –  Uzumaki Naruto 02.02.2014, 17:19
  • 5
    @UzumakiNaruto я понятия не имею. Что происходит, когда Вы пробуете? (На самом деле необходимо, вероятно, задать новый вопрос для этого.) –  Blacklight Shining 02.02.2014, 22:34

Это работало над моей сетью

  rsh myuser@192.168.1.100 mplayer /home/myuser/FF_Fanfare.mp3

Это потребовало, чтобы я ввел свой пароль. Для обхождения этого, можно использовать профили ssh или открытые ключи как отмеченный samiam.

0
27.01.2020, 22:22

У Вас есть много способов подключить две машины. Через ssh один из них. Самый легкий путь однако состоит в том, чтобы использовать NetCat (man nc) который по умолчанию доступен для многих Нельдов.

На другом поле (box1):

nc -l -p 9999|while read line; do echo $line; done

На поле (box0) датчика:

echo "sensor code"| nc box1 9999

Таким образом, box1 получает весь вход box0, отправляет.

Если Вы хотите использовать ssh:

На поле (box0) датчика:

echo "sensor code" | ssh box1 'cat >> /path/sensor.log'

На другом поле (box1):

tail -f /path/sensor.log|while read line; do echo $line; done
0
27.01.2020, 22:22
  • 1
    Каковы преимущества этого относительно ssh метода? –  Uzumaki Naruto 02.02.2014, 02:39
  • 2
    Существует скидка - и преимущества, nc не использует шифрование, таким образом, на Вашем слабом поле не много необходимого уплотнения данных, и Вы отправляете данные быстрее, чем на ssh. Недостатки: если необходимо отправить данные зашифровали, необходимо будет использовать ssh или nc через ssh, но существует слишком много способов сделать это. –   02.02.2014, 02:43

Теги

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