Нет, Вы не можете сделать то, что Вы спрашиваете. Как Вы отметили, Вы не можете сослаться на файл в файловой системе, которую Вы еще не смонтировали. [*]
Однако существует схема, которая могла бы работать на Вас: файловая система в файле на донорском разделе, смонтированном через циклическое устройство. Рассмотрите:
# 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.
Сначала удостоверьтесь, что поле датчика движения имеет закрытый ключ SSH, настроенный на нем: ssh-keygen
.
Затем удостоверьтесь, что открытый ключ для упомянутого закрытого ключа находится на более мощном компьютере. Необходимо поместить его в конце файла с именем как это:
/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
Затем от удаленного компьютера датчика, выполняет что-то как:
$ ssh user@more-powerful-computer '/usr/local/bin/process_motion_event'
Это работало над моей сетью
rsh myuser@192.168.1.100 mplayer /home/myuser/FF_Fanfare.mp3
Это потребовало, чтобы я ввел свой пароль. Для обхождения этого, можно использовать профили ssh или открытые ключи как отмеченный samiam.
У Вас есть много способов подключить две машины. Через 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
ssh root@more-powerful-computer mplayer /root/test.mp3
. Это вызвано тем, что это команда sudo заставляет Вас базироваться на мониторе, не более мощном компьютере. Для включения корневых логинов (если не уже сделанный), может, возможно, должен отредактировать файл/etc/sshd_config
(или это/etc/ssh/sshd_config
?). – samiam 02.02.2014, 04:10ssh
,ssh
будет искать закрытый ключ в корневом каталоге корня, не Вашем. (Также: делаетmplayer
действительно потребуйте корня? Это кажется мне, что-то как простое проигрывание звукового файла не должно требовать корня (OS Xafplay
не делает), и мне это не кажется очень хорошей идеей, мудрой безопасностью для включения корневых логинов только для этого.) – Blacklight Shining 02.02.2014, 06:56