Підключення мережевого диска windows в linux - команда, hippolab - блог системного адміністратора

Підтримку мережевих дисків Windows в Linux забезпечує пакет cifs-utils. Якщо він у вас ще не встановлений, в командному рядку від імені суперкористувача введіть

apt-get install cifs-utils

Ця команда перевірить, чи встановлений вказаний пакет і, якщо ні, встановить його.

Створіть в / mnt (або будь-якому іншому місці) папку, в яку ми будемо підключати мережевий диск Windows:

І нарешті саме підключення мережевої папки Windows в Linux виконується за допомогою команди mount.cifs

mount.cifs // SERVER_IP / SHARE_NAME / mnt / winshare -o username = WIN_USER_NAME, password = WIN_USER_PASSWORD

У більшості випадків цього достатньо, якщо ви працюєте від імені користувача root. Якщо ж ви від імені суперкористувача робите тільки підключення мережевої папки Windows, а працювати з нею плануєте від імені звичайного, непрівелегірованного користувача, то в якості опції команді mount.cifs необхідно передати значення UID і GID цього користувача, інакше, швидше за все, вам не будуть доступні операції редагування файлів і каталогів. Отримати UID і GID користувача можна командою:

grep MY_USER_NAME / etc / passwd

Підставивши замість MY_USER_NAME ім'я користувача, під яким ви працюєте в Linux, ви отримаєте приблизно наступний рядок:

де 3-е і 4-е поле якраз вказують на UID і GID користувача MY_USER_NAME. Тепер просто підставимо отримані значення в якості додаткових аргументів команди mount.cifs:

mount.cifs // SERVER_IP / SHARE_NAME / mnt / winshare -o username = WIN_USER_NAME, password = WIN_USER_PASSWORD, uid = 1000, gid = 1000

де uid = 1000, gid = 1000 - uid і gid, отримані з прикладу вище.

Навпаки, якщо мережевий диск публічний, і для доступу до нього не потрібен ні логін ні пароль, в опціях замість імені користувача та його паролю потрібно вказати, що доступ є гостьовим:

mount.cifs // SERVER_IP / SHARE_NAME / mnt / winshare -o guest

І нарешті, щоб в Linux автоматично підключати мережеву папку після перезавантаження, вносимо відповідну інформацію в / etc / fstab (дописуємо в кінець файлу):

// SERVER_IP / SHARE_NAME / MOUNT_POINT_PATH cifs ALL_OPTIONS 0 0

Тобто повинно вийти щось на зразок

//192.168.0.1/share / mnt / winshare cifs user = WIN_USER_NAME, password = WIN_USER_PASSWORD, uid = 1000, gid = 1000 0 0

nano / etc / credentials # ім'я файлу може бути будь-яким

Робимо його доступним для читання і запису тільки для користувача root:

chmod 600 / etc / credentials # вказуйте файл, який створювали ви

і замість всього обв'язування з імен і паролів просто пишемо в опціях credentials = / etc / credentials (або той файл, який ви створили). Ця опція працює як при ручному монтуванні мережевого диска Windows

mount.cifs // SERVER_IP / SHARE_NAME / mnt / winshare -o credentials = / etc / credentials, uid = 1000, gid = 1000

так і автоматичному, при внесенні запису в / etc / fstab (з прикладу вище):

//192.168.0.1/share / mnt / winshare cifs credentials = / etc / credentials, uid = 1000, gid = 1000 0 0

Примітка. Якщо ви використовуєте дистрибутив, заснований на SystemD (Debian версії 8 і вище, Ubuntu версії 15.04 і вище, Fedora, ArchLinux.), Застосування файлу / etc / fstab для автоматичного монтування файлових систем є небажаним, так як SystemD використовує дещо інший механізм для монтування файлових систем, хоча він і назад сумісний с / etc / fstab. Дізнатися, як можна використовувати можливості SystemD для монтування файлових систем можна в статті SystemD Automount