কমান্ড লাইন থেকে মাউন্ট LUKS


11

মধ্যে যখন nautilusবা cajaআমি একজন এনক্রিপ্ট ডিস্কের আইকনের উপর ক্লিক করুন এবং আমার পাসওয়ার্ড দেন, অভ্যন্তরীণ ব্লক ডিভাইসের ম্যাপ পরার /dev/mapper/luks-$UUIDএবং তা মাউন্ট পরার /media/$USER/$DISK, কোন রুট পাসওয়ার্ড প্রয়োজন। GUI ছাড়াই কমান্ড লাইন থেকে এই প্রক্রিয়াটি আহ্বান করার কোনও উপায় রয়েছে, যার মধ্যে সুডো ওভিয়েটিং এবং মাউন্টপয়েন্টটি আবার জিইউআই থেকে আনমাউন্ট করা সক্ষম হবে।


সুনির্দিষ্ট না হয়ে (সুতরাং একটি উত্তরের পরিবর্তে একটি মন্তব্য) আমি বিশ্বাস করি জিইউআই এটি udisks(বা udisks2) এর মাধ্যমে করে । এর সিএলআই ইউটিলিটি থেকে বিকল্পগুলি অনুসন্ধান করা আরও উত্তর সরবরাহ করতে পারে।
eth

এছাড়াও, এটি সম্ভব যে আপনি প্রথমবারে পাসওয়ার্ডটি প্রবেশ করিয়েছেন এবং এটি আপনার লগইন কেরিংয়ে সংরক্ষণ করার জন্য নির্বাচন করেছেন। অতএব, প্রযুক্তিগতভাবে এটি কোনও পাসওয়ার্ড ব্যবহার করে তবে এটি স্বয়ংক্রিয়ভাবে হয়ে যায় যাতে আপনি এটি দেখতে না পান।
মোড়ানো

উত্তর:


12

আমি এটি করার একক কমান্ডের উপায় জানি না। জিইউআই প্রোগ্রামগুলি "ডান" দৃষ্টিভঙ্গিটি গ্রহণ করার জন্য ডিস্কটির বেশ কিছু জিজ্ঞাসাবাদ করছে এবং আপনাকে সেই কাজটি কিছু নিজেই করতে হবে। যদিও আপনার সুডোর দরকার নেই এবং আমি মনে করি ইভেন্টগুলির ফলাফলের ক্রম তুলনামূলকভাবে বেদাহীন।

সংক্ষিপ্ত উত্তর

প্যাকেজ udisksctlথেকে ব্যবহার করুন udisks2:

udisksctl unlock -b /path/to/disk/partition
udisksctl mount -b /path/to/unlocked/device

উপরের কাজ করার জন্য আপনার ব্যবহারকারীর অ্যাকাউন্টটি যথাযথভাবে অনুমোদিত হওয়া দরকার। ডেবিয়ান এবং উবুন্টুতে, এর অর্থ আপনার অ্যাকাউন্টটি দলে যুক্ত করা plugdev

আপনি যখন ডিস্কটি সম্পন্ন করেন:

udisksctl unmount -b /path/to/unlocked/device
udisksctl lock -b /path/to/disk/partition
udisksctl power-off -b /path/to/disk/or/partition

কীভাবে জিনিস সেট আপ করবেন

ডিস্কটি যতটা সম্ভব বেদনাদায়ক ব্যবহারের প্রক্রিয়াটি তৈরি করতে আপনি কীভাবে জিনিসগুলি সেট করতে পারেন (কমান্ড লাইনের মাধ্যমে)। আমি ধরে নিচ্ছি আপনি ইউএসবি ড্রাইভের সম্পূর্ণতা একক ফাইল সিস্টেম হিসাবে ব্যবহার করতে চান। অন্যান্য কনফিগারেশনের নির্দেশাবলীতে পরিবর্তন প্রয়োজন। ভিন্নতার উপর সতর্কতা: আমি এনক্রিপ্ট করা পাত্রে LVM ব্যবহার করার কোনও উপায় খুঁজে পাইনি যা একটি অনিবদ্ধ অ্যাকাউন্টকে সমস্ত সংযোগ বিচ্ছিন্ন করার অনুমতি দেবে। (আমি এর মাধ্যমে কোনও ভলিউম গ্রুপ নিষ্ক্রিয় করার কোনও উপায় দেখতে পাচ্ছি না udisksctl))

উদাহরণের উদ্দেশ্যে, আমরা বলব যে ডিস্কটি /dev/sda। আপনার পরে ফাইলের সিস্টেমের নাম উল্লেখ করা সহজ হবে যাতে এটি পরে উল্লেখ করা সহজ হয়। আমি " example" ব্যবহার করব ।

পার্টিশন ডিস্ক

চালান sudo parted /dev/sdaএবং নিচের কমান্ড সঞ্চালন করুন:

mklabel gpt
mkpart example-part 1MiB -1s
quit

mkpartকমান্ড সম্ভবত পরামিতি সামান্য সমন্বয় করার অনুরোধ জানাতে হবে। আপনার প্রস্তাবিত নম্বরগুলি গ্রহণ করা আপনার উচিত।

পার্টিশনটি এখন উপলব্ধ হবে /dev/disk/by-partlabel/example-part

LUKS পার্টিশনটি তৈরি করুন এবং মাউন্ট করুন

sudo cryptsetup luksFormat /dev/disk/by-partlabel/example-part

অনুরোধ জানাতে পারেন।

sudo cryptsetup luksOpen /dev/disk/by-partlabel/example-part example-unlocked

এনক্রিপ্ট করা ডিভাইস এখন পাওয়া যাবে /dev/mapper/example-unlocked। এটি স্থায়ী জিনিস হতে যাচ্ছে না; এটি ঠিক সেটআপ প্রক্রিয়াটির জন্য।

আপনার ফাইল সিস্টেমটি তৈরি করুন

ধরে নেওয়া যাক আপনি যে ফাইল সিস্টেমটি ব্যবহার করছেন তা হ'ল এক্সএফএস। খুব সুন্দর যে কোনও অন্যান্য traditionalতিহ্যবাহী ফাইল সিস্টেম একইভাবে কাজ করবে। গুরুত্বপূর্ণ বিষয়টি হ'ল এমন লেবেল যুক্ত করা যা আপনি পরে উল্লেখ করতে পারেন:

sudo mkfs -t xfs -L example /dev/mapper/example-unlocked

ফাইল সিস্টেমের ব্লক ডিভাইসটির মাধ্যমে এখন অ্যাক্সেস করা যায় /dev/disk/by-label/example

ফাইল সিস্টেমের অনুমতি সেট করুন

ডিফল্টরূপে, ফাইল সিস্টেম কেবল রুট দ্বারা অ্যাক্সেসযোগ্য হবে। বেশিরভাগ ক্ষেত্রে, আপনি সম্ভবত ফাইলগুলি আপনার ব্যবহারকারী অ্যাকাউন্টের মাধ্যমে অ্যাক্সেসযোগ্য হতে চান। আপনার অ্যাকাউন্টের নাম ধরে নেওয়া " user":

udisksctl mount -b /dev/disk/by-label/example
sudo chown user:user /media/user/example

সবকিছু বন্ধ করুন Close

udisksctl unmount -b /dev/disks/by-label/example
sudo cryptsetup luksClose example-unlocked

আপনার ফাইল সিস্টেমটি ব্যবহার করুন

এটি আপনি নিয়মিত করবেন। ইউএসবি ড্রাইভে প্লাগ ইন করার পরে,

udisksctl unlock -b /dev/disks/by-partlabel/example-part
udisksctl mount -b /dev/disks/by-label/example

আপনার ব্যবহারকারীর অ্যাকাউন্টটি যদি " user" হয় তবে ফাইল সিস্টেম এখন মাউন্ট হবে /media/user/example

ফাইল সিস্টেমটি আনমাউন্ট করতে:

udisksctl unmount -b /dev/disks/by-label/example
udisksctl lock -b /dev/disks/by-partlabel/example-part
udisksctl power-off -b /dev/disks/by-partlabel/example-part

এখন আপনি ইউএসবি ড্রাইভ সংযোগ বিচ্ছিন্ন করতে পারেন।


আমি একটি ওপেন সোর্স বাশ স্ক্রিপ্ট তৈরি করেছি যা আপনার "আপনার ফাইল সিস্টেমটি ব্যবহার করুন" বিভাগটি স্বয়ংক্রিয় এবং সহজতর করে: github.com/JerichoJyant/usbkey । এটি ইউএসবি ফ্ল্যাশ ড্রাইভের জন্য ডিজাইন করা হয়েছে। আপনার এখানে বর্ণিত সেটআপটিও স্ক্রিপ্টে অন্তর্ভুক্ত করার বিষয়ে আমি পরিকল্পনা করছি।
জোশ প্যাটন

3

উত্তর দ্বারা asciiphil সঠিক বলে আমার মনে হচ্ছে, এবং যেমন চিহ্নিত করা উচিত।

এটি শুরু হয়, "এটি করার জন্য আমি একক কমান্ডের উপায় জানি না।" আমি হয় না, এবং একটি অনুরূপ বৈশিষ্ট্য অনুরোধ খোলা আছে । একটি কর্মক্ষেত্র হিসাবে, একটি পার্টিশন আনলক এবং মাউন্ট করার একক কমান্ড উপায় প্রদান করতে একটি মোড়ক স্ক্রিপ্ট তৈরি করতে পারে।

ধরে নিচ্ছি যে আপনি ব্যাশ ব্যবহার করেছেন, নীচের স্ক্রিপ্টটি সংরক্ষণ করুন যেমন unlock-and-mount, এটি কার্যকর করার যোগ্য করুন এবং এটি আপনার ডিরেক্টরিতে রেখে দিন PATH। এরপরে আপনি এক ধাপে একটি ডিভাইস আনলক করতে এবং মাউন্ট করতে সক্ষম হবেন unlock-and-mount /dev/disk/by-id/my-device-part-X

সতর্কতা: এটি স্ট্যান্ডআউটে udisksctlপ্রেরিত বার্তাগুলি বিশ্লেষণ এবং udisksctlকমান্ড-লাইন ইন্টারফেসের স্থিতিশীলতার উপর নির্ভর করে । udisksctl ম্যান পেজ অনুসারে এটি ভঙ্গুর , যা বলে:

[এই] প্রোগ্রামটি স্ক্রিপ্টগুলি বা অন্যান্য প্রোগ্রাম দ্বারা ব্যবহার করার উদ্দেশ্যে নয় - বিকল্পগুলি / আদেশগুলি ভবিষ্যতে এমনকি রক্ষণাবেক্ষণের ক্ষেত্রেও সামঞ্জস্যপূর্ণ নয় change

ইতিমধ্যে, এখানে স্ক্রিপ্টটি রয়েছে যা এখনকার জন্য কাজ করে:

#!/usr/bin/env bash
# A convenience wrapper around `udisksctl`.

# Trace execution 
set -x

# Abort on errors. (I find this helpful, despite the cautions given in
# http://mywiki.wooledge.org/BashFAQ/105 and
# http://mywiki.wooledge.org/BashFAQ/112 .)
set -e
set -u

# Define functions
die () {
    echo >&2 "$@"
    exit 1
}

# Validate input argument(s) 
[[ "$#" -eq 1 ]] || die "Exactly 1 argument required: path to partition ID. $# given"
[[ -b "$1" ]]    || die "$1 is not a block device"
[[ "$1" == /dev/disk/by-id/* ]] || die "$1 does not begin '/dev/disk/by-id/'"

# Unlock partition
unlockedpart="$(udisksctl unlock -b "$1" |\
 tail -n1 |\
 sed -e 's/^Unlocked \/dev\/[[:print:]]\+ as \([[:print:]]\+\).$/\1/' \
)"

# Mount unlocked partition
udisksctl mount -b "$unlockedpart"

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.