Linux - статьи

         

Установка


Все операции проводим под авторизацией root (администратора системы).

Распакуем пакет samba-2.2.5.tar.gz в каталог /usr/src/redhat/SOURCES:

# cat samba-2.2.5.tar.gz | gzip -d | tar xvpf -

Теперь установим поддержку "сетевой корзины". Зачем нужна "сетевая корзина"? Все операционные системы, имеющие GUI, предоставляют пользователям (в той или иной мере) так называемую "корзину", которая служит для временного хранения файлов, удаленных пользователем на своей рабочей станции. При работе в сети эти функции обычно недоступны для сетевых ресурсов, поэтому администраторам системы приходиться делать периодический BackUp файлов пользователей. Но это перестает быть эффективным, если удаленный файл не был сохранен с помощью программ, организующих BackUp. Именно для такого случая и нужна "сетевая корзина".

Еще одно ее достоинство - возможность восстановления предыдущей версии файла пользователем самостоятельно, без привлечения администратора сети. Но здесь сразу же стоит сделать некоторые замечания:

  • "сетевая корзина" - это обычная папка, которую можно размещать как на текущем (классический вид), так и на специализированном ресурсе. Причем в последнем случае на этом же диске могут находиться и корзины других пользователей - в виде так называемого Online Backup ресурса;
  • по умолчанию в патче атрибуты доступа на корзину - 0700. То есть в эту папку может зайти и что-либо с ней делать только владелец этого ресурса. Это не вызывает проблем, если пользователь использует сетевой ресурс один,- но обычно одним ресурсом пользуется несколько пользователей, и в этом случае возникает ситуация, когда только один пользователь может удалять файлы. Для решения этой проблемы предлагаю в файле reply.c.patch изменить строку №15 с "+ int dir_mask=0700;" на "+ int dir_mask=0777;" - это позволит всем пользователям данного ресурса корректно работать с данной папкой;
  • если в системе используются квоты (quota), то их установки влияют и на корзину - так что при расчете квот нужно учитывать этот момент;

  • в ходе эксплуатации была обнаружена проблема, заключающаяся в том, что, если в конфигурационном файле указать полный, а не относительный путь к корзине на ресурсе, то при попытке пользователя удалить файл в корзине происходило следующее: файл не удалялся, а переименовывался по формату "имя файла. (Copy #N).расширение" (где N - номер файла с одинаковыми именами). То есть срабатывал алгоритм, по условиям которого, если файл с определенным именем есть в корзине, то происходит не замена старого файла новым, а добавление дополнительного суффикса и инкрементация его номера. Для решения данной проблемы необходимо в файле reply.c.patch изменить строку № 38 с "+ if (strcmp (fname,bin)){" на "+ if (access (bin, F_OK)!=-1) {".


По окончанию описанных мероприятий переходим к компиляции пакета и его установке, для чего устанавливаем патч:

# patch /usr/src/redhat/SOURCES /samba-2.2.5/source/include/proto.h /usr/src/readhat/SOURCES/proto.h.patch

# patch /usr/src/redhat/SOURCES /samba-2.2.5/source/param/loadparm.c /usr/src/readhat/SOURCES/loadparm.c.patch

# patch /usr/src/redhat/SOURCES /samba-2.2.5/source/smbd/reply.c /usr/src/readhat/SOURCES/reply.h.patch

И выполняем конфигурацию пакета инсталляции (полный перечень всех параметров можно получить по команде./configure --help):

  • переходим в каталог /usr/src/redhat/SOURCES/samba-2.2.5/source


  • # cd /usr/src/redhat/SOURCES/samba-2.2.5/source

  • выполняем конфигурирование:


  • # ./configure --prefix=/usr --with-quota --with-smbmount --with-msdfs --with-privatedir=/etc/samba --with-configdir=/etc/samba --with-lockdir=/var/lock/samba --with-piddir=/var/run/samba --with-logfilebasedir=/var/log/samba

    Этим мы дали команду включить в сборку smbmount, который служит для монтирования SMB-ресурсов в файловую структуру Linux, включили поддержку квот (quota), а также поддержку Microsoft DFS, и приказали устанавливаться в каталог /usr;

  • далее выполняем стандартные:


  • # make; make install

  • еще одним шагом сделаем, следующее:


  • копируем файл smb.init:

    # cp /usr/packaging/RedHat/smb.init /etc/init.d/smb

    делаем симлинк на это файл (чтобы при старте сервера у нас всегда запускалась служба):

    # ln -s /etc/init.d/smb /etc/rc3.d/S99samba

    и, на всякий случай,- для init 5:

    # ln -s /etc/init.d/smb /etc/rc5.d/S99samba

    В результате получаем установленный пакет. Начинаем его настраивать. Основной файл конфигурации и файл паролей пользователей будет находиться в /etc/samba.


    Содержание раздела







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий