У меня есть общий диск 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 ответ1

1

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

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

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

[...]

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .