Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Linux ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅
Linux ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΡΠ° Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡΠ΅ β ΠΈ Π½Π°ΠΉ-Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½ΠΈ β Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ production ΡΠ΅Π± ΡΡΡΠ²ΡΡ, ΡΠ°Π·Π²Π΅ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, ΡΠΎΠ»ΠΈΠ΄Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Linux ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ. ΠΠΊΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠ°, ΡΠΈΡΠΊΡΠ²Π°ΡΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΡΡΠΏΠ΅Π½ΠΈ ΡΠ°Π·Π²Π΅ΡΡΠ°Π²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΠΊΠΎ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΠΈΠΌΠ°ΡΠ΅ ΠΌΠΎΡΠ½Π°, Π³ΡΠ°Π½ΡΠ»ΠΈΡΠ°Π½Π° ΡΠ°ΠΌΠΊΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² Π²Π°ΡΠ° ΠΏΠΎΠ»Π·Π°.
Π’ΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅: ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡΠ΅ Ρ Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ Π±ΠΈΡΠΎΠ²Π΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ SUID, SGID ΠΈ sticky bit.
ΠΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Linux
ΠΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² Linux ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠΌΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²Π° Π·Π° Π΄ΠΎΡΡΡΠΏ. Π’Π΅Π·ΠΈ ΠΏΡΠ°Π²Π° ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈ ΠΊΠ»Π°ΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π’ΡΠΈΡΠ΅ ΠΊΠ»Π°ΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ
| ΠΠ»Π°Ρ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ | ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π° ΡΠ°ΠΉΠ»Π° |
| Π³ΡΡΠΏΠ° | ΠΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈ ΠΊΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½Π°ΡΠ° Π³ΡΡΠΏΠ° Π½Π° ΡΠ°ΠΉΠ»Π° |
| Π΄ΡΡΠ³ΠΈ | ΠΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° |
Π’ΡΠΈΡΠ΅ ΡΠΈΠΏΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
| Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ | Π‘ΠΈΠΌΠ²ΠΎΠ» | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
| ΡΠ΅ΡΠ΅Π½Π΅ | r | ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ |
| ΠΏΠΈΡΠ°Π½Π΅ | w | ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ |
| ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ | x | ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ» ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈΠ»ΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅/ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ |
ΠΠ°Π΅Π΄Π½ΠΎ, ΡΠ΅Π·ΠΈ Π΄Π΅Π²Π΅Ρ Π±ΠΈΡΠ° (ΡΡΠΈ ΠΊΠ»Π°ΡΠ° Γ ΡΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΡΠ»Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ» Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠ°ΠΊ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ls -l
ΠΠ°ΠΉ-Π±ΡΡΠ·ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ls -l:
ls -l myscript.shΠΡΠΈΠΌΠ΅Ρ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.shΠΡΠΎ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π½ΠΈΠ·Π° Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎ ΡΠΈΠΌΠ²ΠΎΠ»:
| Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈ | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|
- | Π’ΠΈΠΏ Π½Π° ΡΠ°ΠΉΠ»Π° (- = ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ°ΠΉΠ», d = Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, l = ΡΠΈΠΌΠ²ΠΎΠ»Π½Π° Π²ΡΡΠ·ΠΊΠ°) |
rwx | Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ°: ΡΠ΅ΡΠ΅Π½Π΅, ΠΏΠΈΡΠ°Π½Π΅, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ |
r-x | Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π³ΡΡΠΏΠ°ΡΠ°: ΡΠ΅ΡΠ΅Π½Π΅, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ (Π±Π΅Π· ΠΏΠΈΡΠ°Π½Π΅) |
r-- | Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅: ΡΠ°ΠΌΠΎ ΡΠ΅ΡΠ΅Π½Π΅ |
Π’Π°ΠΊΠ° ΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ, alice (ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΡΡ) ΠΈΠΌΠ° ΠΏΡΠ»Π΅Π½ Π΄ΠΎΡΡΡΠΏ, ΡΠ»Π΅Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π³ΡΡΠΏΠ°ΡΠ° devs ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ΡΠ°Ρ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ°ΠΉΠ»Π°, Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ ΠΌΠΎΠ³Π°Ρ ΡΠ°ΠΌΠΎ Π΄Π° Π³ΠΎ ΡΠ΅ΡΠ°Ρ.
ΠΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Ρ chmod
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° chmod ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ°: ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅Π½ ΠΈ ΡΠΈΡΠ»ΠΎΠ² (ΠΎΡΠΌΠΈΡΠ΅Π½).
Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ
Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ½ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΡΠΊΠ²ΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ (+), ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ (-) ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ (=) Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ°:
chmod u+x myscript.sh # Add execute permission for the owner
chmod g-w myscript.sh # Remove write permission from the group
chmod o=r myscript.sh # Set read-only for others (exactly)
chmod a+x myscript.sh # Add execute for all (owner, group, others)Π¦Π΅Π»Π΅Π²ΠΈΡΠ΅ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΡΠ°: u (ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»/ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ), g (Π³ΡΡΠΏΠ°), o (Π΄ΡΡΠ³ΠΈ), a (Π²ΡΠΈΡΠΊΠΈ).
Π§ΠΈΡΠ»ΠΎΠ² (ΠΎΡΠΌΠΈΡΠ΅Π½) ΡΠ΅ΠΆΠΈΠΌ
ΠΡΠ΅ΠΊΠΈ ΡΠΈΠΏ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° ΡΠΈΡΠ»ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ: r = 4, w = 2, x = 1. Π‘ΡΠ±ΠΈΡΠ°ΡΠ΅ Π³ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΅Π΄Π½Π° ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»Π°Ρ.
| ΠΡΠΌΠΈΡΠ΅Π½ | ΠΠ²ΠΎΠΈΡΠ΅Π½ | Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ |
|---|---|---|
7 | 111 | rwx |
6 | 110 | rw- |
5 | 101 | r-x |
4 | 100 | r-- |
0 | 000 | --- |
Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ:
chmod 755 myscript.sh # Owner: rwx | Group: r-x | Others: r-x
chmod 644 file.txt # Owner: rw- | Group: r-- | Others: r--
chmod 700 script.sh # Owner: rwx | Group: --- | Others: ---
chmod 600 secret.key # Owner: rw- | Group: --- | Others: ---> ΠΡΡΠ·ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ: 755 Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΡΡ Π·Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. 644 Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΡΡ Π·Π° ΡΠ΅ΡΠ»ΠΈΠ²ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. 600 Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π·Π° ΡΠ°ΡΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡ Ρ chown ΠΈ chgrp
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΠΈΠΌΠ°Ρ ΡΠΌΠΈΡΡΠ» ΡΠ°ΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡ. ΠΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ chown ΠΈ chgrp Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΈΡΠ²ΠΎΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ Π³ΡΡΠΏΠ°.
ΠΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»
chown alice file.txtΠΡΠΎΠΌΡΠ½Π° Π½Π° Π³ΡΡΠΏΠ°ΡΠ°
chgrp devs file.txtΠΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° ΠΈ Π³ΡΡΠΏΠ°ΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
chown bob:admins file.txtΠΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ
Π€Π»Π°Π³ΡΡ -R ΠΏΡΠΈΠ»Π°Π³Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡ ΠΊΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ Π²ΡΠΈΡΠΊΠΎΡΠΎ ΠΉ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ β ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅Π½ΠΈ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΠ΅Π± ΡΡΡΠ²ΡΡ:
chown -R www-data:www-data /var/www/html/Π’ΠΎΠ²Π° Π΅ ΠΊΡΠΈΡΠΈΡΠ½Π° ΡΡΡΠΏΠΊΠ° ΠΏΡΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π° Π½Π° VPS Hosting, ΠΊΠΎΠ΅ΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° Π²Π°ΡΠΈΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ ΠΈΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
Special Permission Bits: SUID, SGID, and Sticky Bit
Beyond the standard nine permission bits, Linux supports three special modes that modify default behavior in important ways.
1. SUID β Set User ID
Applies to: Executable files
When the SUID bit is set on an executable, it runs with the privileges of the fileβs owner, not the user who launched it.
chmod u+s /usr/bin/passwdls -l output:
-rwsr-xr-x 1 root root 54256 Jan 10 08:00 /usr/bin/passwdNotice the s in place of the ownerβs x. This is how /usr/bin/passwd can update /etc/shadow (a root-owned file) even when run by a regular user.
> Security note: Be very cautious about setting SUID on custom scripts. A misconfigured SUID binary is a classic privilege escalation vector.
2. SGID β Set Group ID
Applies to: Executable files and directories
- On files: The file runs with the group privileges of the fileβs group owner.
- On directories: New files created inside the directory automatically inherit the directoryβs group, rather than the creating userβs primary group.
chmod g+s /opt/projectls -l output:
drwxr-sr-x 2 alice devs 4096 Jan 25 10:00 /opt/projectSGID on directories is extremely useful for shared development folders where multiple team members need consistent group ownership on all new files.
3. Sticky Bit
Applies to: Directories
When the sticky bit is set on a directory, only the fileβs owner (or root) can delete or rename that file β even if other users have write permission on the directory.
chmod +t /shared/folderls -ld output for /tmp:
drwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmpThe t at the end indicates the sticky bit is active. This is why /tmp is world-writable but users canβt delete each otherβs temporary files.
Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° umask β ΠΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½ΠΈΡΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Linux Π½Π΅ ΠΌΡ Π΄Π°Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° ΠΏΡΠΈΠ»Π°Π³Π° umask (ΠΌΠ°ΡΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅), ΠΊΠΎΡΡΠΎ ΠΈΠ·Π²Π°ΠΆΠ΄Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½ΠΈΡΡΠ°.
ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΡ ΡΠ΅ΠΊΡΡ umask
umaskΠΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ: 0022
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ umask
| ΠΠ±Π΅ΠΊΡ | ΠΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ | Π‘ umask `0022` | Π Π΅Π·ΡΠ»ΡΠ°Ρ |
|---|---|---|---|
| Π€Π°ΠΉΠ» | 666 (rw-rw-rw-) | 666 - 022 | 644 (rw-rβrβ) |
| ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ | 777 (rwxrwxrwx) | 777 - 022 | 755 (rwxr-xr-x) |
> ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Linux Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π·Π°Π΄Π°Π²Π° Π±ΠΈΡΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ umask.
ΠΠ°Π΄Π°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ umask
umask 0077 # New files: 600 (rw-------), New dirs: 700 (rwx------)Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° umask ΠΊΡΠΌ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΏΡΠΎΡΠΈΠ»Π° Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ~/.bashrc ΠΈΠ»ΠΈ /etc/profile).
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ° Π·Π°Π΄Π°ΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΈΡ ΡΠ²ΡΡ Π΅ Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π² ΡΠ΅Π»ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»Π΅Π΄ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ FTP ΠΊΠ°ΡΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ°. ΠΠ»ΡΡΡΡ Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅ ΠΈΠΌΠ°Ρ Π½ΡΠΆΠ΄Π° ΠΎΡ Π±ΠΈΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌΠΈ.
# Set all directories to 755
find /var/www/myapp -type d -exec chmod 755 {} ;
# Set all files to 644
find /var/www/myapp -type f -exec chmod 644 {} ;ΠΠΊΠΎ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΏΠΎΠΏΡΠ°Π²Π΅ΡΠ΅ Π³ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅:
chmod 755 /var/www/myapp/bin/*.shΠ’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ Π·Π° Π²ΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠ΅Π± Ρ
ΠΎΡΡΠΈΠ½Π³. ΠΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ PHP, Python ΠΈΠ»ΠΈ Node.js ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° VPS Ρ cPanel, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ° Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΈΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° 403 Forbidden Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ
| Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ | ΠΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ | ΠΠΎΠΌΠ°Π½Π΄Π° |
|---|---|---|
| ΠΡΠ±Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π± ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (HTML, CSS, JS) | 644 | chmod 644 index.html |
| Π£Π΅Π± Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ | 755 | chmod 755 /var/www/html |
| PHP/Python ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ | 644 ΠΈΠ»ΠΈ 755 | ΠΠ°Π²ΠΈΡΠΈ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ |
| Π§Π°ΡΡΠ½ΠΈ SSH ΠΊΠ»ΡΡΠΎΠ²Π΅ | 600 | chmod 600 ~/.ssh/id_rsa |
.ssh Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ | 700 | chmod 700 ~/.ssh |
| Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ | 2775 (SGID) | chmod 2775 /opt/project |
| ΠΡΠ΅ΠΌΠ΅Π½Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ Π΄ΠΎΡΡΡΠΏ Π·Π° Π²ΡΠΈΡΠΊΠΈ | 1777 (sticky) | chmod 1777 /tmp/shared |
| ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΡΠ°ΠΉΠ½ΠΈ | 600 | chmod 600 .env |
Linux File Permissions and Server Security
Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π΅ Π΅ ΠΏΡΠΎΡΡΠΎ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ½ΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ β ΠΈΠΌΠ° ΠΏΡΠ΅ΠΊΠΈ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°.
Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅:
- ΠΠ°Π΄Π°Π²Π°Π½Π΅ Π½Π°
777Π½Π° ΡΠ΅Π± Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅. Π’ΠΎΠ²Π° Π΄Π°Π²Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ°Π²ΠΎ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅, ΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ β ΠΊΡΠΈΡΠΈΡΠ½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, Π°ΠΊΠΎ Π²Π°ΡΠΈΡΡ ΡΡΡΠ²ΡΡ Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½ ΠΈΠ»ΠΈ Π°ΠΊΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° PHP ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠ΄. - ΠΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ΅ΡΠΈΠΌΠΈ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ. Π€Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΠ°ΡΠΎ
.env,wp-config.phpΠΈΠ»ΠΈ ΡΡΠ΅ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ600ΠΈΠ»ΠΈ640Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ. - ΠΠ³Π½ΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ°. ΠΠΎΡΠΈ Π°ΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ, Π°ΠΊΠΎ Π³ΡΠ΅ΡΠ½ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π° ΡΠ°ΠΉΠ», Π²Π°ΡΠΈΡΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΠ°Ρ.
- Π Π΅ΠΊΡΡΡΠΈΠ²Π΅Π½
chownΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠ΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°chown -RΠ½Π°/etcΠΈΠ»ΠΈ/usrΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΡΠΏΠΈ ΡΡΠ»Π°ΡΠ° Π²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π° Π½Π° Dedicated Servers, Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠΎΠ³Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΏΡΡΠ²ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ Π·Π° ΡΠΊΡΠ΅ΠΏΠ²Π°Π½Π΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ΅ΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°.
ΠΠ° Π΅ΠΊΠΈΠΏΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, VPS Control Panels ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΎΠΏΡΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΡΡΠ΅Π· Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΌΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ ΠΎΡΡΠ°Π²Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π° Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΡΠ· ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
# View permissions
ls -l filename
ls -ld directory/
# Change permissions (symbolic)
chmod u+x file # Add execute for owner
chmod g-w file # Remove write for group
chmod o=r file # Set read-only for others
chmod a+r file # Add read for all
# Change permissions (numeric)
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 600 file # rw-------
chmod 700 file # rwx------
# Change ownership
chown user file
chgrp group file
chown user:group file
chown -R user:group directory/
# Special bits
chmod u+s file # Set SUID
chmod g+s directory # Set SGID
chmod +t directory # Set sticky bit
# umask
umask # Show current umask
umask 0022 # Set umask for session
# Recursive fixes
find /path -type d -exec chmod 755 {} ;
find /path -type f -exec chmod 644 {} ;ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Linux ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠΎΡΠΌΠΈΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄Π΅Π»ΡΡ Π΅ Π΅Π»Π΅Π³Π°Π½ΡΠ΅Π½ Π² ΡΠ²ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΎΡΠ° β ΡΡΠΈ ΠΊΠ»Π°ΡΠ°, ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π±ΠΈΡΠ° β Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΌΠΎΡΠ΅Π½, Π·Π° Π΄Π° Π·Π°ΡΠΈΡΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡ Π»ΠΈΡΠ΅Π½ ΠΌΠ°ΡΠΈΠ½Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄ΠΎ ΡΡΡΠ²ΡΡ Ρ Π²ΠΈΡΠΎΠΊ ΡΡΠ°ΡΠΈΠΊ Π² production.
ΠΠ²Π»Π°Π΄ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° chmod, chown, umask ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅Π»Π½ΠΈ Π±ΠΈΡΠΎΠ²Π΅ Π²ΠΈ Π΄Π°Π²Π° ΡΠ²Π΅ΡΠ΅Π½ΠΎΡΡ Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π΄Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏ Π±ΡΡΠ·ΠΎ ΠΈ Π΄Π° ΡΠΊΡΠ΅ΠΏΠ²Π°ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ ΡΡΠ΅ΡΡ Π½Π΅ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½ Π΄ΠΎΡΡΡΠΏ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°ΡΠ΅ ΡΡΡ Shared Web Hosting ΠΈΠ»ΠΈ ΡΠ΅ ΡΠ°Π·ΡΠΈΡΡΠ²Π°ΡΠ΅ ΠΊΡΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠ° VPS Hosting ΡΡΠ΅Π΄Π°, ΡΠΎΠ»ΠΈΠ΄Π½ΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Linux ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎ Π²Π»ΠΈΡΠ΅ΡΠΈΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π²ΠΈΠ΅ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΠ½Π²Π΅ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π΄Π° Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π΄ΡΠ»Π±ΠΎΠΊΠΎ β Π²Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ (ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ) ΡΠ΅ Π²ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡΡ.
ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ ΡΡΠ»ΡΠ³ΠΈ