cs/wip
This commit is contained in:
parent
8d869993a7
commit
40d6d79394
1 changed files with 22 additions and 8 deletions
|
@ -1,6 +1,7 @@
|
||||||
_rwx_cmd_cs() { rwx_crypt "${@}"; }
|
_rwx_cmd_cs() { rwx_crypt "${@}"; }
|
||||||
|
|
||||||
RWX_CRYPT_ROOT="/data/home/user/crypt"
|
RWX_CRYPT_ROOT="/data/home/user/crypt"
|
||||||
|
RWX_CRYPT_VAR="/var/lib/crypt"
|
||||||
|
|
||||||
rwx_crypt_device() {
|
rwx_crypt_device() {
|
||||||
local device size
|
local device size
|
||||||
|
@ -48,28 +49,35 @@ rwx_crypt() {
|
||||||
if [ -f "${crypt_file}" ]; then
|
if [ -f "${crypt_file}" ]; then
|
||||||
crypt_map="${mapper}/${crypt_arg}"
|
crypt_map="${mapper}/${crypt_arg}"
|
||||||
crypt_mount="${mount_root}/${crypt_arg}"
|
crypt_mount="${mount_root}/${crypt_arg}"
|
||||||
|
local device
|
||||||
case "${action}" in
|
case "${action}" in
|
||||||
"${action_open}")
|
"${action_open}")
|
||||||
local device
|
|
||||||
if ! device="$(rwx_crypt_device)"; then
|
if ! device="$(rwx_crypt_device)"; then
|
||||||
rwx_log_error 4 "No device available"
|
rwx_log_error 4 "No device available"
|
||||||
fi
|
fi
|
||||||
|
# record device
|
||||||
|
if ! rwx_file_write \
|
||||||
|
"${RWX_CRYPT_VAR}/${crypt_arg}" "${device}"; then
|
||||||
|
rwx_log_error 5 "Writing failure: ${device}"
|
||||||
|
fi
|
||||||
# connect device
|
# connect device
|
||||||
if ! qemu-nbd --connect "${device}" "${crypt_file}"; then
|
if ! qemu-nbd --connect "${device}" "${crypt_file}"; then
|
||||||
rwx_log_error 5 "Connection failure: ${device}"
|
rwx_log_error 6 "Connection failure: ${device}"
|
||||||
fi
|
fi
|
||||||
# open device
|
# open device
|
||||||
echo "${pass_phrase}" |
|
if ! echo "${pass_phrase}" |
|
||||||
cryptsetup luksOpen "${device}" "${crypt_arg}"
|
cryptsetup luksOpen "${device}" "${crypt_arg}"; then
|
||||||
|
rwx_log_error 7 "Opening failure: ${device}"
|
||||||
|
fi
|
||||||
# make mount directory
|
# make mount directory
|
||||||
if ! mkdir --parents "${crypt_mount}"; then
|
if ! mkdir --parents "${crypt_mount}"; then
|
||||||
rwx_log_error 7 "Making failure: ${crypt_mount}"
|
rwx_log_error 8 "Making failure: ${crypt_mount}"
|
||||||
fi
|
fi
|
||||||
# mount file system
|
# mount file system
|
||||||
if ! mount \
|
if ! mount \
|
||||||
--options "autodefrag,compress-force=zstd" \
|
--options "autodefrag,compress-force=zstd" \
|
||||||
"${crypt_map}" "${crypt_mount}"; then
|
"${crypt_map}" "${crypt_mount}"; then
|
||||||
rwx_log_error 8 "Mounting failure: ${crypt_map}"
|
rwx_log_error 9 "Mounting failure: ${crypt_map}"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"${action_close}")
|
"${action_close}")
|
||||||
|
@ -85,8 +93,14 @@ rwx_crypt() {
|
||||||
if ! cryptsetup luksClose "${crypt_arg}"; then
|
if ! cryptsetup luksClose "${crypt_arg}"; then
|
||||||
rwx_log_error 6 "Closing failure: ${crypt_arg}"
|
rwx_log_error 6 "Closing failure: ${crypt_arg}"
|
||||||
fi
|
fi
|
||||||
# TODO disconnect device
|
# load device
|
||||||
rwx_log_error 7 "Disconnecting failure: ${crypt_arg}"
|
if ! device="$(cat "${RWX_CRYPT_ROOT}/${crypt_arg}")"; then
|
||||||
|
rwx_log_error 7 "Loading failure: ${crypt_arg}"
|
||||||
|
fi
|
||||||
|
# disconnect device
|
||||||
|
if ! qemu-nbd --disconnect "${device}"; then
|
||||||
|
rwx_log_error 8 "Disconnection failure: ${device}"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue