Узнаем каким пользователем открыт файл в Samba

Если Вам в «наследство» или каким то другим способом достался контроллер домена на Samba в роли PDC, то Вы рано или поздно столкнетесь с ситуацией, когда нужно будет узнать какой пользователь домена открыл тот или иной файл, так как для всех остальных кто имеет к нему доступ, он становится только для чтения. Происходит это по вполне понятным причинам, но расчудесный офисный пакет от MS который иногда работает только по одному ему известным алгоритмам, не показывает у кого именно открыт целевой файл, даже если в настройках прописано имя пользователя. Бухгалтера и прочие экономисты и слышать не хотят про какие то там «невозможно», «файл открыт другим пользователям», им подавай здесь и сейчас — Работа стоит!

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

smbstatus -L

В выхлопе может быть много всякого ненужного мусора, но мы зная имя целевого файла с помощью grep элегантно уберем все лишнее.

smbstatus -L | grep file_name

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

Например pid процесса открывшего файл — 10023

smbstatus -u | grep 10023

Теперь Samba выведет нам логин пользователя открывшего файл.

//Как показывает практика, чаще всего можно начинать со второго этапа, опустив выполнение

smbstatus -L

Оцените статью