I expect you're getting ''permission denied" because the target drive needs to be unmounted before it can be copied to. I don't use OSX, but from what I've read, it looks like the terminal command would be "diskutil unmountDisk /dev/diskX" (with sudo/root permissions, and where diskX is your target disk). Unmounting it from the GUI may work, too.
I've used a procedure similar to the one recommended by psaux to create drive images on Linux. But I'd recommend performing the clone after booting off a another drive (like a LiveCD), because it can be problematic to image/clone at a low-level when the drive is in use.
I'm also not sure if the end result will be bootable. It will be a perfect copy, but the move to an external drive may make it unbootable. For example, in Linux, traditionally the root filesystem was specified by a device name like "/dev/sda1", but those device names change, depending on how drives are hooked up. And a changed device name means an unbootable system. I don't know how OSX would deal with the situation.
You might be better off just saving an image of the hackintosh install, then it can be restored if needed. You can use a similar "dd" command, except the output file will be a file.
To create a drive image, I'd boot off a Linux Live CD, then issue a command like "sudo dd if=/dev/sda of=drive.img", that'll save an image of the drive to a file named "drive.img" in the current directory (change the current dir to a USB drive or something prior to the command). The image will be uncompressed (a 16GB image file for a 16GB
SSD). You can compress as the image is created, but if you have the disk space, you can leave the compression for later (the Atom makes compression slow, so when I imaged my drive, I compressed the image afterwards on my Core 2).
...and if you want to proceed with a clone anyway:
I'd boot off a Linux LiveCD, then issue a command like this "sudo dd if=/dev/disk/by-id/ata-WDC_WD2000BJKT-00F4T0_XXXXXXXXXX of=/dev/disk/by-id/usb-WD_2500BEVExternal_XXXXXXXXXXX".
The "/dev/disk/by-id" directory has a list of drives and partitions by interface, then id, then serial number. It makes the device names long, but there's little chance of screwing them up (my example unambiguously images a internal (ata prefix) Western Digital 200GB drive to a USB 250GB). You could use a simpler command, like "sudo if=/dev/sda of=/dev/sdb", but that's easier to screw up. It might also be a good idea to mount the source drive (readonly), before proceeding with the imaging, because the system should prevent you from writing to a mounted drive (say if you mixup the source and target drives).
Also, be aware that this technique performs no filesystem or partition resizing. So, the target drive has to be at least as big as the source, and in the end, the partitions on the target drive might be undersized. For example, cloning a 16GB
SSD to a 120GB HDD will leave you with 100+ GB of unpartitioned space. It's possible to grow filesystems/partitions into unpartitioned space, but it's gonna be more awkward on a hackintosh.