Утилита smbstatus позволяет посмотреть некоторую статистику работы samba сервера на Linux, а точнее текущие соединения с сервером.
Об утилите
Утилита smbstatus является частью пакета Samba. Это означает, если вы устанавливаете и настраиваете сервер Samba, то это утилита у вас уже есть и дополнительно ничего устанавливать не нужно.
Это очень простая программа для вывода списка текущих подключений Samba. Её часто используют чтобы посмотреть кто какой файл заблокировал на сервере, или кто какую версию протокола для подключения использует. Или кто с каких компьютеров подключен.
Практика
Без опций утилита smbstatus выводит информацию:
- В разрезе подключенных устройств. То есть с каких компьютеров и под какими пользователями висят подключения к серверу Samba.
- В разрезе каталогов. То есть с каких компьютеров и к каким каталогам сейчас висят подключения.
- В разрезе заблокированных файлов. С какими файлами в данный момент работают, какие редактируют, какие просматривают. Здесь же видно кто с каким файлом работает.
Пример:
# smbstatus Samba version 4.5.16-Debian PID Username Group Machine Protocol Version Encryption Signing ------------------------------------------------------------------------------------------------------------------------ 31039 alex domain users 192.168.0.2 (ipv4:192.168.0.2:52626) SMB3_11 - partial(AES-128-CMAC) 512 elena domain users 192.168.0.15 (ipv4:192.168.0.15:56821) SMB3_02 - partial(AES-128-CMAC) 31366 mike domain users 192.168.0.8 (ipv4:192.168.0.8:63954) SMB3_11 - partial(AES-128-CMAC) 29957 alex domain users 192.168.0.7 (ipv4:192.168.0.7:52792) SMB3_11 - partial(AES-128-CMAC) 29957 mike domain users 192.168.0.7 (ipv4:192.168.0.7:52792) SMB3_11 - partial(AES-128-CMAC) Service pid Machine Connected at Encryption Signing ---------------------------------------------------------------------------------------- accounting 512 192.168.0.15 Fri Aug 25 03:07:21 PM 2023 MSK - - users 29957 192.168.0.7 Fri Oct 6 09:22:59 AM 2023 MSK - - marketing 31039 192.168.0.2 Fri Oct 6 04:58:13 AM 2023 MSK - - marketing 512 192.168.0.15 Fri Aug 25 03:07:21 PM 2023 MSK - - users 31366 192.168.0.8 Fri Oct 6 08:37:55 AM 2023 MSK - - Locked files: Pid Uid DenyMode Access R/W Oplock SharePath Name Time ---------------------------------------------------------------------------------------------------------------------- 512 100253 DENY_NONE 0x12019f RDWR LEASE(RWH) /share/Accounting Почта/Файл1.docx Tue Oct 3 12:39:46 2023 29957 100483 DENY_WRITE 0x120089 RDONLY LEASE(RWH) /share/users Work/Нужный файл.xml Fri Oct 6 10:31:09 2023 512 100143 DENY_ALL 0x12019f RDWR LEASE(RWH) /share/users Work/Агенты/Таблица1.xlsx Tue Oct 3 12:36:24 2023 29957 100121 DENY_WRITE 0x120089 RDONLY LEASE(RWH) /share/users Work/Выгрузка.xml Fri Oct 6 10:33:01 2023
Здесь интересно посмотреть как отображаются права доступа. Для этого лучше всего смотреть на колонку R/W, так как режимы доступа (DenyMode) иногда показывают не то.
Права к заблокированным файлам говорят о том, как открыт данный файл:
- RDWR — файл можно и читать и редактировать;
- RDONLY — файл открыт только для чтения.
Пример:
# smbstatus | grep Проверка 31604 100158 DENY_WRITE 0x12019f RDWR LEASE(R) /share/users Alex/Проверка1.docx Fri Oct 6 12:38:30 2023 29957 100158 DENY_NONE 0x120089 RDONLY LEASE(RH) /share/users Alex/Проверка1.docx Fri Oct 6 12:40:10 2023
- Я с одного компьютера открыл файл и начал его редактировать, это первая строка (DENY_WRITE / RDWR).
- И я же с другого компьютера открыл этот же файл, но только на чтение, это вторая строка (DENY_NONE / RDONLY).
- Иногда, когда файл открыт в режиме на запись можно увидеть следующее (DENY_NONE / RDWR), при этом редактировать будет можно.
- Из этого следует что правильнее смотреть на столбец R/W, а не на столбец DenyMode.
Утилиту можно выполнить с опцией -b
, тогда она покажет краткую информацию, а именно версию сервера и информацию только в разрезе подключенных устройств. Пример:
# smbstatus -b Samba version 4.5.16-Debian PID Username Group Machine Protocol Version Encryption Signing -------------------------------------------------------------------------------------------------------- 31039 alex domain users 192.168.0.2 (ipv4:192.168.0.2:52626) SMB3_11 - partial(AES-128-CMAC) 512 elena domain users 192.168.0.15 (ipv4:192.168.0.15:56821) SMB3_02 - partial(AES-128-CMAC) 31366 mike domain users 192.168.0.8 (ipv4:192.168.0.8:63954) SMB3_11 - partial(AES-128-CMAC) 29957 alex domain users 192.168.0.7 (ipv4:192.168.0.7:52792) SMB3_11 - partial(AES-128-CMAC) 29957 mike domain users 192.168.0.7 (ipv4:192.168.0.7:52792) SMB3_11 - partial(AES-128-CMAC)
Кстати, каждый процесс обслуживает одно подключение. Под подключением я понимаю сеанс пользователя за его компьютером и подключение к серверу Samba из этого сеанса. С каждого персонального компьютера будет висеть по 1 сеансу. С терминального сервера будет висеть соединение от каждого терминального сеанса.
Если вы откроете с одного компьютера два файла на Samba сервере, то оба файла будут обрабатываться одним процессом Samba.
А если вы откроете файл с одного компьютера, а кто-то другой с другого компьютера, то эти файлы будут заблокированы разными процессами (pid).