Cdrecord не имеет права на открытие устройства astra linux

Обновлено: 04.07.2024

Как можно отключить доступ к CD-ROM и USB для обычных пользователей в Linux?

В рамках политики безопасности нам необходимо отключить доступ к CD-ROM и USB для обычных пользователей. Только пользователи root должны иметь доступ. В основном мы используем Ubuntu Linux.

Самый легкий, который я нашел, просто:

sudo chmod 700 /media

Ubuntu монтирует съемный носитель в /media, поэтому изменение разрешений для /media - это самый простой способ предотвратить доступ. Это безопасное и легко обратимое решение.

Как насчет того, чтобы попробовать

Это не позволит обычным пользователям видеть съемные мультимедийные устройства. Тогда только root сможет получить доступ к съемным носителям.

Для простой защиты от непрофессиональных пользователей черный список должен быть достаточно:

Для компакт-диска просто удалите пользователя из группы 'cdrom'. Тогда пользователь не должен иметь доступ к нему (в управлении пользователями есть расширенная вкладка, где вы можете снять эту опцию).

Моя коллега и я пробовали это на Ubuntu 10.04 64-разрядный рабочий стол.

У нас был один администратор и один пользователь. Мы попытались удалить пользователя на рабочем столе из cdrom и plugdev в /etc /group, но это не сработало.

Затем мы создали admin /media. Затем мы chmodded /media хотели:

chmod 700 /media

Это похоже на работу. Кроме того, я не беспокоюсь о том, что пользовательский настольный пользователь монтируется вручную, потому что у него нет привилегий.

Это имеет смысл? Вы, ребята, видите недостатки?

Раньше было то, что в системах * nix вы могли бы это сделать, изменив разрешения на чтение и запись на узлах устройств. Я подозреваю, что вам нужно будет искать что-то более активное в Ubuntu - возможно, группы пользователей, которые предоставляют доступ к классам устройств, отключая аппаратные сервисы, такие как hal, или, возможно, меняют систему automount, поэтому все становится доступным только для привилегированных пользователей. USB будет сложнее, чем CDROM, потому что я предполагаю, что вы не хотите блокировать всю шину. Вы хотите, чтобы мыши usb работали, но флэш-диски были заблокированы правильно?

Знаю, что мегабоян, но при записи CD-RW в K3B выдаётся сабжевая ошибка. В группу cdrom себя добавил, иксы перезапускал.





> apt-get upgrade
Mandriva использует не APT.

> В новых версиях
Апдейты закронены и качаются еженочно.

> А он сидит на старой версии
2010.2 — последняя версия, перечитайте оп-пост, коллега.

> возмущается старым ошибкам.
Это не возмущение, это непонимание того, как так получается, что программа не может получить доступ к устройству, который у неё формально должен быть. Когда пользователь входит в группу, имеющую доступ к устройству, и система отказывает в доступе — согласитесь, уважаемый коллега, что это как минимум странно.


>Mandriva использует не APT
Ну блин, ну это же абстрактное выражение,ну. Чо вы все под дураков то сразу косите.



Дебианщики вводят кросс-дистрибные абстрактные выражения? darkshvein , ты в очередной раз делаешь мой день.)


Блин. Точно. А я думал старый. Извиняюсь. fstab может? Хотя не должен влиять. Ну ещё настройки доступа hal OR udev где то в дебрях /etc


Если б знать точней, куда копать… =\ сделал strace -f k3b, курю вывод


Только сд-рв? А при копировании с болванки или действий с сидюком 12309 не возникает?


Перезапуск иксов не даст эффекта, нужно делать relogin в shell.


Даже перезагрузка не помогает


Иногда и CD-RW срабатывало. В прошлый раз всё норм записалось, а сейчас something went wrong.

Имеется рабочее место в защищенном исполнении с настроенными уровнями конфиденциальности: 0:Несекретно, 1:ДСП, 2:Секретно, 3:СовСекретно.
В файловой системе созданы папки с соответствующими уровнями конфиденциальности, в них - документы. И в рамках жесткого диска данной операционной системы все это работает.

Вопрос, как записать файл с уровнем конфиденциальности отличным от "Несекретно" на оптический диск?

azm9s

New member
Вопрос, как записать файл с уровнем конфиденциальности отличным от "Несекретно" на оптический диск? а как вы добились записи в режиме "несекретно"?
выполнив все требования по redbook у меня запись только от root возможна. от обычного юзера локального или доменного не работает, все пользователи в группе cdrom, cdwriter.

Ankarii

New member
а как вы добились записи в режиме "несекретно"?
выполнив все требования по redbook у меня запись только от root возможна. от обычного юзера локального или доменного не работает, все пользователи в группе cdrom, cdwriter.

У меня локальная машина, без сети. В несекретном режиме через программу k3b пишет без вопросов (AL SE 1.6, обновление 5).

А вот что по поводу записи файлов с уровнем конфиденциальности отличным от "Несекретно", мне прислала техподдержка:

Создать файл в /etc/systemd/system/myprogram.service с содержимым:

[Unit]
Description= Setting label on /dev/sr0
After= network.target
[Service]
Type=oneshot
ExecStart=/opt/script.sh
[Install]
WantedBy=multi-user.target

Создать скрипт /opt/script.sh

Выполнить команду:
sudo chmod 777 /opt/script.sh

Перезагрузить конфигурации:
systemctl daemon-reload
systemctl enable myprogram

Выполнить перезагрузку компьютера
sudo reboot

После данных манипуляций все заработало, что от учетной запись administrator (учетка, которая при установке ОС сдается), что от учеток user1, user2 и т.д.
P.S. Файл, попав на диск становится несекретным.

azm9s

New member

archi7

New member

У меня локальная машина, без сети. В несекретном режиме через программу k3b пишет без вопросов (AL SE 1.6, обновление 5).

А вот что по поводу записи файлов с уровнем конфиденциальности отличным от "Несекретно", мне прислала техподдержка:

Создать файл в /etc/systemd/system/myprogram.service с содержимым:

[Unit]
Description= Setting label on /dev/sr0
After= network.target
[Service]
Type=oneshot
ExecStart=/opt/script.sh
[Install]
WantedBy=multi-user.target

Создать скрипт /opt/script.sh

Выполнить команду:
sudo chmod 777 /opt/script.sh

Перезагрузить конфигурации:
systemctl daemon-reload
systemctl enable myprogram

Выполнить перезагрузку компьютера
sudo reboot

После данных манипуляций все заработало, что от учетной запись administrator (учетка, которая при установке ОС сдается), что от учеток user1, user2 и т.д.
P.S. Файл, попав на диск становится несекретным. Инструкция работает запись получается на любой диск а это не есть хорошо. У меня вопрос как прописать учтеные диски и запретить запись на любые другие

azm9s

New member
Инструкция работает запись получается на любой диск а это не есть хорошо. У меня вопрос как прописать учтеные диски и запретить запись на любые другие и как сие хотите увидеть?
технической инфы, хоть тот же серийный номер, которую нельзя затереть, на диске нет.
а если что-то прописывать свое - то на любом другой эвм все можно стереть.

archi7

New member
и как сие хотите увидеть?
технической инфы, хоть тот же серийный номер, которую нельзя затереть, на диске нет.
а если что-то прописывать свое - то на любом другой эвм все можно стереть.

archi7

New member
кто ни будь решил данный вопрос как прописать учтенные диски а все остальные запретить
New member
to archi7
А п. 16 Руководства администратора разве не решает указанную задачу? Зарегистрировать, разграничить, отредактировать fstab, читать/писать по согласованию, ага.

archi7

New member
to archi7
А п. 16 Руководства администратора разве не решает указанную задачу? Зарегистрировать, разграничить, отредактировать fstab, читать/писать по согласованию, ага. Для флешки проблем нету а вот диск как если есть пример подскажите
New member
  1. Убрать из /etc/fstab записи (если есть):
  • /dev/*udf /*home/*/media/* udf owner,group,nodev,noexec,noauto,defaults 0 0 (позволяет всем юзерам монтировать учтенные CD/DVD);
  • /dev/*iso9660 /*home/*/media/* iso9660 owner,group,nodev,noexec,noauto,defaults 0 0 (позволяет всем юзерам монтировать учтенные CD/DVD);
  • /dev/sr* /*home/*/media/* udf,iso9660 user,noauto 0 0 (позволяет всем юзерам монтировать неучтенные CD/DVD).
  1. Через fly-admin-smc создать новое устройство в разделе "Устройства", при открытом окне подключить нужный CD/DVD-диск.
  2. В свойствах этого диска указать минимум "ID_SERIAL" с тем значением, что определилось Астрой. Можно еще "ID_FS_LABEL", если диску уже назначена метка (имя). Так оно надежнее в плане подмены диска нарушителем.
  3. В разделе "Общие" указать нужного юзера, группу, права для них (чтение, запись, выполнение) и права для всех остальных юзеров. По вкусу добавить мандатную метку и флаги аудита.
  4. Сохранить все это, для верности ребутнуться и проверить.

ЗЫ Кстати, Dallas Lock и СТРАЖ прописывают в своей базе диски исключительно инициализированные CD/DVD-диски. Читай, имеющие в своем составе пусть и пустой, но записанный файл в режиме мультисессии. Далее диску присваивается якобы уникальная виртуальная метка в самой базе СЗИ. В других СЗИ, если склероз не изменяет, принцип схожий.

archi7

New member
  1. Убрать из /etc/fstab записи (если есть):
  • /dev/*udf /*home/*/media/* udf owner,group,nodev,noexec,noauto,defaults 0 0 (позволяет всем юзерам монтировать учтенные CD/DVD);
  • /dev/*iso9660 /*home/*/media/* iso9660 owner,group,nodev,noexec,noauto,defaults 0 0 (позволяет всем юзерам монтировать учтенные CD/DVD);
  • /dev/sr* /*home/*/media/* udf,iso9660 user,noauto 0 0 (позволяет всем юзерам монтировать неучтенные CD/DVD).
  1. Через fly-admin-smc создать новое устройство в разделе "Устройства", при открытом окне подключить нужный CD/DVD-диск.
  2. В свойствах этого диска указать минимум "ID_SERIAL" с тем значением, что определилось Астрой. Можно еще "ID_FS_LABEL", если диску уже назначена метка (имя). Так оно надежнее в плане подмены диска нарушителем.
  3. В разделе "Общие" указать нужного юзера, группу, права для них (чтение, запись, выполнение) и права для всех остальных юзеров. По вкусу добавить мандатную метку и флаги аудита.
  4. Сохранить все это, для верности ребутнуться и проверить.

ЗЫ Кстати, Dallas Lock и СТРАЖ прописывают в своей базе диски исключительно инициализированные CD/DVD-диски. Читай, имеющие в своем составе пусть и пустой, но записанный файл в режиме мультисессии. Далее диску присваивается якобы уникальная виртуальная метка в самой базе СЗИ. В других СЗИ, если склероз не изменяет, принцип схожий.

archi7

New member
  1. Убрать из /etc/fstab записи (если есть):
  • /dev/*udf /*home/*/media/* udf owner,group,nodev,noexec,noauto,defaults 0 0 (позволяет всем юзерам монтировать учтенные CD/DVD);
  • /dev/*iso9660 /*home/*/media/* iso9660 owner,group,nodev,noexec,noauto,defaults 0 0 (позволяет всем юзерам монтировать учтенные CD/DVD);
  • /dev/sr* /*home/*/media/* udf,iso9660 user,noauto 0 0 (позволяет всем юзерам монтировать неучтенные CD/DVD).
  1. Через fly-admin-smc создать новое устройство в разделе "Устройства", при открытом окне подключить нужный CD/DVD-диск.
  2. В свойствах этого диска указать минимум "ID_SERIAL" с тем значением, что определилось Астрой. Можно еще "ID_FS_LABEL", если диску уже назначена метка (имя). Так оно надежнее в плане подмены диска нарушителем.
  3. В разделе "Общие" указать нужного юзера, группу, права для них (чтение, запись, выполнение) и права для всех остальных юзеров. По вкусу добавить мандатную метку и флаги аудита.
  4. Сохранить все это, для верности ребутнуться и проверить.

ЗЫ Кстати, Dallas Lock и СТРАЖ прописывают в своей базе диски исключительно инициализированные CD/DVD-диски. Читай, имеющие в своем составе пусть и пустой, но записанный файл в режиме мультисессии. Далее диску присваивается якобы уникальная виртуальная метка в самой базе СЗИ. В других СЗИ, если склероз не изменяет, принцип схожий.

Изображение пользователя LordArtash.

собсно сабж.
Постоянно выдаёт разного рода ошибки и какие бы режимы я не ставил не пишет и всё! хелп!

Изображение пользователя fliker09.

Версия системы и проги какие? Может дискок убитый? И можно отчёт проги в студию?

попробуй сначала очистить. вынуть . вставить,, записать.
если пытаюсь юез предварительно очистки тож ошибки выдает или не может окткрыть после записи

Изображение пользователя LordArtash.

версия системы - 8.04
версия проги - 1.0.4

Вставляю свежекупленный CD-RW диск. Комп определяет его как Blank CD-RW. Появляется меню. Выбираю запись данных. Перетаскиваю на болванку файлы там получается на 650 мегабайт. Пробелов и русских файлов нету. Жму запись. Скорость ставлю 4х(для плеера пишу). Режим записи - автоматический. Дальше всё по умолчанию, только ставлю мультисессию. Дальше проходит полторы минуты и диск вылазит с ошибкой: cdrecord не имеет прав на открытие устройства. ппц.

Изображение пользователя kiev1.

это не винда, часто достаточно просто логи посмотреть

кто нить знает что у меня такое

Изображение пользователя LordArtash.

не понял, по подробнее плиз.

Изображение пользователя LordArtash.

KDE Version: 3.5.9
QT Version: 3.3.8b
Kernel: 2.6.24-19-generic
Devices
-----------------------
_NEC CD-RW NR-9300A 2.12 (/dev/scd1, ) [CD-R, CD-RW, CD-ROM] [CD-ROM, CD-R, CD-RW] [SAO, TAO, RAW, SAO/R96R, RAW/R96R]

_NEC DVD_RW ND-3540A 1.01 (/dev/scd0, ) [CD-R, CD-RW, CD-ROM, DVD-ROM, DVD-R, DVD-RW, DVD-R DL, DVD+R, DVD+RW, DVD+R DL] [DVD-ROM, DVD-R Sequential, DVD-R Dual Layer Sequential, DVD-RW Restricted Overwrite, DVD-RW Sequential, DVD+RW, DVD+R, DVD+R Dual Layer, CD-ROM, CD-R, CD-RW] [SAO, TAO, RAW, SAO/R96R, RAW/R96R, Ограниченная перезапись]
K3bIsoImager
-----------------------
mkisofs print size result: 329232 (674267136 bytes)
Pipe throughput: 12303360 bytes read, 12302336 bytes written.

cdrecord
-----------------------
/usr/bin/wodim: Operation not permitted. Warning: Cannot raise RLIMIT_MEMLOCK limits.scsidev: '/dev/scd1'
devname: '/dev/scd1'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Wodim version: 1.1.6
SCSI buffer size: 64512
Beginning DMA speed test. Set CDR_NODMATEST environment variable if device
communication breaks or freezes immediately after that.
TOC Type: 1 = CD-ROM
Driveropts: 'burnfree'
Device type : Removable CD-ROM
Version : 5
Response Format: 2
Capabilities :
Vendor_info : '_NEC '
Identification : 'CD-RW NR-9300A '
Revision : '2.12'
Device seems to be: Generic mmc CD-RW.
Current: 0x000A (CD-RW)
Profile: 0x000A (CD-RW) (current)
Profile: 0x0009 (CD-R)
Profile: 0x0008 (CD-ROM) (current)
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96R RAW/R96R
Drive buf size : 1226752 = 1198 KB
FIFO size : 12582912 = 12288 KB
Speed set to 1764 KB/s
Track 01: data 643 MB
Total size: 738 MB (73:09.76) = 329232 sectors
Lout start: 738 MB (73:11/57) = 329232 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 2
Reference speed: 6
Is not unrestricted
Is erasable
Disk sub type: High speed Rewritable (CAV) media (1)
ATIP start of lead in: -11077 (97:34/23)
ATIP start of lead out: 359849 (79:59/74)
1T speed low: 4 1T speed high: 10
2T speed low: 2 2T speed high: 10
power mult factor: 2 6
recommended erase/write power: 5
A1 values: 24 2C DC
A2 values: 14 A4 4A
A3 values: 04 C4 80
Disk type: Phase change
Manuf. index: 11
Manufacturer: Mitsubishi Chemical Corporation
Blocks total: 359849 Blocks current: 359849 Blocks remaining: 30617
Starting to write CD/DVD at speed 10.0 in real force SAO mode for single session.
Last chance to quit, starting real write in 2 seconds.
1 seconds.
0 seconds. Operation starts.
Waiting for reader process to fill input buffer . input buffer ready.
Performing OPC.
Sending CUE sheet.
Writing pregap for track 1 at -150
Starting new track at sector: 0
Track 01: 0 of 643 MB written.
Errno: 5 (Input/output error), write_g1 scsi sendcmd: no error
CDB: 2A 00 00 00 00 1F 00 00 1F 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 04 00 00 00 00 0A 00 00 00 00 08 03 00 00
Sense Key: 0x4 Hardware Error, Segment 0
Sense Code: 0x08 Qual 0x03 (logical unit communication crc error (ultra-dma/32)) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.005s timeout 200s
/usr/bin/wodim: A write error occured.
/usr/bin/wodim: Please properly read the error message above.
write track data: error after 63488 bytes
Writing time: 10.005s
Average write speed 866.9x.
Fixating.
Fixating time: 16.807s
/usr/bin/wodim: fifo had 193 puts and 2 gets.
/usr/bin/wodim: fifo was 0 times empty and 1 times full, min fill was 99%.
BURN-Free was never needed.

cdrecord command:
-----------------------
/usr/bin/wodim -v gracetime=2 dev=/dev/scd1 speed=10 -dao driveropts=burnfree -force -eject -data -tsize=329232s -

mkisofs
-----------------------
329232
I: -input-charset not specified, using utf-8 (detected in locale settings)
0.15% done, estimate finish Sat Jul 19 16:09:20 2008
0.31% done, estimate finish Sat Jul 19 16:09:20 2008
0.46% done, estimate finish Sat Jul 19 16:12:58 2008
0.61% done, estimate finish Sat Jul 19 16:12:04 2008
0.76% done, estimate finish Sat Jul 19 16:11:31 2008
0.92% done, estimate finish Sat Jul 19 16:11:09 2008
1.07% done, estimate finish Sat Jul 19 16:10:53 2008
1.22% done, estimate finish Sat Jul 19 16:10:42 2008
1.37% done, estimate finish Sat Jul 19 16:10:33 2008
1.52% done, estimate finish Sat Jul 19 16:10:25 2008
1.67% done, estimate finish Sat Jul 19 16:10:19 2008
1.82% done, estimate finish Sat Jul 19 16:10:14 2008

Изображение пользователя kiev1.

ну вот, а теперь ищем в гугле по фразе "Errno: 5 (Input/output error), write_g1 scsi sendcmd: no error"

This entire bug cost me about 10 coasters; most of my frustration stems from the fact that burning CDs at full speed worked for more than 2 years, then stopped. Adding kernel parameters is not for the newbie, the problem exists elsewhere and should be fixed elsewhere. Adding the kernel parameter should be viewed as a workaround, so the bug should probably not be closed, just re-pointed to wodim or wherever the bug actually lives.
-------------------------
Same problem in 8.04. combined_mode=ide did the trick.
-------------------------

Изображение пользователя LordArtash.

Извиняйте, но в английском не шарю.
Можно по русски, и на сколько смог разобраться в биос надо лезть, а у мну на предыдущих версиях писала.

Изображение пользователя kiev1.

Изображение пользователя Michael72.

надо добавить к опции загрузки ядра параметр combined_mode=ide

для меня была непонятной, поэтому после того как я разобрался с тем как это сделать, у меня появилось желание вкратце зафиксировать это здесь. В общем, надо в файле /boot/grub/grub.cfg найти строчку примерно такого характера:

linux /boot/vmlinuz-2.6.35-22-generic root=UUID=13dcc14d-fe99-41c9-ba55-0d7780dfd5df ro quiet splash

Вот, в конец этой строки и надо добавить этот параметр: combined_mode=ide
Я добавлял поочерёдно три предлагаемых параметра:

  • combined_mode=ide
  • combined_mode=libata
  • all_generic_ide=1

Ничего из этого не помогло. Пытался найти решение путём перебора различных параметров в K3b. Единственное, что мне помогло это установка скорости 8x. При скорости выше 8x под самый конец записи происходила ошибка. Таким образом, я сделал для себя вывод, что для записи Video CD лучше всего всегда указывать скорость не выше 8x.

Как примонтировать флешку в linux Astra через терминал


Обратите внимание, что КАЖДОЕ подключенное устройство хранения данных в Linux прописывается в системе уникальным кодом, в данном случае в папке /dev/ устройство sdb1. Это наименование еще нам пригодится. В графике все просто посмотреть. А терминале, чтобы увидеть все подключенные к системе устройства нужно воспользоваться командой fdisk:

Система выдает список томов жесткого диска и чуть погодя подключенные флешку диск:


Для монтирования понадобится имя нужного устройства, которое мы только что узнали.

Как примонтировать диск, том в Linux Astra через терминал?

Сначала нужно выбрать каталог, куда нужно смонтировать флешку или диск. Или точку монтирования. Можно создать новый каталог или выбрать существующий. Для наглядности откроем в терминале Midniht Commander:

По умолчанию точки монтирования создаются в файловой системе, папка /mnt


Внутри этой папки можно создать каталог прямо в MC (через клавишу F7) либо через терминал

Непосредственно для монтирования используем команду mount:


При правильных действиях получите список содержимого примонтированного устройства. После окончания работы отмонтировать устройство нужно командой umount

sudo umount /dev/sdb1 /mnt

Как примонтировать Iso образ в Linux Astra или привод CD/DVD в терминале?

Иногда нужно срочно примонтировать привод CD/DVD для копирования содержимого настоящего компакт диска. Давайте с этого и начнем. Чтобы определить, под каким именем в системе прописано устройство для чтения компакт дисков введем команду lsblk


Затем создаем точку монтирования:

C iso файлами все чуть проще. Нужно знать папку где лежит iso файл и папку, в которой он будет смонтирован.

sudo mount /папка где лежит образ/orel-current.iso /mnt -t iso9660 -o loop

Размонтировать образ можно так:

sudo umount /папка где лежит iso файл/orel-current.iso /mnt

Как примонтировать сетевую папку или сетевой диск в Linux Astra?

Насущной необходимостью является подключение общих папок и ресурсов. Дополнительные права доступа к папкам сети Windows, брандмауэр должны быть настроены корректно.

Сетевой доступ к общим папкам настраивается с учетом режима работы, обычный или без графики. В последнем случае настройки сделанные в среде рабочего стола работать не будут и монтировать, настраивать автозагрузку сетевых папок нужно будет в терминале.

Требуется установить пакет cifs-utils:

sudo apt install cifs-utils

Монтирование осуществляется командой (простой пример):

Для того, чтобы сетевой ресурс монтировался при загрузке системы, необходимо в конфигурационный файл /etc/fstab добавить строчку вида:

//10.0.10.201/share /mnt cifs credentials=/root/.smbclient,rw,nosharesock,vers=1.0,soft,noperm 0 0 Монтированию сетевых папок из Windows, защищенных паролями будет посвящена отдельная статья, потому как через терминал приходится делать много дополнительных настроек. В графическом режиме все проще и быстрее. Сначала установим графический вариант samba для рабочего стола:


Осталось создать сетевое место и дать ему название. На некоторых версиях Windows server этот способ не срабатывает.


Как примонтировать внешний жесткий диск в Астра Линукс и добавить точку в автозагрузку по сценарию?

Есть внешний жесткий диск подключенный к системе после ее установки. Требуется автоматическое монтирование при загрузке серевера для последующего доступа к сетевой общей папке н нем.


mount /dev/sdc1 /media/superuser/reserv

Файл сохраняем в удобном месте с расширением .sh , и добавляем в автозагрузку:


Не забываем сделать файл исполняемым для пользователя. Теперь при загрузке (только в графическом режиме и под конкретным пользователем) будет происходить монтирование тома. Более совершенный вариант монтирование сетевой папки при запуске подробно описан здесь Проверяем. Всем успехов!

Читайте также: