Fear Not
Internet is safer when Schneier is at the drums.
Internet is safer when Schneier is at the drums.
One of my old machines died this past week. Nothing critical on it except for a few documents that were living in my encrypted private directory. The hard drives weren't the point though, so I wasn't too concerned about recovery.
When you first create your encrypted directory, you are given a recovery key. It is recommended that you write this down it keep somewhere safe. I didn't see any point in doing that; either the disk will die and I won't be able to recover anything, or I will be able to use the same mechanism the system uses to get that key.
That key is stored in ~/.ecryptfs/wrapped-passphrase if you only have ~/Private encrypted or /home/.ecryptfs/$USERNAME/.ecryptfs/wrapped-passphrase if you are encrypting your entire home directory. This file is encrypted using your normal login password. You can decrypt it with the command ecryptfs-unwrap-passphrase. That will give you the passphrase needed to mount your private directory: mount -t ecryptfs .Private Private.
Next time I need to do binary integer division by hand I'm sure this will be useful. It could also serve as a hilarious interview question.
Often I'll use (pp) or (message) to inspect a data structure in elisp. For example lets say I have a list l:
(setq l '(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15))
(message l)
=> (1 2 3 4 5 6 7 8 9 10 11 12 ...)
Often times I want to see the entire list instead of the truncated version. That's where eval-expression-print-length comes in. Setting this variable to nil results in the entire list being printed.
(message "%s" eval-expression-print-length)
=> 12
(setq eval-expression-print-length nil)
(message "%s" l)
=> (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)