마운트 오류 13 = 권한 거부


44

내 서버 중 하나가 fstab을 사용하여 Windows 디렉토리를 자동으로 마운트하도록 설정되어 있습니다. 그러나 마지막 재부팅 후 작동이 중지되었습니다. fstab의 줄은 다음과 같습니다.

//myserver/myfolder /mnt/backup cifs credentials=home/myfolder/.Smbcredentials

.Smbcredentials파일은 다음과 같습니다

username=myaccount
password=mypassword
domain=mydomain

나는 mount -a하고 나는 받는다 mount error 13 = Permission denied. 이 작업을 충분히 수행하면 Windows 계정이 잠기므로 시도 중임을 알 수 있습니다. 비밀번호가 올바른지 확인했습니다.

내가 무엇을 잘못하고 있지?


4
명령 줄에서 마운트하고 mount -t cifs //myserver/myfolder /mnt/backup --verbose -o credentials=home/myfolder/.Smbcredentials질문에 디버깅 정보 (위생)를 추가 할 수 있습니까?
bsd

배포판과 버전은 무엇입니까 cifs-utils? 나는 전에이 문제가 있었고 그것이 업데이트 때문이라고 생각합니다.
slm

답변:


44

확인해야 할 몇 가지. 비슷한 작업을 수행하고 mount명령을 사용하여 직접 마운트하여 테스트하여 올바르게 설정했는지 확인할 수 있습니다.

신임 정보 파일에 대한 권한

이 파일이 권한이 있는지 확인하십시오.

$ sudo ls -l /etc/smb_credentials.txt 
-rw-------. 1 root root 54 Mar 24 13:19 /etc/smb_credentials.txt

자세한 마운트

스위치를 mount사용하여 더 많은 정보를 동축시킬 수 있습니다 . -v스위치는 종종 물건이 걸려 넘어지는 곳을 보여줍니다.

$ sudo mount -v -t cifs //server/share /mnt \
    -o credentials=/etc/smb_credentials.txt

작동하면이 결과가 나타납니다.

mount.cifs kernel mount options: ip=192.168.1.14,unc=\\server\share,credentials=/etc/smb_credentials.txt,ver=1,user=someuser,domain=somedom,pass=********

로그 확인

위의 마운트 명령을 실행 한 후 사용자의 내부를 살펴 걸릴 dmesg하고 /var/log/messages또는 /var/log/syslog당신이를 시도 할 때 생성 된 수있는 오류 메시지에 대한 파일을 mount.

보안 유형

-o ..스위치를 통해 많은 추가 옵션을 전달 하여 마운트 할 수 있습니다. 이러한 옵션은 기술에 따라 다르므로 귀하의 경우에는 mount.cifs구체적으로 적용 할 수 있습니다. mount.cifs전달할 수있는 모든 옵션에 대한 자세한 내용 은 맨 페이지를 참조하십시오.

에 대한 옵션이 누락 된 것 같습니다 sec=.... 특히 다음 옵션 중 하나 :

   sec=
       Security mode. Allowed values are:
       ·   none - attempt to connection as a null user (no name)
       ·   krb5 - Use Kerberos version 5 authentication
       ·   krb5i - Use Kerberos authentication and forcibly enable packet 
           signing
       ·   ntlm - Use NTLM password hashing
       ·   ntlmi - Use NTLM password hashing and force packet signing
       ·   ntlmv2 - Use NTLMv2 password hashing
       ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing
       ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP
           message
       ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw 
           NTLMSSP message, and force packet signing

       The default in mainline kernel versions prior to v3.8 was sec=ntlm. 
       In v3.8, the default was changed to sec=ntlmssp.

당신은 조정해야 할 수도 있습니다 sec=...그 중 하나입니다 수 있도록 옵션을 sec=ntlm하거나 sec=ntlmssp.

참고 문헌


1
확인 dmesg은 매우 도움이되었습니다. 이 답변은 2014 년 이후로 작성된 이후 SMB1.0의 WannaCry 악용으로 인해 더 이상 사용되지 않으므로 vers=2.0기본 1.0이 더 이상 지원되지 않으므로 서버가 지원하는 모든 것을 2.1 또는 3.0 으로 추가하십시오 .
Michael Plautz

1
헤딩 업 : 대상 폴더가 Windows 아래에 있기 때문에 종종 암호를 변경해야하는 경우가 종종 있으므로 자격 증명 파일의 암호가 유효하지 않을 수 있습니다. mount명령은 그러한 세부 사항을 알려주지 않습니다.
HongboZhu

22

고마워하지만 더 많은 인터넷 검색으로 솔루션이 나타났습니다. 기본적으로 잘못된 보안 유형을 사용하고있었습니다. 이 명령은 효과가있었습니다.

$ sudo mount -t cifs //172.16.1.5/myshare/ /mnt/myshare \
    -osec=ntlmv2,domain=MYDOMAIN,username=myusername,password=mypassword

이거 야! 실행 mount -t cifs //10.0.0.138/usb1_1 /mnt/usbdisk -ousername=theusername,password=thepassord,file_mode=0644,dir_mode=0755,uid=root페도라 25 시스템에서 잘 근무하지만 내가 openwrt 상자 (카오스 조용한 15.05.1)에 동일한 명령을 실행했을 때 실패했습니다. 추가하면 sec=ntlmv2거기에서도 효과가있었습니다.
hlovdal

2
CentOS 6 non-member에서 데비안 9 AD 멤버를 마운트하려고했는데이 문제가 제게 다가 왔습니다. 제 경우 마술은sec=ntlmssp
Cheetah

나를위한 해결책은 domain키워드 를 사용 하고 사용자 이름과 별도로 키워드를 지정하는 것이 었습니다.
Jim Fell

sec = ntlmv2에는 Ubuntu 18.04에서 Windows 10 공유로의 smb 액세스에 필요한 옵션이 있습니다. 고마워 피클
noel aye

12

이 문제가 발생하여 문제가 자격 증명 파일의 값을 올바르게 형식화하지 않는 것으로 나타났습니다. 나는 시도했다 :

username=DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

나는 또한 시도했다 :

username=myemailaddress@someplace.com
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

과:

username=FULLY.QUALIFIED.DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

로그인 사용자 이름 만 사용하면 :

username=mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

CIFS 마운트를 성공시킬 수있었습니다.


좋은 설명!
Dima Lituiev

2

이 추가 기능은 Scientific Linux 6.6 (RedHat 6.6)에서 작동합니다.

편집 /etc/fstab
= 파일을 만듭니다 .credentials(예에서 /etc이 세부 사항) :

username=value
password=value
domain=value

//SERVER/SHARE1 /mnt/SHARE1 cifs credentials=/etc/.credentials,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 

file_mode 및 dir_mode 플래그가 나를 위해 해결되었습니다! :)
Rafael Moni
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.