Hi Timothy, The confusion with 755 and "755" could lead to security issues in cases like 600 vs "600" vs #o600. The need to protect against the 600 case is fairly important, however I don't think there is anything we can do about it, because someone might want to enter their modes as base 10 integers.
If we were to prepend every integer with #o (or setting the radix to 8 when reading this particular field) before passing it to org-babel-parse-header-arguments then it would be impossible to use base 10 integers unless they were provided in the #10r600 form (Emacs doesn't support #d600 notation). I think the best bet is to change the radix for bare integers to 8 when reading that particular header, however I don't know how complex that would be to implement. If we don't want to change the radix to 8 then here are some suggestions. If #o0600 already parses correctly, then I suggest we leave things as is. Adding complexity just to drop the leading # seems wasteful. We may want to warn or raise an error if someone uses a value such as the base 10 integer 600 which does not map to the usual expected octac codes so that they don't silently get bad file modes that could leave files readable to the world. Best, Tom