Дізнаємося яким користувачем відкритий файл в samba, linux для чоловіків!

Якщо Вам в "спадок" або якимось іншим способом дістався контролер домену на Samba в ролі PDC, то Ви рано чи пізно зіткнетеся з ситуацією, коли потрібно буде дізнатися який користувач домену відкрив той чи інший файл, так як для всіх інших хто має до нього доступ, він стає тільки для читання. Відбувається це з цілком зрозумілих причин, але чудовий офісний пакет від MS який іноді працює тільки по одному йому відомим алгоритмам, що не показує у кого саме відкритий цільової файл, навіть якщо в настройках прописано ім'я користувача. Бухгалтера та інші економісти і чути не хочуть про якісь там "неможливо", "файл відкритий іншим користувачам", їм подавай тут і зараз - Робота стоїть!

Щоб робота не стояла і настрій ні у кого не псувалося, відкриваємо термінал з правами суперкористувача root і виведемо список файлів які на даний момент заблоковані від змін.

У вихлопі може бути багато всякого непотрібного сміття, але ми знаючи ім'я цільового файлу за допомогою grep елегантно приберемо все зайве.

У висновку буде міститися pid процесу яким зараз використовується цей файл і власне шлях до нього. Далі нам потрібно зіставити pid процесу і ім'я користувача.

Наприклад pid процесу відкрив файл - 10023

Тепер Samba виведе нас логін користувача відкрив файл.

// Як показує практика, найчастіше можна починати з другого етапу, опустивши виконання

НЕ
smbstatus -u | grep 10023
а
smbstatus -b | grep 10023

Сам пробував? Чи не вводь людей в оману. З ключем -b не вказує відкритих файлів, процесів і користувачів.

Сам пробував? Чи не вводь людей в оману. З ключем -b не вказує відкритих файлів, процесів і користувачів.

З ключем -b усе працює це ти не вводь людей в оману.

На локалхосте з самбою 3.5. * З ключем -b не виводить потрібну інфу. На старіших версіях (3.0. *) Незалежно від ключа (-u або -b) потрібна інфа виводиться лише з тією відмінністю, що з -b показує менше зайвої інформації.

Другий командою простіше дати:

оскільки в другому стовпці виведення команди smbstatus -L | grep file_name світиться uid користувача (числове значення)