ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Linux ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Linux β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ²Π΅ΡΠ΄ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ 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, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ.
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ: SUID, SGID ΠΈ Sticky Bit
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄Π΅Π²ΡΡΠΈ Π±ΠΈΡΠΎΠ² ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Linux ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
1. SUID β Set User ID
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ: ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ
ΠΠΎΠ³Π΄Π° Π±ΠΈΡ SUID ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠ°ΠΉΠ»Π°, Π° Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΠ».
chmod u+s /usr/bin/passwdls -l Π²ΡΠ²ΠΎΠ΄:
-rwsr-xr-x 1 root root 54256 Jan 10 08:00 /usr/bin/passwdΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° s Π²ΠΌΠ΅ΡΡΠΎ x Π²Π»Π°Π΄Π΅Π»ΡΡΠ°. ΠΠΎΡ ΠΊΠ°ΠΊ /usr/bin/passwd ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ /etc/shadow (ΡΠ°ΠΉΠ», ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ root) Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
> ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: ΠΡΠ΄ΡΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ SUID Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ. ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ SUID Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» β ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
2. SGID β Set Group ID
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ: ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ
- ΠΠ° ΡΠ°ΠΉΠ»Π°Ρ : Π€Π°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ Π³ΡΡΠΏΠΏΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠ°ΠΉΠ»Π°.
- ΠΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ : ΠΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ Π³ΡΡΠΏΠΏΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π° Π½Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π³ΡΡΠΏΠΏΡ ΡΠΎΠ·Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
chmod g+s /opt/projectls -l Π²ΡΠ²ΠΎΠ΄:
drwxr-sr-x 2 alice devs 4096 Jan 25 10:00 /opt/projectSGID Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ ΠΏΠ°ΠΏΠΎΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π³Π΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²Π»Π°Π΄Π΅Π½ΠΈΠΈ Π³ΡΡΠΏΠΏΠΎΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
3. Sticky Bit
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ: ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ
ΠΠΎΠ³Π΄Π° sticky bit ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΡΠ°ΠΉΠ»Π° (ΠΈΠ»ΠΈ root) ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» β Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΏΠΈΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
chmod +t /shared/folderls -ld Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ /tmp:
drwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmpt Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ sticky bit Π°ΠΊΡΠΈΠ²Π΅Π½. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ /tmp ΠΎΡΠΊΡΡΡΠ° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΅ΠΌ, Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π°Π»ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ 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 ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
777Π½Π° Π²Π΅Π±-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ β ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° PHP-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ ΠΊΠΎΠ΄Π°. - ΠΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌ. Π€Π°ΠΉΠ»Ρ Π²ΡΠΎΠ΄Π΅
.env,wp-config.phpΠΈΠ»ΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ600ΠΈΠ»ΠΈ640ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ. - ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²Π°Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ Π΄Π΅ΠΌΠΎΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠΌΠ΅ΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ.
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅
chownΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ . ΠΠ°ΠΏΡΡΠΊchown -RΠ½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ Π½Π°/etcΠΈΠ»ΠΈ/usrΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ production-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 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 ΡΠΎΡΠΌΠΈΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ΄Π΅Π»Ρ ΡΠ»Π΅Π³Π°Π½ΡΠ½Π° Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΡΠ΅ β ΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π±ΠΈΡΠΎΠ² β Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½Π° Π΄Π»Ρ Π·Π°ΡΠΈΡΡ Π²ΡΠ΅Π³ΠΎ, ΠΎΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ²Π»Π°Π΄Π΅Π½ΠΈΠ΅ chmod, chown, umask ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±ΡΡΡΡΠΎΠΌ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΡΠΈΠ»Π΅Π½ΠΈΠΈ Π·Π°ΡΠΈΡΡ Π²Π°ΡΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Ρ Shared Web Hosting ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΠ΅ΡΡ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ VPS Hosting, ΡΠ²Π΅ΡΠ΄ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Linux β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π½Π°Π²ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΠ½Π²Π΅ΡΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ Π² Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ β Π²Π°ΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ (ΠΈ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ) Π±ΡΠ΄ΡΡ Π²Π°ΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½Ρ.
Π½Π° Π²ΡΠ΅Ρ
Ρ
ΠΎΡΡΠΈΠ½Π³ΠΎΠ²ΡΡ
ΡΡΠ»ΡΠ³Π°Ρ