a montagem do linux da movimentação de rede das janelas exige o sudo após montado

1

Eu sou capaz de montar uma unidade para a caixa Linux usando o sudo.

sudo mount \
    -t cifs \
    -o 'vers=3.0,username=myuser,domain=mydomain' \
    '//windows-ip/share-folder' ~/testmount/

Isso funciona muito bem, o problema é que quando eu entro no ~ / testmount e faço algo como mkdir ele diz:

mkdir: cannot create directory ‘bkup’: Permission denied

Ele funcionará se eu usar sudo Vamos ter um script automatizado em um arquivo de gravação do cronjob para essas montagens, então, precisamos gravar nas montagens sem sudo .

Então, depois que ele é montado, não consigo adicionar arquivos a essa pasta, a menos que eu use sudo e esse é o problema.

Parece que meu problema é muito parecido com este, mas as soluções para esse problema não funcionaram para mim:

link

Alguém sugeriu que o problema era que eu usava o sudo para montá-lo e, portanto, tinha que usar o sudo para alterar qualquer coisa nele (mesmo que eu não precise usar o sudo para ler coisas nele).

Então, encontrei respostas como estas:

link link

Eu até tentei implementar as soluções sugeridas, mas ainda não consegui fazer com que essas soluções funcionassem.

Meu etc / fstab tem essa linha:

//windows-ip/share-folder \
/home/mysuer/testmount \
cifs \ 
uid=myuser,credentials=/home/myuser/.smbcredentials,iocharset=utf8,domain=my-domain 0 0

Com a configuração acima quando tento executar o mount sem o sudo, recebo um erro:

$ mount ~/testmount
mount: only root can mount //10.1..../shared on /home/.../testmount

A razão pela qual eu preciso ser capaz de escrever para essas pastas montadas sem o sudo porque nós teremos um sistema automatizado salvando arquivos e eu não acho que deveria usar o sudo, e eu nem sei se poderia se nós queria isso.

Estou no centos 7. Talvez você não consiga colocar a opção 'domain' no fstab, não sei. Alguém pode me ajudar com isso?

    
por Legit Stack 18.09.2018 / 21:55

1 resposta

1

A montagem e o acesso são duas coisas diferentes.

Para permitir que os usuários montem, o quarto campo no seu fstab deve conter user , por exemplo, %código%. Veja user,uid=myuser,… . Você pode não precisar, continue lendo.

Você dá a opção man 5 fstab . De uid=myuser :

uid=arg
sets the uid that will own all files or directories on the mounted filesystem when the server does not provide ownership information. It may be specified as either a username or a numeric uid. When not specified, the default is uid 0. The mount.cifs helper must be at version 1.10 or higher to support specifying the uid in non-numeric form.

Outro fragmento:

mount.cifs -V command displays the version of cifs mount helper.

Com man 8 mount.cifs especificado corretamente, a montagem com uid= não deve substituí-lo; então você pode até não precisar da opção sudo em user . Talvez você estivesse quase lá quando usou fstab , mas se fixou em não usar uid= . Há mais uma coisa embora. Ainda outro fragmento:

The core CIFS protocol does not provide unix ownership information or mode for files and directories. Because of this, files and directories will generally appear to be owned by whatever values the uid= or gid= options are set, and will have permissions set to the default file_mode and dir_mode for the mount. Attempting to change these values via chmod/chown will return success but have no effect.

When the client and server negotiate unix extensions, files and directories will be assigned the uid, gid, and mode provided by the server. Because CIFS mounts are generally single-user, and the same credentials are used no matter what user accesses the mount, newly created files and directories will generally be given ownership corresponding to whatever credentials were used to mount the share.

If the uid's and gid's being used do not match on the client and server, the forceuid and forcegid options may be helpful.

Se eu acertar, um cliente e um servidor (quando configurado corretamente) podem ignorar sudo e usar a propriedade armazenada no servidor. Nesse caso, isso é relevante:

forceuid
instructs the client to ignore any uid provided by the server for files and directories and to always assign the owner to be the value of the uid= option.

Parece que esta linha em uid= pode funcionar melhor para você:

//windows-ip/share-folder \
/home/mysuer/testmount \
cifs \ 
forceuid,uid=NUMBER,credentials=/home/myuser/.smbcredentials,iocharset=utf8,domain=my-domain 0 0

Você monta com fstab (ou adiciona a opção sudo se realmente precisar). Sem a opção user , o sistema operacional tentará montar o compartilhamento automaticamente na inicialização. A rede pode ainda não estar disponível no momento, não sei se seu sistema operacional resolverá isso. Com noauto você pode usar systemd , o quarto campo começaria com:

x-systemd.automount,x-systemd.idle-timeout=1min,forceuid,uid=NUMBER,…

A alternativa é x-systemd.automount .

    
por 18.09.2018 / 22:57