whats the difference between chmod 777 and chmod 7777

I have a professor who insists on always typing chmod 7777, but I was taught that chmod 777 was the proper convention.

I tried them out on the command line and chmod 777 something.txt yeilds

-rwxrwxrwx 1 home staff 0 May 6 16:47 something.txt

and chmod 7777 something.txt yields

-rwsrwsrwt 1 home staff 0 May 6 16:47 something.txt

Which changes the executable fields to s, s and t. I understand 777 because it's 111 111 111 in binary, so its just turning on all the fields, but why would I use 7777 and what does it do differently?

5

4 Answers

In 7777, the first three bits are the setuid, setgid, and sticky flags. These should only be set under very special circumstances. You're correct that 777 is the more appropriate setting (if you want to make the file both world-writable and world-executable).

And unless the file is an executable program or script, or a directory, you usually shouldn't set the x bits. There's not much harm in doing so, though.

3

There is no reason for a sensible professor to insist setting the setuid/gid and sticky bits so perhaps are you confusing 7777 and 0777.

The permissions being stated as an octal number, the proper convention to represent them is to prepend a 0. This is just like when 0x is used to distinguish an hexadecimal number.

Note that chmod doesn't expect the permissions to be expressed in decimal or hexadecimal so this octal prefix is optional.

2

The leftmost digit is the setuid, setgid, and stickybit digit. The first two set the effective user and group ids of the user opening the file. I don't know what stickybit is.

The sticky bit is used to tell the operating system to keep the file in RAM as much as possible to reduce reads from disk and reduce latency. This is applied to files that are sued often and needed with high immediacy. Some OS's and software systems ignore it or use other methods to accomplish the same thing. But that is where the sticky name comes from (keep it stuck in memory whenever possible)

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like