Я хотел бы создать теневую копию тома (vshadow 2.2) из Cygwin через ssh:
$ ./vshadow.exe -p -nw C:
(...)
- Setting the VSS context to: 0x00000019
Creating shadow set {a5e0883e-9485-4243-8276-1ac7c569ab6a} ...
- Adding volume \\?\Volume{218a908d-1e3f-11df-a215-806e6f6e6963}\ [C:\] to the shadow set...
Creating the shadow (DoSnapshotSet) ...
ERROR: COM call "m_pVssObject->DoSnapshotSet(&pAsync)" failed.
- Returned HRESULT = 0x80070005
- Error text: Access is denied.
Я думаю, это потому, что локальный пользователь Windows cyg_server
что Cygwin работает как не имеет какого-либо разрешения.
Вещи, которые я пробовал:
/tracing
. Я не вижу много полезного в точке отказаcyg_server
Полный контроль. Без изменений.cyg_server
член Администраторов домена. Без изменений.vshadow без -nw
switch, а вместо этого получил:
$ ./vshadow.exe -p C: (...)
Как я могу сделать снимок по ssh с аутентификацией с открытым ключом?
Обновить: Я нашел эта ветка с 2007 года упомянув, что вы не можете, если используете аутентификацию с открытым ключом. Я убедился, что если я переименую свой файл id_rsa и использую пароль для входа в систему, он будет работать (с или без -nw
switch.) Но мне нужно использовать pubkey auth, чтобы создать сценарий резервного копирования. Автор не упоминает, почему это было так, но я думаю, что это не исправлялось за последние шесть лет ... есть ли обходной путь?
Можете ли вы выполнить обычное копирование / подключение с помощью открытого ключа?
Вы также можете проверить ветку на сайте резервного копирования, где один пользователь опубликовал то, что он настроил с помощью Windows 2003, а также сценарии, которые он использовал.
Использование cygwin, открытого ключа и rsync для резервного копирования Windows 2003
Суть в использовании at
команда для запуска чего-то как NT AUTHORITY\SYSTEM
потому что вход в систему с открытым ключом вместо пароля по какой-то причине заставляет вас работать как другой пользователь под Cygwin. Цитата:
# Launches passed input via 'at' to get around $USERNAME=SYSTEM
# problem under ssh login where the shell lacks permsisions to run
# commmands like vshadow or dosdev
# from a script by Jeffrey J. Kosowsky
function at_launch ()
{
local h m s wait1 command
if [ $3 != "" ] ; then
command="${1} ${2} >> ${3}"
else
command="${1} ${2}"
fi
set -- $(date +"%H %M %S")
h=$((10#$1)) #Note explicitly use base 10 so that 08 and 09 not interpreted as bad octal
m=$((10#$2 +1)) #Advance minutes by 1
s=$((10#$3))
wait1=$((60 - $s))
[ $s -gt 55 ] && let "m += 1" "wait1 += 60" # Make sure >5 seconds left
[ $m -ge 60 ] && let "m %= 60" "h += 1" #Overflow minutes
let "h %= 24"
at $h:$m $(cygpath -w $(which bash.exe)) -c "$command"
# > /dev/null
echo Running '$command' at $h:$m
return $wait1
}