![직접 또는 fstab을 통해 CIFS 파일 시스템 마운트](https://linux55.com/image/87573/%EC%A7%81%EC%A0%91%20%EB%98%90%EB%8A%94%20fstab%EC%9D%84%20%ED%86%B5%ED%95%B4%20CIFS%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EB%A7%88%EC%9A%B4%ED%8A%B8.png)
fstab 항목 없이 원격 CIFS 서버를 마운트하면 작동하지만 fstab을 통해 마운트하면 작동하지 않는 문제가 있습니다.
다음 명령이 유효합니다:
$ sudo mount -t cifs //w.x.y.z/Home$ /mnt/dir -o domain=A,username=B,password='C',sec=ntlmssp,file_mode=0700,dir_mode=0700
그러나 /etc/fstab에 다음 줄을 추가하고 명령 mount
(예: mount -a
또는 mount /mnt/dir
)을 통해 마운트하려고 하면 아래 나열된 오류가 발생합니다.
$ tail -n 1 /etc/fstab
//w.x.y.z/Home$ /mnt/dir cifs domain=A,username=B,password='C',sec=ntlmssp,file_mode=0700,dir_mode=0700
실수:
$ sudo mount /mnt/csif
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
dump 및 fsck pass order를 0으로 명시적으로 설정하는 것은 도움이 되지 않습니다. 두 명령 모두 동일한 작업을 수행하는 것 같습니다.
답변1
비밀번호를 직접 입력하지 않는 것이 가장 좋습니다 /etc/fstab
(대개 누구나 읽을 수 있음). 대신, 파일에 넣고 다음과 같이 해당 파일을 참조하세요.
//w.x.y.z/Home$ /mnt/dir cifs credentials=/home/username/cifs.creds,sec=ntlmssp,file_mode=0700,dir_mode=0700
/home/username/cifs.creds
해당 사용자(루트 또는 SMB 공유를 소유한 SMB 사용자에 해당하는 사용자)가 소유하며 chmod og-rwx
다음 형식의 자격 증명을 포함합니다.
domain=A
username=B
password=C
A
, 위의 내용은 리터럴이어야 합니다. B
즉 C
, 따옴표나 백슬래시를 쉘과 같이 구문 분석하지 않아야 합니다.
답변2
mount 명령을 입력하면 이 부분이 password='C'
셸에서 먼저 처리되어 password=C
mount 명령에 도달하기 전이 됩니다. fstab 항목은 이 작업을 수행하지 않으므로 작은따옴표를 제거해야 합니다. 비밀번호에 특수 문자가 포함된 경우 이를 8진수 코드, 특히 \040
공백으로 바꿀 수 있습니다.