Как я могу создавать и редактировать файлы из общего файлового ресурса Windows в Linux (CentOS)?

307
Milliron X

У меня есть общий диск Windows, который я смонтировал на своем компьютере с CentOS 7, используя инструкции Red Hat, на которых я хотел бы сейчас создавать и редактировать файлы. Однако я должен быть повышен, чтобы создавать и редактировать файлы в любой папке на диске. Я попытался использовать chmodдля доступа всех пользователей, но безрезультатно, и даже попытался размонтировать / перемонтировать диск.

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

(Я создаю эти файлы, используя Matlab, и Matlab не может быть запущен через него sudo, поэтому просто оставаться поднятым не вариант).

Распечатка терминала

[millironx@mymachine ~]$ sudo umount /mnt [millironx@mymachine ~]$ sudo mount -t cifs -o username=millironx,password=mypassword,domain=AD //files.example.com/shared /mnt [millironx@mymachine ~]$ cd /mnt/matlab-program [millironx@mymachine matlab-program]$ touch testfile touch: cannot touch 'testfile': Permission denied [millironx@mymachine matlab-program]$ sudo chmod +rwx /mnt/matlab-program [millironx@mymachine matlab-program]$ touch testfile touch: cannot touch 'testfile': Permission denied [millironx@mymachine matlab-program]$ sudo touch testfile [millironx@mymachine matlab-program]$ ls testfile [millironx@mymachine matlab-program]$ rm testfile rm: remove write-protected regular empty file 'testfile`? y rm: cannot remove 'testfile': Permission denied [millironx@mymachine matlab-program]$ sudo rm testfile [millironx@mymachine matlab-program]$ sudo matlab sudo: matlab: command not found 
0

1 ответ на вопрос

1
Kamil Maciorowski

Вам нужен uid=и, возможно, gid=вариант монтирования. Смотрите man 8 mount.cifs:

uid=arg
устанавливает uid, которому будут принадлежать все файлы или каталоги в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя пользователя или числовой идентификатор пользователя. Если не указано, по умолчанию используется uid 0. mount.cifsПомощник должен быть версии 1.10 или выше для поддержки указав идентификатор пользователя в нечисловой форме. См. Раздел «Владение и разрешения для файлов и каталогов» ниже для получения дополнительной информации.

gid=arg
устанавливает gid, которому будут принадлежать все файлы или каталоги в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя группы или числовой идентификатор. Если не указано, по умолчанию используется gid 0. mount.cifsПомощник должен быть версии 1.10 или выше для поддержки с указанием ГУВ в нечисловой форме. См. Раздел «Владение и разрешения для файлов и каталогов» ниже для получения дополнительной информации.

[...]

Владение и разрешения
для файлов и каталогов Основной протокол CIFS не предоставляет информацию о владельцах Unix или режим для файлов и каталогов. Из-за этого файлы и каталоги, как правило, будут принадлежать тем или иным значениям параметров uid=или gid=, и для них будут установлены разрешения по умолчанию file_modeи dir_modeдля монтирования. Попытка изменить эти значения через chmod/ chownвернет успех, но безрезультатно. [...]

В этом разделе также упоминается сценарий, в котором «клиент и сервер согласовывают расширения Unix» и сценарий, в котором «также возможно эмулировать их локально на сервере» и т. Д.

В вашем случае все просто uid=и gid=должно хватить. Обратите внимание, они определяют пользователь Unix и группу, uid=и username=разные, и в общем случае может принимать различные значения.

sudo mount -t cifs -o uid=millironx,gid=users,username=millironx,password=mypassword,domain=AD //files.example.com/shared /mnt 

Вы также можете найти этот вопрос полезным.

Похожие вопросы