Підключіть CIF Network Drive: пишіть дозволи та клопотайте


99

У мене є доступ до мережевого накопичувача cifs. Коли я монтую його під моєю машиною OSX, я можу читати та писати з нього та на ньому.

Коли я монтую диск в ubuntu, використовуючи:

sudo mount -t cifs -o username=${USER},password=${PASSWORD} //server-address/folder /mount/path/on/ubuntu

Я не в змозі записати на мережевий диск, але я можу читати з нього. Я перевірив дозволи та власника папки mount, вони виглядають так:

4.0K drwxr-xr-x  4 root root    0 Nov 12  2010 Mounted_folder

Я не можу змінити власника, оскільки я отримую помилку:

chown: changing ownership of `/Volumes/Mounted_folder': Not a directory

Коли я спускаюся глибше в мережевий диск і змінюю там право власності, я отримую помилку, що не маю дозволу змінювати власника папки.

Що мені робити, щоб активувати дозвіл на запис?


Чи вказана файлова система в / etc / fstab? Якщо так, то які варіанти має запис?
Дженні Д

3
Ви також можете скористатись nopermопцією кріплення, аналогічно зазначеній у моїй відповіді на це питання: unix.stackexchange.com/a/375523/16287 . Це дозволить усім користувачам читати та записувати доступ до кріплення CIFS.
Даніель

Відповіді:


137

Ви монтуєте спільний ресурс CIFS як root (тому що ви використовували sudo), тому ви не можете писати як звичайний користувач. Якщо ваш дистрибутив Linux та його ядро ​​є досить недавніми, щоб ви могли змонтувати мережевий спільний доступ як звичайний користувач (але під папкою, якою користувач користується), у вас будуть належні облікові дані для запису файлу (наприклад, змонтуйте спільну папку десь під вашою домашній каталог, як, наприклад $HOME/netshare/,. Очевидно, вам потрібно створити папку перед її монтажем).

Альтернативою є вказівка ​​користувача та ідентифікатора групи, яку повинен використовувати змонтований загальнодоступний мережевий ресурс, це дозволить конкретному користувачеві та потенційно групі записати на загальну суму. Додайте наступні параметри до гори : uid=<user>,gid=<group>і замінити <user>і <group>відповідно вашим власним користувачем і по замовчуванням групи, ви можете автоматично знайти з idкомандою.

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g) //server-address/folder /mount/path/on/ubuntu

Якщо сервер надсилає інформацію про право власності, можливо, вам потрібно буде додати параметри forceuidта forcegidпараметри.

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu

це працювало на мене! Але ми повинні додати, що якщо спільна папка знаходиться на ПК з доменом входу, ви повинні додати цю опцію domain. Приблизно так: sudo mount -t cifs -o username=${USER},password=${PASSWORD},dom=${DOMAIN}, uid=<user>,gid=<group> //server-address/folder /mount/path/on/ubuntuнасправді домен може перейти у параметр "ім'я користувача", але пам’ятайте, що вам потрібно використовувати /замість `, like ім'я користувача = DOMAIN / user.name`.
Жоао Портела

Так, це правильно. :-) Можливо, вам потрібно буде вказати домен чи робочу групу (для старшої версії Windows) за допомогою параметра "domain =" або через ім'я користувача, це хороший момент. І іноді навіть потрібно вказати схему шифрування або версію CIFS, яку слід використовувати. Але все це не було частиною цього питання, тому я залишив це осторонь. :-)
Гюйгенс

2
Це саме те, що мені було потрібно. У мене був запис у / etc / fstab для автоматичного монтажу мережевого диска при запуску. Я не міг записати на гору, тому я додав, uid = <myUserID> для рядка, який виглядає приблизно так://192.168.1.7/public /colmustang cifs username=<uname>,password=<upassword>,uid=<myUserID> 0 0
Джеймс

5
@ 71GA username- це віддалений вхід для використання для аутентифікації. Це uidмісцевий ідентифікатор користувача, яким ви хочете вкласти всі файли / папки. Таким чином, ім'я користувача від'єднується від uid, ім'я користувача - це віддалений вхід користувача, тоді як uid - ваш локальний ідентифікатор користувача. Зауважте, що це може бути те саме, якщо ваш сервер Samba і ви використовуєте LDAP або інший централізований обліковий запис і для клієнта, і для сервера :-).
Гюйгенс

1
@Tak Добре запитання. Дивіться відредаговану відповідь.
Жиль

20

Я успішно перевірив таку команду:

sudo mount -t cifs -o username=[username],password=[password],uid=1001,gid=1001 //172.16.148.2/dfsgob01 /home/ususario/Documentos/benz-win

19
Використовуйте "id -u <user>" та "id -g <user>, щоб отримати відповідно uid та gid.
nvd

3
Зауважте, що ви можете використовувати ім'я користувача безпосередньо, як це зафіксовано вman mount.cifs
jstricker

2
Щоб не писати пароль поряд із командою, просто пропустіть параметр пароля під час дзвінка - підказка буде запитувати його, щоб він міг бути введений непомітним.
conceptdeluxe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.