Yeah, I can see argv[0] being checked, and yes, renaming the executable to something else would do the same thing, as would copying it to another name, etc etc...so many ways to do the same thing, hehe.

Good conversation about this btw. I've learned some stuff about symlinks and code from this and right now I'm trying to find the ln source code so I can look at the inode checking for cross-file-system hard links. I know that hard links share the same permissions as the target and that if someone changes the target, the hard link is changed (like a sync) but that's because they share the same inode. I'm guessing they won't let you hard link across file systems because of this.