Chmod рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
Chmod рдХреИрд▓рдХреБрд▓реЗрдЯрд░ Unix/Linux рдлрд╝рд╛рдЗрд▓ рдкрд░рдорд┐рд╢рди рдХреЛ рдЙрд╕ рдиреНрдпреВрдореЗрд░рд┐рдХ (рдСрдХреНрдЯрд▓) рдиреЛрдЯреЗрд╢рди рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ chmod рдХрдорд╛рдВрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд┐рдВрдмреЙрд▓рд┐рдХ rwxrwxrwx рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреА рджреЗрддрд╛ рд╣реИред Unix рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рддреАрди рдкрд░рдорд┐рд╢рди рдЧреНрд░реБрдк рд╣реЛрддреЗ рд╣реИрдВ тАФ рдУрдирд░ (рдорд╛рд▓рд┐рдХ), рдЧреНрд░реБрдк рдФрд░ рдЕрдиреНрдп тАФ рдФрд░ рд╣рд░ рдЧреНрд░реБрдк рдХреЛ read, write рд╡ execute рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЯреВрд▓ рдХрд┐рд╕реА рднреА POSIX рд╕рд┐рд╕реНрдЯрдо (Linux, macOS, BSD) рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ
рд╣рд░ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬреЛ рдкрд░рдорд┐рд╢рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдмреЙрдХреНрд╕ рдкрд░ рдЯрд┐рдХ рдХрд░реЗрдВред рдУрдирд░ рдкрдВрдХреНрддрд┐ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдЧреНрд░реБрдк рдкрдВрдХреНрддрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЧреНрд░реБрдк рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ, рдФрд░ рдЕрдиреНрдп рдкрдВрдХреНрддрд┐ рдмрд╛рдХреА рд╕рднреА рдХреЛред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рддреБрд░рдВрдд 3-рдЕрдВрдХреАрдп рдСрдХреНрдЯрд▓ рдореЛрдб рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк chmod 755 file рдЬреИрд╕реА рдХрдорд╛рдВрдб рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╕рд┐рдВрдмреЙрд▓рд┐рдХ рд░реВрдк рднреАред
рдлрд╝реЙрд░реНрдореВрд▓рд╛ рд╕рдордЭреЗрдВ
рд╣рд░ рдкрд░рдорд┐рд╢рди рдХрд╛ рдПрдХ рдорд╛рди рд╣реЛрддрд╛ рд╣реИ: read = 4, write = 2, execute = 1. рд╣рд░ рдЧреНрд░реБрдк рдХреЗ рд▓рд┐рдП рджреА рдЧрдИ рдкрд░рдорд┐рд╢рди рдХреЗ рдорд╛рди рдЬреЛрдбрд╝рдХрд░ 0 рд╕реЗ 7 рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ:
$$\text{Chmod} = \underbrace{\left(4\,\text{r} + 2\,\text{w} + \text{x}\right)}_{\text{Owner}} \;\underbrace{\left(4\,\text{r} + 2\,\text{w} + \text{x}\right)}_{\text{Group}} \;\underbrace{\left(4\,\text{r} + 2\,\text{w} + \text{x}\right)}_{\text{Other}}$$
\(\text{рдЕрдВрдХ} = 4 \cdot r + 2 \cdot w + 1 \cdot x\)
рддреАрдиреЛрдВ рдЕрдВрдХ рдУрдирд░-рдЧреНрд░реБрдк-рдЕрдиреНрдп рдХреЗ рдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЕрдВрддрд┐рдо рдореЛрдб рдмрдирддрд╛ рд╣реИред
рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг
рдорд╛рди рд▓реАрдЬрд┐рдП рдУрдирд░ read, write рдФрд░ execute рдХрд░ рд╕рдХрддрд╛ рд╣реИ (\(4+2+1 = 7\)), рдЧреНрд░реБрдк read рдФрд░ execute рдХрд░ рд╕рдХрддрд╛ рд╣реИ (\(4+0+1 = 5\)), рдФрд░ рдЕрдиреНрдп рднреА read рдФрд░ execute рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (\(4+0+1 = 5\))ред рдирддреАрдЬрд╛ рд╣реИ 755, рд╕рд┐рдВрдмреЙрд▓рд┐рдХ рд░реВрдк rwxr-xr-x тАФ рдХрд┐рд╕реА рдПрдХреНрдЬрд╝рд┐рдХреНрдпреВрдЯреЗрдмрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рдореЛрдб рд╣реИред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓
644 рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдУрдирд░ read+write (6), рдЧреНрд░реБрдк read (4), рдЕрдиреНрдп read (4) тАФ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдЬреИрд╕реА рдиреЙрди-рдПрдХреНрдЬрд╝рд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рд╣реИред
777 рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рд╣рд░ рдХреЛрдИ read, write рдФрд░ execute рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддреЛ рд╣реИ рдкрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ execute рдХреНрдпреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реИ? рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ execute рдмрд┐рдЯ рдЖрдкрдХреЛ рдЙрд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдФрд░ рдЕрдВрджрд░ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрд╣рд╛рдБ read рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣рд╛рдБ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдЖрдорддреМрд░ рдкрд░ execute рдХреА рднреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИред