Правильный способ монтирования общего ресурса Windows

20

Я подключил общий ресурс Windows к своей системе Ubuntu 11.10, добавив следующую строку в /etc/fstab:

//serveraddr/sharedfolder /mnt/foldername/ smbfs credentials=/home/myname/.smbpasswd 0 0

используя учебник здесь .

Но есть проблема с разрешениями. Владелец папки монтирования - root. Я не могу создавать папки или файлы в точке монтирования, если я не становлюсь пользователем root. Даже я не могу изменить владельца на моего пользователя по умолчанию через

sudo chown -R myname .

Я погуглил и увидел, что это может быть связано с тем, что форматы файлов Windows (fat32 / ntfs) не могут сохранить права собственности. Но когда я подключаюсь к тому же месту через самбу, как

smb://serveraddr/sharedfolder

предоставляя свои учетные данные, я имею право писать, не будучи пользователем root.

Как я могу сделать так, чтобы я мог писать в смонтированную папку?

Petrichor
источник

Ответы:

29

Не используйте smbfs, имя нового протокола cifsи его часть пакета cifs-tools(установите его, если вы этого еще не сделали.

Вместо этого используйте эту строку в вашем fstab

//server/share /mnt/mountname cifs username=server_user,password=user_password,iocharset=utf8,file_mode=0777,dir_mode=07‌​77 0 0

где

server = your server that you are trying to access
share = mapped share on that server
/mnt/mountname = any folder that you created with sudo /mnt/<folder_name>
username = the name of the user on that server that can access the mount
password = the password for that user

После этого вы можете проверить с помощью sudo mount -a: если вы не получили никаких сбоев, вы можете безопасно перезагрузиться, чтобы найти ваши общие ресурсы /mnt/<folder_name>.

Чтобы использовать учетные данные файла вместо usernameи passwordпараметров на fstabвы можете создать файл с этими 2 строками , так что ваше имя пользователя и пароль явно не показаны в Fstab

sudo nano /etc/cifspwd

Добавьте эти строки в файл

username=<username on server>
password=<password for that username>

Нажмите Ctrl + X и, когда появится запрос, нажмите, yчтобы сохранить файл.

Закрепите это с

sudo chmod 600 /etc/cifspwd

Используйте эту строку вместо предыдущей

//server/share /mnt/mountname cifs credentials=/etc/cifspwd,iocharset=utf8,file_mode=0777,dir_mode=07‌​77 0 0

После этого перезагрузка будет безопасна, и вы должны смонтировать устройство, и ваши данные будут защищены.

Бруно Перейра
источник
Если это не работает, пожалуйста, вставьте вывод cat ~/.smbpasswd.
Бруно Перейра
@ bbrunopereira81: это не работает. cat .smbpasswdдарит user=name.surname pass=******* dom=domainname
петричор
@ IsmailArı, почему у вас есть домен? ты часть домена ??? попробуйте использовать все на той же строке , вместо того , чтобы файл отдельно для учетных данных, попробуйте это на терминале: sudo mount -t cifs //ip_from_windows_pc/sharename /mnt/share -o username=windows_username,password=windows_password_for_user,iocharset=utf8,file_‌​mode=0777,dir_mode=0777. если у вас есть ошибки, запишите их.
Бруно Перейра
1
Добавлена ​​информация для файла учетных данных, вы также можете использовать этот метод.
Бруно Перейра
2
Я думаю, что стоит отметить, что в Ubuntu 12.10 «mode» не был допустимым параметром. Вместо этого мне пришлось использовать «file_mode». Кроме того, я не уверен, что полностью согласен с общими разрешениями 0777. Если вы монтируете личный общий ресурс только для себя, я думаю, что что-то вроде "file_mode = 0660, dir_mode = 0770" будет более подходящим.
Avian00