БпСстСтС 15% ΠΎΡ‚ всички хостинг услуги

ВСствай умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠžΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
Заглавия
Linux Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми

Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° 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. Π‘ΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ Π³ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΅Π΄Π½Π° Ρ†ΠΈΡ„Ρ€Π° Π½Π° клас.

ΠžΡΠΌΠΈΡ‡Π΅Π½Π”Π²ΠΎΠΈΡ‡Π΅Π½Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
7111rwx
6110rw-
5101r-x
4100r--
0000---

ЧСсто срСщани ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ:

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/passwd

ls -l output:

-rwsr-xr-x 1 root root 54256 Jan 10 08:00 /usr/bin/passwd

Notice 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/project

ls -l output:

drwxr-sr-x 2 alice devs 4096 Jan 25 10:00 /opt/project

SGID 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/folder

ls -ld output for /tmp:

drwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp

The 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 - 022644 (rw-r–r–)
ДирСктория777 (rwxrwxrwx)777 - 022755 (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)644chmod 644 index.html
Π£Π΅Π± Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ755chmod 755 /var/www/html
PHP/Python скриптовС644 ΠΈΠ»ΠΈ 755Зависи ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° изпълнСниС
Частни SSH ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅600chmod 600 ~/.ssh/id_rsa
.ssh дирСктория700chmod 700 ~/.ssh
Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° дирСктория Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚2775 (SGID)chmod 2775 /opt/project
Π’Ρ€Π΅ΠΌΠ΅Π½Π½Π° дирСктория с Π΄ΠΎΡΡ‚ΡŠΠΏ Π·Π° всички1777 (sticky)chmod 1777 /tmp/shared
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Ρ‚Π°ΠΉΠ½ΠΈ600chmod 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 Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-високо влияСщитС умСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π²ΠΈΠ΅Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ систСмСн администратор ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Π˜Π½Π²Π΅ΡΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π΄Π° Π³ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ дълбоко β€” Π²Π°ΡˆΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ (ΠΈ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ) Ρ‰Π΅ Π²ΠΈ благодарят.