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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 93

Автор Роббинс ΠΡ€Π½ΠΎΠ»ΡŒΠ΄

8.2.1. ИспользованиС ΠΎΠΏΡ†ΠΈΠΉ монтирования

Команда

mount
ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ядро Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π˜Ρ… ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠ΅ количСство. Π›ΠΈΡˆΡŒ Π΄Π²Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π½Π° самом Π΄Π΅Π»Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

ro

ΠœΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для устройств Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ CD-ROM ΠΈ DVD.

loop

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠ΅ устройство для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² качСствС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ этого ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅ (см. Ρ€Π°Π·Π΄Π΅Π» 8.1.3 Β«ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм:

mount
Β»).

ΠžΠΏΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки -ΠΎ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΎΡ‚Π΄Π΅Π»ΡΡΡΡŒ запятыми. НапримСр, Π²ΠΎΡ‚ использованная Ρ€Π°Π½Π΅Π΅ командная строка:

mount -t iso9660 -ΠΎ ro,loop shrike-i386-discl.iso /mnt/cdrom

ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΎΠΏΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования Π²

/etc/fstab
(хотя ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список прСдставляСт Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ Π² повсСднСвном использовании.

auto
,
noauto

Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅

auto
, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы Ρ‡Π΅Ρ€Π΅Π· '
mount -Π°
' (ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы). Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
noauto
Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Они ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ находятся Π²
/etc/fstab
вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами. (Π‘ΠΌ., Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, элСмСнт
/win
для ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅ Ρ„Π°ΠΉΠ»Π°
/etc/fstab
).

defaults

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠΏΡ†ΠΈΠΈ

rw
,
suid
,
dev
,
exec
,
auto
,
nouser
ΠΈ
async
. (
async
являСтся ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°).

dev
,
nodev

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ (Π½Π΅ позволяСт) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Ρ„Π°ΠΉΠ»Ρ‹ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств.

exec
,
noexec

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ (Π½Π΅ позволяСт) Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹.

user
,
nouser

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ (Π½Π΅ позволяСт) ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для CD-ROM; Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π°

root
просто для монтирования CD. Π”Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ΠΌΠΎΠΆΠ΅Ρ‚ лишь ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смонтировал Π΅Π΅.
user
ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΉ
noexec
,
nosuid
ΠΈ
nodev
.

suid
,
nosuid

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ (Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚) Π±ΠΈΡ‚Ρ‹

setuid
ΠΈ
setgid
исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

rw

ΠœΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ для чтСния/записи.

ΠžΠΏΡ†ΠΈΠΈ

nodev
,
noexec
ΠΈ
nosuid
особСнно Ρ†Π΅Π½Π½Ρ‹ для бСзопасности Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах Π³ΠΈΠ±ΠΊΠΈΡ… дисков ΠΈ CD-ROM. РассмотритС ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‡Π΅ΡΠΊΡƒΡŽ срСду, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ студСнтам Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС Π³ΠΈΠ±ΠΊΠΈΠ΅ диски ΠΈΠ»ΠΈ CD. Π’Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΠΌΠ°ΡΡ‚Π΅Ρ€ΠΈΡ‚ΡŒ для ТСсткого диска Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму с ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ setuid-root ΠΈΠ»ΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠΌ устройства с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ записи для всСх, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠΈΠΌΡ‡ΠΈΠ²ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа ΠΊ систСмным Ρ„Π°ΠΉΠ»Π°ΠΌ.

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π΅ΡΡ‚ΡŒ спСцифичныС для Π½Π΅Π΅ ΠΎΠΏΡ†ΠΈΠΈ. Π’Π°ΠΆΠ½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ для

ext2
ΠΈ
ext3
являСтся
grpid
. ΠœΡ‹ ΠΎΡ‚Π»ΠΎΠΆΠΈΠΌ обсуТдСниС этой ΠΎΠΏΡ†ΠΈΠΈ Π΄ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° 11.5.1 Β«Π“Ρ€ΡƒΠΏΠΏΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²Β». ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ для всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² справочной страницС mount(8).

Π’ качСствС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° вСрнСмся ΠΊ строчкС для Ρ€Π°Π·Π΄Π΅Π»Π° Windows Π² нашСй систСмС:

# device mount-point type options freq passno

/dev/hda1 /win vfat noauto,defaults,user,uid=2076,gid=10 0 0

ΠžΠΏΡ†ΠΈΡ

noauto
ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π° Windows ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. ΠžΠΏΡ†ΠΈΡ
defaults
Ρ‚Π° ΠΆΠ΅ самая, Ρ‡Ρ‚ΠΎ
rw
,
suid
,
dev
,
exec
,
async
. ΠžΠΏΡ†ΠΈΡ
user
позволяСт Π½Π°ΠΌ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‡ΠΈ
root
. ΠžΠΏΡ†ΠΈΠΈ
uid=
ΠΈ
gid=
Π΄Π΅Π»Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π²
/win
ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌΠΈ Π½Π°ΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π°
root
ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ.

8.2.2. Π Π°Π±ΠΎΡ‚Π° со смонтированными Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами:

getmntent()

Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²

/etc/fstab
,
/etc/mtab
ΠΈ
/proc/mounts
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ использованиСм Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€
getmntent()
:

#include <stdio.h> /* GLIBC */

#include <mntent.h>

FILE *setmntent(const char *filename, const char *type);

struct mntent *getmntent(FILE *filep);

int addmntent(FILE *filep, const struct mntent *mnt);

int endmntent(FILE *filep);

char *hasmntopt(const struct mntent *mnt, const char *opt);

setmntent()
ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ», содСрТащий элСмСнты Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования. АргумСнт
filename
являСтся Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚. АргумСнт
type
ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚
fopen()
, указывая доступ для чтСния, записи ΠΈΠ»ΠΈ чтСния/записи. (РассмотритС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
mount
, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ приходится Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнт ΠΊ
/etc/mtab
для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΈ
umount
, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ этот элСмСнт.) Π—Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°
FILE*
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΠΈΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ.