เมื่อฉันเขียนคำตอบนี้เมื่อไม่กี่ปีที่ผ่านมานี่เป็นวิธีที่ดีที่สุดในการนำโซลูชันมาใช้ ตอนนี้ฉันขอแนะนำให้คุณดูคำตอบต่อไปโดยใช้ mount.ecryptfs_private แทน
ฉันกำลังมองหาวิธีในการเมานต์ eCryptfs ปริมาณที่สองโดยอัตโนมัติ คอลเล็กชันของสคริปต์และการแก้ไขการกำหนดค่าต่อไปนี้จะปลอดภัยและปรับระดับเสียงของคุณโดยอัตโนมัติเมื่อเข้าสู่ระบบไม่ว่าจะเป็น GUI หรือ CLI
มีวิธีแก้ปัญหาที่ดีกว่าซึ่งกำลังอยู่ในขั้นตอนการสร้าง (แม้ว่าฉันคิดว่ายังไม่พร้อมสำหรับการติดตั้งโดยอัตโนมัติในการเข้าสู่ระบบของผู้ใช้สคริปต์นี้จะมีอายุการเก็บรักษาที่ จำกัด ):
ecryptfs บนฮาร์ดไดรฟ์ขนาดเล็กเกินไป - วิธีเพิ่มลิงค์ในการเข้ารหัส?
ความปลอดภัยของสคริปต์ขึ้นอยู่กับไดเรกทอรีหลักของคุณที่เข้ารหัสด้วย eCryptfs เพื่อให้สคริปต์และไฟล์ที่มีรหัสผ่านเพื่อแกะรหัสผ่านของคุณถูกเข้ารหัส หากคุณเปิดคอมพิวเตอร์ทิ้งไว้โดยที่รูทเชลล์เปิดหลังจากเข้าสู่ระบบคุณจะสามารถเข้าถึงรหัสผ่านได้อย่างไรก็ตามการใช้ sudo NOPASSWD ช่วยให้สามารถติดตั้งพาร์ติชันได้อย่างปลอดภัยโดยไม่ต้องป้อนรหัสผ่านหรือทิ้งข้อความรหัสผ่านไว้ในไฟล์
ข้อบกพร่องที่รู้จักอย่างหนึ่งของสคริปต์เหล่านี้คือโวลุ่มที่สองของคุณจะไม่ถูกถอดออกจากการล็อกเอาต์ดังนั้นจึงไม่เหมาะสำหรับระบบที่มีผู้ใช้หลายคน
โซลูชันของฉันมีการใช้งานหลายส่วนเชลล์สคริปต์สองอันอันหนึ่งที่ทำการติดตั้งจริงและอีกอันที่ทำหน้าที่เป็นตัวหุ้ม
นี่เป็นสคริปต์ตัวตัดคำที่ตรวจสอบความถูกต้องหากไดเรกทอรีนั้นถูกเมาท์อยู่แล้วหากไม่ได้อยู่นั้นจะเรียกสคริปต์การเมานท์โดยใช้ sudo:
/ home / johnf / scripts / automount_ecryptfs
#!/bin/bash
MOUNT_POINT=/home/johnf/slow
grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
sudo /home/johnf/scripts/mount_other_ecryptfs
fi
สคริปต์นี้เรียกใช้ / home / johnf / สคริปต์ / mount_other_ecryptfs ซึ่งมีดังนี้
โปรดทราบว่าสคริปต์นี้อนุมานว่าคุณเปิดใช้งานการเข้ารหัสชื่อไฟล์หากคุณไม่จำเป็นต้องปรับเปลี่ยนสคริปต์เพื่อจัดการกับการตรวจจับ (ดูที่ ecryptfs-recovery-private) หรือคุณสามารถลบตัวเลือกการติดตั้ง ecryptfs_fnek_sig
ต่อไปนี้คือสคริปต์ / home / johnf / สคริปต์ / mount_other_ecryptfs:
#!/bin/bash
ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}
คุณจะต้องสร้างไฟล์ด้วยรหัสผ่านของคุณในนั้นไฟล์นี้จะถูกใช้โดยคำสั่ง eCryptfs mount:
/ home / johnf / scripts / ecryptfs_passphrase:
passwd=secret_passphrase
คุณต้องแก้ไขการอนุญาตในหลาย ๆ ไฟล์:
chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase
ก่อนที่จะสร้างสคริปต์คุณต้องสร้างการกำหนดค่า sudoers เพื่ออนุญาตการดำเนินการของสคริปต์การติดตั้งโดยใช้ sudo โดยไม่ต้องป้อนรหัสผ่าน sudo ของคุณ
เพิ่มสิ่งต่อไปนี้ใน / etc / sudoers (หรือไฟล์ใน /etc/sudoers.d) คุณจะต้องการแทนที่ johnf ด้วยชื่อผู้ใช้ของคุณ จำเป็นต้องใช้พา ธ สัมบูรณ์ไปยังสคริปต์การเมานต์
johnf ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs
ขั้นตอนสุดท้ายคือการเรียกใช้สคริปต์ automount_ecryptfs ในการเข้าสู่ระบบ
บน Ubuntu Unity (และอาจเป็น gnome) ให้ใช้แอปเพล็ตเริ่มต้นเพื่อสร้างโปรแกรมเริ่มต้นใหม่ที่เรียก / home / johnf / สคริปต์ / automount_ecryptfs
ในการเมานต์ eCryptfs ปริมาณที่สองโดยอัตโนมัติเมื่อเข้าสู่ระบบใน bash shell คุณจะต้องแก้ไขไฟล์ ~ / .bashrc ของคุณ เพิ่มรายการต่อไปนี้:
/home/johnf/scripts/automount_ecryptfs
ด้วยการกำหนดค่านี้คุณควรเมานต์ eCryptfs ตัวที่สองของคุณโดยอัตโนมัติ