Частенько приходится работать через консоль, поэтому решил собрать здесь основные команды, которые приходится применять чаще всего. Раньше в браузере была куча закладок, на страницы сторонних сайтов, с решением той или иной задачи. Я решил, что лучше все собрать в одном месте. По мере поступления новых must-have буду обновлять. Итак, поехали:

 

Архивы

Создать архив .tar/.tar.gz

tar -cvf file.tar /full/path — создать .tar (без сжатия)

tar -czvf file.tar.gz /full/path — создать .tar.gz (архив GZip)

Распаковать архив .tar/.tar.gz

tar -xvf file.tar — распаковать обычный .tar (без сжатия)

tar -xzvf file.tar.gz — распаковать .tar.gz (запакованны GZip-ом)

Распаковать архив .gz (GZip, без TAR)

gunzip file.gz — распаковать обычный .gz (GZip, без TAR. Распаковываемый архив должен иметь права на исполнение: chmod +x file.gz)

 

Базы данных MySQL

Импорт дампа базы данных

mysql -u db_user -p -h localhost db_name < dump.sql

Импорт дампа базы данных, упакованных в gzip (*.sql.gz)

gunzip < dump.sql.gz | mysql -u db_user -p db_name

Экспорт базы данных (создание дампа)

mysqldump -u db_user -p -h localhost db_name > dump.sql

Создание архива GZip с дампом БД

mysqldump -u db_user -p -h localhost db_name | gzip > dump.tar.gz

Создание дампа нескольких баз данных одновременно

mysqldump -u db_user -p -h localhost -B db_name1 db_name2 db_name3 > databases.sql

Создание дампа всех баз данных

mysqldump -u db_user -p -h localhost -A > all-databases.sql

Сохранить только структуру БД

mysqldump —no-data -u db_user -p -h localhost db_name > schema.sql

Создание дампа только одной или нескольких таблиц БД

mysqldump -u db_user -p -h localhost db_name tbl_name1 tbl_name2 tbl_name3 > dump.sql

Дополнительные атрибуты (уменьшают размер дампа и повышают скорость работы)

mysqldump -Q -c -e -u db_user -p -h localhost db_name > /path/to/file/dump.sql

— Q — оборачивает имена обратными кавычками;

— c — делает полную вставку, включая имена колонок;

— e — делает расширенную вставку.

Если не запускается MySQL, лог ошибок можно увидеть прямо в консоли (команда для Windows)

mysqld —defaults-file=C:Program Files…my.ini —console

 

Файлы/директории

Узнать абсолютный путь до текущего каталога

pwd

Удалить папку со всем ее содержимым

rm -R /path/to/dir

Создать символьную ссылку

ln -s  /etc/apache2/sites-available/site.com.conf /etc/apache2/sites-enabled/site.com.conf

Подсчитать количество файлов в текущем каталоге (включая вложенные)

find . -type f | wc -l

Подсчитать занимаемый размер каталога

du -sh /var

Вывести на экран количество файлов в поддиректориях текущего каталога

for D in `ls -Fl | grep / | awk ‘{print $9}’` ; do echo $D `find -L $D -type f -print | wc -l` ; done

Удалить в директории все файлы старше N дней

find /home/user -type f -mtime +N -exec rm {} ;

Узнать информацию об использовании inodes (файловых дескрипторов):

df -i

Создать патч

diff -uN file.orig file.new > file.patch

Наложить патч

patch file.orig < file.patch

Найти определенные файлы и скопировать их с сохранением иерархии

find . -name «ru.po» -exec cp —parents «{}» /destination/dir/ «;»

 

Прочее

Вывести последние 10 строк из лог-файла, с автообновлением в реальном времени

tail -n10 -f /var/log/sites/your-site.ru.error.log

(путь до файлов с логами Apache у вас скорее всего будет другим)

Узнать информацию о процессоре

cat /proc/cpuinfo

или

lscpu

Показать ТОП10 медленных запросов MySQL (сортировка по времени исполнения time):

mysqldumpslow -s t -t 10 /var/log/mysql-slow.log

Показать ТОП10 запросов MySQL, в который не используются индексы (сортировка по кол-ву вызовов count):

mysqldumpslow -s c -t 10 /var/log/mysql-slow.log

Установить корректно конвертер шрифтов (Debian):

apt-get install libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11

wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip

unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && mv sfnt2woff /usr/local/bin/

Предисловие

В новых дистрибутивах Линукс стало модным называть разделы не по «именам», скажем, /dev/hda2, а используя UUID'ы — Уникальные Идентификаторы. Выглядят они как абсолютно нечитаемые для человека многозначные номера, да еще и шестнадцатеричные, например: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619".

Удобство понимания и заполнения таких конфигурационных файлов как, скажем, /etc/fstab «значительно повысилось». Стало невозможным понять о каком разделе идет речь. Хорошо если у вас всего пять-шесть разделов, еще можно помнить, на каком своп, а на каком корень. А если разделов в три раза больше? Да если еще и постоянно удаляешь одни, и создаешь другие? Мода требует жертв.

Кому же нужны UUID'ы и для кого они действительно удобны? Сисадминам больших серверов, у которых одновременно присутствуют носители всевозможных типов, да еще и объединенные во всякие RAID'ы и прочие сиадминские заморочки. Для них, когда возникает необходимость перенести содержимое с одного носителя на другой, потом встает большая проблема правильно внести изменения в ту же /etc/fstab вручную. С UUID'ами же ядро, при помощи специальных программ, автоматически находит и размечает разделы по соответствующим носителям. Это им экономит много сил и времени.

Простым же смертным, имеющим два компьютера с тремя винчестерами на обоих, эти UUID'ы нужны как зайцу стоп-сигнал. Я лично первым делом безжалостно удаляю все эти номера из файлов /etc/fstab и /boot/grub/menu.lst. Это позволяет мне избежать головной боли при клонировании разделов, когда возникают два раздела с одинаковыми «Уникальными номерами».

Но многим почему-то нравятся UUID'ы, и они озабочены, если какой-нибудь раздел, например подкачки, вдруг прописан по «имени-отчеству». В Сети иногда встречаются такие вопли о помощи: «Мой раздел своппига не имеет UUID'а. Как мне узнать его и вписать в /etc/fstab?». Для вас, любители UUID'ов, эта статья.

Команда blkid

Программа blkid, используя библиотеку libblkid, умеет читать содержимое файлов блочных устройств типа /dev/hda2. Эти специальные файлы, находящиеся в директории /dev иначе называются нодами устройств, имеют весьма специфичную структуру, и не могут быть прочитаны обычными средствами (скажем, командой cat).

Однако программа blkid по умолчанию не считывает информацию о разделах непосредственно из соответствующих нод устройств, а считывает ее из файла /etc/blkid.tab. Этот файл зачем-то называется в мане команды blkid кэш файлом, а всем известно, что слово cache имеет множесто значений, а потому совершенно бессмысленно. Должен вас сразу предупредить, что в файле /etc/blkid.tab со временем накапливается устаревшая информация о давно несуществующих разделах, поэтому не думайте читать сам файл в поисках UUID'ов, можете жестоко обмишулиться. Пользуйтесь командой blkid с соответсвующими опциями.

Команда blkid без опций

Команда blkid без опций, запущенная с правами суперпользоателя, выведет на экран дисплея информацию, содержащуюся в файле /etc/blkid.tab:

# blkid
/dev/disk/by-id/scsi-SATA_Hitachi_HTS5416_SB344CHRJT80JD-part7: UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7" TYPE="ext3" SEC_TYPE="ext2" LABEL="Common"
/dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"
/dev/sda5: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" SEC_TYPE="ext2"
/dev/sda6: TYPE="swap"
/dev/sda7: UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7" TYPE="ext3" LABEL="Common"
/dev/disk/by-uuid/5a179614-0415-48c6-a9ad-3f6ad9596619: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" SEC_TYPE="ext2"
/dev/sda8: UUID="41825dd5-d866-45f6-bcfd-c4c9aa4de045" SEC_TYPE="ext2" TYPE="ext3" LABEL="lenny"
/dev/sda9: UUID="e6758566-4e3b-4cf0-be5e-37949b52c64f" SEC_TYPE="ext2" TYPE="ext3" LABEL="deb2"
/dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs"

Я предупреждал. Тут, конечно, можно разобраться при желании, но непонятно, откуда может взяться такое желание, когда можно поступить проще. А именно запустить команду blkid с опцией -c.

Команда blkid с опцией -c

Вообще-то опция -c заставляет blkid читать не из файла blkid.tab, а из любого указанного файла. Скажем, /dev/null. Не имея никакой информации из данного файла, команда вынуждена будет прочитать информацию из нод устройств, то есть выдать нам реальную картину на текущий момент:

# blkid -c /dev/null
/dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs"
/dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"
/dev/sda5: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3"
/dev/sda6: TYPE="swap"
/dev/sda7: LABEL="Common" UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7" TYPE="ext3"
/dev/sda8: LABEL="lenny" UUID="41825dd5-d866-45f6-bcfd-c4c9aa4de045" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda9: LABEL="deb2" UUID="e6758566-4e3b-4cf0-be5e-37949b52c64f" SEC_TYPE="ext2" TYPE="ext3"

Совсем другое дело, не правда ли?

Поэтому советую сохранить старые файлы blkid.tab и blkid.tab.old под другими именами, тогда при следующей загрузке будет создан новенький чистенький файлик blkid.tab, где все будет как в выводе команды blkid -c /dev/null. Стоит после этого проверить /etc/fstab и /boot/grub/menu.lst.

Остальные опции команды крайне невыразительны и бесполезны. Чем трудиться запоминать их, проще запустить команду вовсе без опций или с опцией -c /dev/null. Тем не менее:

Опция <device>

# blkid /dev/sda5
/dev/sda5: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" SEC_TYPE="ext2"

Выдает сведения об указанном устройстве.

Опция -t

# blkid -t TYPE=ntfs
/dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"
/dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs"

Найдет все устройства, отвечающие заданному критерию, будь то TYPE, LABEL, или UUID. Можно сужать круг поиска, вводя в командную строку имена интересующих устройств:

# blkid -t TYPE=ntfs /dev/sda1 /dev/sda2 /dev/sda6 /dev/sda7
/dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs"
/dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"

Опция -s

# blkid -s UUID /dev/sda7
/dev/sda7: UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7"

Выдаст только указанный критерий нужного устройства.

Опция -o

Позволяет выбирать формат вывода из трех возможных: value (значение критерия), device (устройство), или full (полный). Например:

# blkid -o value
465e53f5-a682-4fde-8e0c-4c77a533aca7
ext3
ext2
Common
02E4E3A0E4E39467
Vista
ntfs
5a179614-0415-48c6-a9ad-3f6ad9596619
ext3
ext2
swap
465e53f5-a682-4fde-8e0c-4c77a533aca7
ext3
Common
5a179614-0415-48c6-a9ad-3f6ad9596619
ext3
ext2
41825dd5-d866-45f6-bcfd-c4c9aa4de045
ext2
ext3
lenny
e6758566-4e3b-4cf0-be5e-37949b52c64f
ext2
ext3
deb2
5408E10E08E0F042
WinRE
ntfs

Опция -l

Применяется вместе с опцией поиска -t. Но из всего найденного выдаст сведения только об одном устройстве. Обычно это первое прочитанное в файле /etc/blkid.tab устройство.

# blkid -lt TYPE=ntfs
/dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"

Опция -g

В мане сказано, что убирает мусор в каком-то кэше blkid. Если имеется в виду файл /etc/blkid.tab, то не работает.

Опция -w

Записывает данные в указанный вами файл, вместо файла /etc/blkid.tab.

По моему, проще переадресовать в файл «file» вывод команды.

# blkid -c /dev/null > file

Опция -h

Выводит помощь.

Опция -v

Выводит версию программы.

Вот все, что касается команды blkid. Однако существуют и другие возможности узнать UUID раздела.

Самая очевидная — заглянуть в директорию /dev:

# ls /dev/disk
by-id  by-label  by-path  by-uuid

Там четыре субдиректории, одна из которых by-uuid. Посмотрим:

# ls /dev/disk/by-uuid
02E4E3A0E4E39467                      5408E10E08E0F042
41825dd5-d866-45f6-bcfd-c4c9aa4de045  5a179614-0415-48c6-a9ad-3f6ad9596619
465e53f5-a682-4fde-8e0c-4c77a533aca7  e6758566-4e3b-4cf0-be5e-37949b52c64f

Вот поди, догадайся, что к чему относится! Нет, это не метод.

Команда vol_id

Существует еще команда vol_id. Она настолько простая, и ман к ней так понятно написан, что разобраться с ней не составит труда. Например:

# vol_id /dev/sda2
ID_FS_USAGE=filesystem
ID_FS_TYPE=ntfs
ID_FS_VERSION=3.1
ID_FS_UUID=02E4E3A0E4E39467
ID_FS_UUID_ENC=02E4E3A0E4E39467
ID_FS_LABEL=Vista
ID_FS_LABEL_ENC=Vista
ID_FS_LABEL_SAFE=Vista

Или еще пример:

# vol_id --uuid /dev/sda5
5a179614-0415-48c6-a9ad-3f6ad9596619

Хорошая и удобная команда, жаль, что не во всех дистрибутивах встречается.

Заключение

На сладкое я приберег самое интересное: кто же присваивает устройствам UUID'ы? Где записаны эти самые идентификаторы?

Если говорить о разделах жесткого диска, то UUID'ы присваиваются им в процессе создания файловой системы (некоторые утверждают, что они вычисляются из характеристик раздела), и записываются где-нибудь в суперблоках. Во всяком случае, еще не отформатированный раздел не имеет UUID'а. А при клонировании раздела командой dd, раздел, в который устанавливают клон, меняет свой UUID на идентификатор клона.

При загрузке компьютера, программа udev записывает UUID раздела в его ноду — файл блочного устройства в директории /dev. В доступной пользователю части файловой системы, UUID'ы разделов можно найти в файле /etc/blkid.tab, но информация эта может оказаться устаревшей.

Нравится мне это или нет, но UUID'ы прочно вошли в повседневный быт линуксоида. И нет в них никакой мистики.

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

Linux

Это называется  Linux audit trails. Как это настроить и использовать — описано здесь

FreeBSD

К сожалению, нормального аналога нет, но зато энтузиасты написали что-то похоже. Так же рекомендую прочесть другую заметку

Первоочередная возможность компьютера, находящегося в сети, будь то сервер, или просто рабочая станция, которая должна быть реализована — общий доступ к файлам. В Ubuntu это можно реализовать посредством различных протоколов. В этой заметке я расскажу о настройке SAMBA-сервера в Ubuntu Server 12.04 LTS для работы в домашней сети.

SAMBA — это open-source реализация протокола SMB/CIFS, который имеет Windows корни. Собственно поэтому наилучшим образом подходит для доступа к файлам с Windows-компьютеров. Все необходимое о настройке SAMBA и даже больше можно узнать в из статьей на сайте IBM developerWorks:

  1. Основные принципы,
  2. Управление учетными записями пользователей и групп,
  3. Управление доступом к файловой системе и общим ресурсам Linux,
  4. Аутентификация и авторизация,
  5. Конфигурация Samba,
  6. Файловые службы.

Итак, по порядку.

Установка

Делается командой:

sudo apt-get install samba

Подготовка и основные принципы

Прежде всего на сервере необходимо создать учетные записи пользователей, которые будут им пользоваться. Создавать их нужно дважды: учетную запись Linux и учетную запись Samba. Затем необходимо определить какие папки предоставлять для общего доступа, установить желаемые права доступа к файлам и пользоваться. Все просто, если не лезть в глубины конфигурации.
Для того чтобы все работало необходимо навести порядок с правами доступа к файлам на сервере. Чтобы сделать это нужно создать на сервере пользователей, соответствующих пользователям на компьютерах с которых будет производиться доступ к файлам сервера.

Добавляем учетную запись пользователя UNIX:

sudo useradd -c 'комментарий' -m user_name -g group_name

Здесь:
user_name — имя пользователя;
— g group_name — основная группа пользователя, от лица которой он будет производиться все действия пользователя, группа должна существовать;
— c 'комментарий' — комментарий к учетной записи;
— m указывает на необходимость создания домашней директории пользователя, если ее не существует (обычно это /home/user-name).

Создать группу можно командой groupadd:

sudo groupadd group_name

где group_name — имя создаваемой группы.

Если понадобиться изменять учетную запись пользователя, то делается это командой usermod, удаление — командой userdel. Аналогично и с группами: нужно использовать команды groupadd и groupadd соответственно, главное случайно не удалить всех пользователей из групп, имеющих права пользоваться командой sudo.

Добавляем учетную запись пользователя SAMBA

SAMBA умеет хранить информацию об учетных записях пользователей различными способами, мы будем использовать базу данных tdbsam. И если количество учетных записей на сервере меньше 250, то этого нам будет достаточно с головой.
Тут все делается командой smbpasswd. Для добавления учетной записи пользователя user_name:
sudo smbpasswd -a user_name
для удаления учетной записи пользователя пользователя user_name:
sudo smbpasswd -x user_name
После добавления учетной записи пользователя user_name, ее надо активировать командой:
sudo smbpasswd -e user_name
для деактивации учетной записи пользователя user_name:sudo smbpasswd -d user_name
После того, как с пользователями мы разобрались можно приступать непосредственно к настройке сервера.

Я написал bash-скрипт для добавления учетных записей UNIX и SAMBA:

#Добавляет пользователя в группу, группа должна существовать.
echo «Для добавления учетных записей пользователя Linux и SAMBA введите Имя Пользователя и Название его рабочей группы (группа должна существовать).»
user_name=""
while [ "${user_name}" = "" ]
do
echo Введите имя добавляемого пользователя:
read user_name
done
echo Введите название группы, в которую добавить пользователя:
read group_name
if [ "`cat /etc/group | grep ${group_name}`" = "" ]
then
Группы с таким именем не существует.
else
echo Добавление учетной записи пользователя ${user_name} в группу ${group_name}...
sudo useradd -m -g ${group_name} ${user_name}
echo Добавление учетной записи пользователя ${user_name} SAMBA...
sudo smbpasswd -a ${user_name}
echo Включение учетной записи SAMBA ${user_name}...
sudo smbpasswd -e ${user_name}
fi

bash-скрипт для добавления учетных записей UNIX и SAMBA

Запустить его можно командой:

sudo bash /path/script

где /path/script путь к скрипту.

Просмотр информации о пользователях и группах

Полезно знать как посмотреть информацию о всех учетных записях пользователей существующих в системе.
Информацию об учетной записи пользователя можно получить с помощью команды id:

id user_name

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

cat /etc/passwd

Информация о группах UNIX хранится в файле /etc/group, посмотреть файл можно командой:

cat /etc/passwd

Информация об учетных записях SAMBA, хранящихся в базе данных получается командой:

sudo pdbedit -L

Настройка SAMBA-сервера

Настройки хранятся в файле smb.conf в папке /etc/samba. Для его редактирования можно воспользоваться командой:

sudo nano /etc/samba/smb.conf

Файл smb.conf  состоит из разделов, которые начинаются с названия, заключенного в квадратные скобки. Существуют три специальных раздела: global, homes и printers. Приведу цитату из статьи 5:

  • global. Все параметры, содержащиеся в этом разделе, влияют на работу всего сервера. При необходимости параметры раздела global можно переопределить на уровне общего ресурса.
  • homes . Этот раздел является шаблоном для домашних директорий пользователей; Samba самостоятельно сопоставляет имена пользователей в соответствии с настройками этого раздела, избавляя от необходимости настраивать отдельный общий ресурс каждый раз, когда необходимо предоставить пользователю доступ к его домашней директории.
  • printers. Этот раздел аналогичен разделу homes, но используется для принтеров.

Разделы с другими именами относятся к общим файловым ресурсам или принтерам.

В каждом разделе могут находиться те или иные параметры, список которых можно посмотреть на man-странице smb.conf.

Давайте посмотрим на файл smb.conf, который использовал я:

[global]
log file = /var/log/samba/log.%m
max log size = 2000
log level = 2
syslog = 2

passdb backend = tdbsam
passwd program = /usr/bin/passwd %U

obey pam restrictions = yes
pam password change = yes
unix password sync = yes
domain master = no
hosts allow = 192.168.1. 127.
dns proxy = no
workgroup = WORKGROUP
security = user
panic action = /usr/share/samba/panic-action %d

[HOMES]
; комментарий
comment = Home directories
; Доступ к директории только самим пользователям
valid users = %U
; запись разрешена?
writable = yes
; права создаваемых файлов и папок
create mask = 0600
directory mask = 0700
; отображать в списке ресурсов в сетевом окружении?
browseable = no

; общая папка SharedSpace, доступная всем для записи и чтения, гостевого доступа нет.
[SharedSpace]
; комментарий к создаваемой папке
comment = Public files
; путь к папке
path = /home/SharedFiles
; разрешаем запись всем
writable = yes
; права создаваемых файлов и папок
create mask = 0777
directory mask = 0777
; скрывать файлы, недоступные для чтения
hide unreadable = yes
; пользователи, которые имеют административные привилегии над ресурсом
admin users = admin_user

В данной конфигурации каждый пользователь будет видеть два общих ресурса: его домашнюю папку на сервере, доступную только ему и ресурс с именем SharedSpace, доступный всем пользователям. Символы с % являются заменяемыми переменными, и, например, %m заменяется на имя клиентского компьютера.
Далее указаны параметры на которые следует обратить особое внимание:
Раздел global:
passdb backend = tdbsam — указывает, что информацию об учетных записях пользователей будет храниться в базе данных tdbsam.
security = user — означает, что для пользования сервером пользователь должен «залогиниться» под имеющейся на сервере учетной записью для получения доступа к соответствующим общим ресурсам.
workgroup = WORKGROUP — рабочая группа, членом которой будет SAMBA-сервер.
Разделы homes и SharedSpace:
path = /path/to/resource — путь к общему ресурсу.
create mask, directory mask = 0777 — файлы и директории, соответственно, будут создаваться как минимум с указанными правами. Именно эти параметры устанавливают будут ли файлы и папки доступны для всех пользователей, только хозяев или их групп (подробнее о правах доступа к файлам в статье номер 3).
admin users = admin_user — пользователи, которые могут делать с ресурсом любые действия, независимо от установленных разрешений.

Процессы, отвечающие за работу сервера

Работа обеспечивается двумя демонами: smbd, обеспечивающий доступ к общим ресурсам, и
nmbd, обеспечивающий работу сетевой службы имен. Для вступления в действие изменений файла smb.conf необходим их перезапуск, это делается командами:

sudo restart smbd
sudo restart nmbd

Можно воспользоваться командами start и stop.

Итого

Здесь описана лишь малая часть возможностей, предоставляемых SAMBA, узнать о которых можно на сайте http://www.samba.org/. Тем не менее, проделав описанные действия можно  реализовать один из множества способов общего доступа к файлам. Главным его достоинством является кроссплатформенность — будь у пользователя OS X, Windows или Linux, он сможет получить доступ к общим файлам.
Скорость доступа к серверу, реализованному указанным образом, может варьироваться в широких пределах: с Winsows-компьютера, по гигабитному проводу скорость загрузки на сервер больших файлов у меня около 60 Мб/с, с мака она раз в 10 меньше. Поэтому ограничивать общий доступ к файлам лишь SAMBA сервером имеет смысл, если у Вас дома все компьютеры имеют ОС Windows.