Как я могу создавать и редактировать файлы из общего файлового ресурса Windows в Linux (CentOS)?
У меня есть общий диск 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
1 ответ
Тебе нужно uid=
и возможно gid=
опция монтирования Увидеть man 8 mount.cifs
:
uid=arg
устанавливает uid, который будет владеть всеми файлами или каталогами в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя пользователя или числовой идентификатор пользователя. Если не указан, по умолчанию используется uid0
,mount.cifs
helper должен быть версии 1.10 или выше, чтобы поддерживать указание uid в нечисловой форме. См. Раздел "Владение и разрешения для файлов и каталогов" ниже для получения дополнительной информации.
gid=arg
устанавливает gid, которому будут принадлежать все файлы или каталоги в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя группы или числовой идентификатор. Если не указано, по умолчанию используется gid0
,mount.cifs
helper должен быть версии 1.10 или выше, чтобы поддерживать указание gid в нечисловой форме. См. Раздел "Владение и разрешения для файлов и каталогов" ниже для получения дополнительной информации.[...]
Владение файлами и каталогами и разрешения
Основной протокол 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
Вы также можете найти этот вопрос полезным.