Why don’t Unix users use symbolic permissions anymore?

Watching junior to intermediate level sysadmins on a handful of Unix-related IRC channels, I’ve noticed that no-one seems to use symbolic permissions with “chmod” anymore. This sort of puzzles me, because symbolic permissions are the only way to change some permissions without setting all of them at once. So, I ask of you:

I’d love to hear your thoughts on why you, or the people I see on IRC, use one or the other. Me, I tend to use numeric for straightforward file permissions (755, 644, 700, 600) and symbolic for anything that isn’t those four, and always symbolic for setting sticky bits and setuidness.

26 responses to “Why don’t Unix users use symbolic permissions anymore?”

  1. I do it the same way you do, but when I am dictating a command over the phone to someone relatively inexperienced and I want them to setuid/setgid, I use numeric permissions.

  2. So, I use numeric permissions when I want to clobber everything and symbolic permissions when I only want to tweak. But what do I know, I’m not a sysadmin anymore ;)

  3. I use symbolic permissions often, but mostly for stuff dealing with all perms, like “chmod a+rx foo”. I almost never use “-“. For all other cases, numerical.

  4. I don’t think I’ve ever used numeric permissions except when copying and pasting something someone else has written.

    I know it’s “only” binary arithmetic, but I always find it much faster to type exactly what I want than to figure out what the hell number I’m supposed to type in. As I’m not a full-time sysadmin, this applies even to things like 644 and 755, which I should know in my brain/fingers without thinking, but don’t.

  5. Oh — and if I don’t know/care about the current permissions of a file and only want to add/subtract world read or execute, I use symbolic, because it’s quicker.

  6. It depends on what I’m doing. If I run into a bunch of things and I think, “I need to make these readable for the web,” I type:

    chmod 0644 foo

    Same for making them executable:

    chmod 0755 foo

    If I have a bunch of things that just need one bit toggled either way, I tend to type something like:

    chmod a+r foo

    I never use the sticky bit letter form, I never remember it. I tend to never set uid/gid/sticky anyway.

  7. I don’t know the symbolic ones, though I’ve heard of them. They typically don’t occur to me.

    But then, I’m rarely in the situation where I want to add or subtract some bits to a number of files, regardless of their previous permissions.

    I use setuid and setgid rarely, but when I do, they’re together, and typically on a file with permission 6711, so I just use that number.

    But then, I’m not a sysadmin.

  8. I probably use numeric all the time (and seriously all the time — I’d have to look up the syntax for symbolic if I wanted to use it) simply because I’m always setting permissions, never tweaking. If I wanted to remove execute or read for certain groups, for example, it might be different.

  9. I’ve never learned symbolic permissions, nor do I know what the extra bits (sticky, etc.) are or how to set them.

    Typically, I’m making things either readable or executable: only recently have I started using permissions in ways to limit access to various parts of the system (with the purchase of a hosted server and starting to host other people there, I’ve needed to learn how to set things up so people can’t mess up their permissions, make things more public than they should be, and then yell at me.)

  10. I have to second your exception. I primarily use numbers (755, 644, 700, 600) for individual files and wildcards within a single directory. My brain is wired for that to be faster than trying to remember “ygo” is yourself, group, others, etc. I save the “go+w” type stuff when I’m doing something recursively, and even then I don’t always use it. For instance, if I want to tag directories as being executable, I’ll just use the -exec argument to “find” and number codes.

    Because I never use the extra (sticky) bits recursively, I was not even aware of +s and +t!

  11. I always use numbers, but that’s primarily because I only use chmod one time per system that I admin, and it looks like this:

    chmod -R 7777 /

  12. Wow, that’s a point I didn’t think about. I wonder how the numbers-only types do recursive chmod? I shudder to think of what the replacement for capital-X would look like.

  13. I tend to do numbers for mass files , as there’s only a few varations that I really use.

    If I am tinkering with an indiviual file I will use symbolic, mainly because it’s easier/quicker than figuring out the appropriate number.

  14. I typically use numbers for individual files, because there are really only a few that you need to know – 644, 775, etc.

    I use letters for setuid, setgid, and sticky because I do that stuff so rarely I don’t remember the numbers.

    For recursive find, it would depend on what I was doing.

  15. I can never remember the symbolic ones. I’ve assigned what the numbers do to “real words” in my head, and use the numbers.

  16. I think it’s actually more complicated behavior than you’re giving it credit for. For instance, the vast majority of the time when you want to set permissions, you’re setting something to 0755 or 0644. So people tend to type those, because they’ve seen them a million times, and it seems like the shortest path from A to B. At the same time, you don’t have to figure out what the current permissions are, and you don’t have to type a lot. But if you just want to, say, remove 01, then it’s generally much easier to do “o-x” than to think about which bit is which.

  17. I only ever do chmod in WS_FTP, which has checkboxes. I associate numbers with what I have to do to certain files because script instructions say so. :P

  18. I don’t spend so much time setting sticky bits and such, so I wind up looking those up and wind up coming up with numbers. Plain old permissions stuff, I can just remember the symbolic ones.

    So, I guess I’m you backwards. :-)

  19. For me, it often depends on what I’m changing the permissions on.

    Example: the other day I was burning a bunch of crap to CD off my mac, and Finder was complaining about “special permissions” which were probably setuid or whatever, and whatever they were, I didn’t need to keep them in the backup I was making. So I did chmod -R a-s stuff-to-backup/ and it got rid of them. There’d be no way to do that numerically without knowing exactly which files were relevant. Same thing if I know that some, but not all, permissions are screwed up in a directory of web stuff, where there are both subdirs and files: go+r will fix it, but 644 would screw the directories.

    That said, I’ll use 644 or 755 or whatever if it’s a simple case, and the simple cases account for more than 90% of my chmod use.

  20. I’ve been doing Unix professionally since 1987, and I still don’t know the numbers off hand. So unless I’m copying some install instruction that says “chmod 0644 foo.sh”, I’ll do a “chmod a+x foo.sh” or “chmod go-w myfile”. Hell, I don’t even remember that there is an “=” option or you can combine things (although I do remember +s and +t) so sometimes I’ll end up doing several chmods on one file to get it the way I want.