Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«UNIX β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ срСда программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 17

Автор Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° установки uid β€” простоС элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ ряда ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ бСзопасности.[7] НапримСр, Π°Π²Ρ‚ΠΎΡ€ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой uid для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, поэтому ΠΎΠ½Π° смоТСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΈΠ³Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΎΡ‚ доступа со стороны Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Но идСя ввСдСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° установки uid ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасна. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° /bin/passwd Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€Π°Π² доступа -rwsrwxrwx Π΅Π΅ ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ любой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° Π½Π΅Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π­Ρ‚ΠΎ особСнно опасно для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ установки uid, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ root ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, систСмы. (Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах UNIX происходит ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° установки uid всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» измСняСтся, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹).

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ установки uid β€” ΠΌΠΎΡ‰Π½ΠΎΠ΅ срСдство, Π½ΠΎ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… систСмных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ passwd. Рассмотрим Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

$ ls -l /bin/who

-rwxrwxr-x 1 root 6348 Mar 29 1983 /bin/who

$

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» доступСн для выполнСния всСм, Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ root ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹. Π‘Π»ΠΎΠ²Π° "доступСн для выполнСния" ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅

$ who

ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ shell просматриваСт ряд ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС /bin, отыскивая Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ who. Если Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» Π½Π°ΠΉΠ΄Π΅Π½ ΠΈ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ доступа Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ shell обращаСтся ΠΊ ядру для Π΅Π³ΠΎ запуска. Π―Π΄Ρ€ΠΎ провСряСт ΠΏΡ€Π°Π²Π° доступа, ΠΈ, Ссли ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹, запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° β€” это просто Ρ„Π°ΠΉΠ» с ΠΏΡ€Π°Π²ΠΎΠΌ доступа Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ тСкстовыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΎ доступа Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

ΠŸΡ€Π°Π²Π° доступа ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ нСсколько ΠΈΠ½Π°Ρ‡Π΅, Π½ΠΎ основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ остаСтся Ρ‚Π΅ΠΌ ΠΆΠ΅:

$ ls -ld .

drwxrwxr-x 3 you 80 Sep 27 06:11 .

$

Команда ls с Ρ„Π»Π°Π³ΠΎΠΌ -d сообщаСт скорСС ΠΎ самом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Π΅ΠΌ ΠΎ Π΅Π³ΠΎ содСрТимом, ΠΈ пСрвая Π±ΡƒΠΊΠ²Π° d Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ '.' Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ являСтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ. ПолС r ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, поэтому с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls (ΠΈΠ»ΠΈ od для Π΄Π°Π½Π½ΠΎΠ³ΠΎ случая) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ хранятся Π² Π½Π΅ΠΌ. Π‘ΡƒΠΊΠ²Π° w ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, записи Π² Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

На самом Π΄Π΅Π»Π΅ нСльзя просто ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π΄Π°ΠΆΠ΅ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ root это Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ:

$ who > .        ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ '.'

.: cannot create НСльзя

$

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ систСмныС обращСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Но ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€Π°Π² доступа ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈ для Π½ΠΈΡ…: ΠΏΠΎΠ»Π΅ w ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для измСнСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

ΠŸΡ€Π°Π²ΠΎ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π΅ зависит ΠΎΡ‚ самого Ρ„Π°ΠΉΠ»Π°. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ записи Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π½Π΅Π³ΠΎ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΄Π°ΠΆΠ΅ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ ΠΎΡ‚ записи. Команда rm всС-Ρ‚Π°ΠΊΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, β€” Ρ€Π΅Π΄ΠΊΠΈΠΉ для ΠΊΠΎΠΌΠ°Π½Π΄ систСмы UNIX случай Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. (Π€Π»Π°Π³ -f ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rm обСспСчиваСт ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· запроса.)

ПолС x Π² случаС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° поиск. ΠŸΡ€Π°Π²ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ опрСдСляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΡ€Π°Π²ΠΎΠΌ доступа "x" для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, прСдполагая, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ извСстному ΠΈΠΌ Ρ„Π°ΠΉΠ»Ρƒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π½ΠΎ Π½Π΅ смогут Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ls ΠΈΠ»ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π½Π΅ΠΌ находятся. Аналогично ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΡ€Π°Π²ΠΎΠΌ доступа r-- ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ls), Π½ΠΎ нСльзя Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ это свойство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/games Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя.

Команда chmod ("change mode" β€” ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ) мСняСт ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ:

$ chmod ΠΏΡ€Π°Π²Π°_доступа ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²...

Бинтаксис конструкции "ΠΏΡ€Π°Π²Π°_доступа", ΠΊ соТалСнию, Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ. Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ двумя способами: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ символов. ΠŸΡ€ΠΎΡ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ числа, хотя ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ обозначСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Π² ΠΏΡ€Π°Π²Π°Ρ… доступа. Π›ΡƒΡ‡ΡˆΠ΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ

$ chmod rw-rw-rw- junk Вак нСльзя!

Ρ‡Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ

$ chmod 666 junk

Π½ΠΎ Ρ‚Π°ΠΊ Π½Π΅ получаСтся. Π’ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° складываСтся ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€Π°Π² доступа: 4 β€” для чтСния, 2 β€” для записи ΠΈ 1 β€” для выполнСния. Π’Ρ€ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΊΠ°ΠΊ ΠΈ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€Π°Π²Π° доступа для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°, Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ обозначСния ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅; ΠΈΡ… Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ описаниС приводится Π² справочном руководствС chmod(1). Для Π½Π°ΡˆΠΈΡ… ΠΆΠ΅ Ρ†Π΅Π»Π΅ΠΉ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ "+" устанавливаСт ΠΏΡ€Π°Π²ΠΎ доступа, Π° "-" Π»ΠΈΡˆΠ°Π΅Ρ‚ Π΅Π³ΠΎ. НапримСр,

$ chmod +x command

позволяСт всСм Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π°

$ chmod -w file

Π»ΠΈΡˆΠ°Π΅Ρ‚ всСх ΠΏΡ€Π°Π²Π° записи Π² Ρ„Π°ΠΉΠ», Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»Π°. Если Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ сущСствованиС ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, нСзависимо ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΏΡ€Π°Π² доступа. Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ прСдоставил Π²Π°ΠΌ ΠΏΡ€Π°Π²ΠΎ записи Π² Ρ„Π°ΠΉΠ», систСма Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ:

$ ls -ld /usr/mary

drwxrwxrwx 5 mary 704 Sep 25 10:18 /usr/mary

$ chmod 444 /usr/mary

chmod: can't change /usr/mary

$

Но, Ссли ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΎΡ‚ записи, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, нСсмотря Π½Π° отсутствиС ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈ Π²Ρ‹, Π½ΠΈ ваши Π΄Ρ€ΡƒΠ·ΡŒΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ удалят Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎ Π½Π° запись для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°:

$ cd

$ date > temp

$ chmod -w .         Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎ записи

$ ls -ld .

dr-xr-xr-x 3 you 80 Sep 27 11:48 .

$ rm temp

rm: temp not removed НСльзя ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»

$ chmod 775 .        Π’осстановлСниС ΠΏΡ€Π°Π² доступа

$ ls -ld .

drwxrwxr-x 3 you 80 Sep 27 11:48 .

$ rm temp            Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ

$

Π€Π°ΠΉΠ» temp Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»Π΅Π½. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² доступа ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π½Π΅ мСняСт Π΄Π°Ρ‚Ρƒ послСднСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. Π”Π°Ρ‚Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого Ρ„Π°ΠΉΠ»Π°, Π° Π½Π΅ ΠΏΡ€Π°Π² доступа ΠΊ Π½Π΅ΠΌΡƒ. ΠŸΡ€Π°Π²Π° доступа ΠΈ Π΄Π°Ρ‚Ρ‹ хранятся Π½Π΅ Π² самом Ρ„Π°ΠΉΠ»Π΅, Π° Π² систСмной структурС Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ индСксным дСскриптором (Ρ€Π΅Ρ‡ΡŒ ΠΎ Π½Π΅ΠΌ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅).

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.5

ΠŸΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ chmod. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ простыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠ° 0 ΠΈΠ»ΠΈ 1. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ свой Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

2.5 Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ дСскрипторы

Π€Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²: имя, содСрТимоС ΠΈ ΡΠ»ΡƒΠΆΠ΅Π±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (ΠΏΡ€Π°Π²Π° доступа ΠΈ Π΄Π°Ρ‚Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ). БлуТСбная информация размСщаСтся Π² индСксном дСскрипторС вмСстС с Π²Π°ΠΆΠ½ΠΎΠΉ систСмной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, мСсто хранСния Π΅Π³ΠΎ Π½Π° дискС ΠΈ Ρ‚.Π΄.[8] Π’ индСксном дСскрипторС хранятся Ρ‚Ρ€ΠΈ Π΄Π°Ρ‚Ρ‹: врСмя послСднСго измСнСния Ρ„Π°ΠΉΠ»Π° (записи Π² Π½Π΅Π³ΠΎ), врСмя послСднСго использования Ρ„Π°ΠΉΠ»Π° (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅), врСмя послСднСго измСнСния самого индСксного дСскриптора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ измСнСния ΠΏΡ€Π°Π² доступа.

$ date

Tue Sep 27 12:07:24 EDT 1983 $ date > junk

$ ls -l junk

-rw-rw-rw 1 you 29 Sep 27 12:07 junk

$ ls -lu junk

-rw-rw-rw 1 you 29 Sep 27 06:11 junk

$ ls -lc junk

-rw-rw-rw 1 you 29 Sep 27 12:07 junk

$

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° дСйствия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls -lu, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого Ρ„Π°ΠΉΠ»Π° Π½Π΅ влияСт Π½Π° Π΄Π°Ρ‚Ρƒ послСднСго использования, Π° с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π² доступа связана Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Ρ‚Π° измСнСния индСксного дСскриптора, ΠΎ Ρ‡Π΅ΠΌ выдаСтся сообщСниС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ls -lc:

$ chmod 444 junk

$ ls -lu junk

-r--r--r-- 1 you 29 Sep 27 06:11 junk

$ ls -lc junk

-r--r--r-- 1 you 29 Sep 27 12:11 junk

$ chmod 666 junk $

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ -t ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ примСняСтся для сортировки Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ принимаСтся врСмя послСднСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ), совмСстно с Ρ„Π»Π°Π³Π°ΠΌΠΈ -с ΠΈΠ»ΠΈ -r, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ измСнились индСксныС дСскрипторы ΠΈΠ»ΠΈ Ρ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ Ρ„Π°ΠΉΠ»Ρ‹:

$ ls recipes

apple

pie

$ ls -lut total 2

drwxrwxrwx 4 you 64 Sep 27 12:11 recipes

-rw-rw-rw- 1 you 29 Sep 27 06:11 junk

Π£ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° recipes, ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ врСмя использования, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ просмотрСли Π΅Π³ΠΎ содСрТимоС.