-
[홈서버] 우분투에서 CIFS(SMB) 마운트홈서버 2021. 12. 29. 17:32반응형
홈서버 및 사설망 네트워크를 구성하고 디바이스들 간에 공유디스크 필요성이 느껴졌다. 그래서 SMB로 공유디스크를 구성하였고 이를 우분투서버에 마운트 하려고 한다.
첫 단계로 cifs-utils을 설치한다. 필자는 작업 편의를 위해 root 계정으로 진행하였다.
$ apt-get install cifs-utils 만약 apt를 통해 인스톨 시 404 not found 에러가 났다면 'apt-get update'를 실행해보는 것도 하나의 해결 방법이다.
설치 이후 마운트 할 경로에 디렉터리를 생성한다. /mnt/ghostdisk에 SMB 공유디스크를 마운트 하겠다.
$ mkdir /mnt/ghostdisk 디렉터리 생성 후 CIFS로 SMB 공유디스크 마운트를 위해 다음 명령어를 입력한다.
$ mount -t cifs -o user=xxxx,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)마운트 명령어를 입력하였으나 No such file or directory라는 오류가 발생하여 검색을 시작하였다.
다시 옵션 값에 버전 정보를 명령어에 넣은 후 실행하였더니 정상적으로 마운트 되었다. 옵션으로 넣은 user와 password는 SMB 서버의 계정과 패스워드이다.
$ mount -t cifs -o user=xxxx,vers=2.0,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/ $ df -BG
udev 4G 0G 4G 0% /dev
tmpfs 1G 1G 1G 1% /run
/dev/nvme0n1p2 234G 87G 136G 39% /
tmpfs 4G 0G 4G 0% /dev/shm
tmpfs 1G 0G 1G 0% /run/lock
tmpfs 4G 0G 4G 0% /sys/fs/cgroup
/dev/nvme0n1p1 1G 1G 1G 2% /boot/efi
//172.30.1.1/hdd1 1864G 31G 1833G 2% /mnt/ghostdisk그러나 root 계정으로 작업하였더니 다른 계정에서 접근권한 오류가 발생하였다. 마운트 옵션 중에 uid, gid 입력하여 해결할 수 있다. 특정 계정에 'id'라는 명령어로 uid, gid를 확인할 수 있다.
$ id
uid=1000(xxxx) gid=1000(xxxx) groups=1000(xxxx),.......다시 마운트를 하기 위해 언마운트 먼저 진행한다.
$ umount -l /mnt/ghostdisk $ mount -t cifs -o uid=1000,gid=1000,user=xxxx,vers=2.0,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/ uid, gid를 입력하여 그 계정에게 권한을 주었다. 그러나 필자는 어느 계정이든 접근이 목적이기에 언마운트 후 uid와 gid 옵션을 제거, 'noperm' 이란 옵션을 넣었다.
$ mount -t cifs -o user=xxxx,vers=2.0,noperm,password=xxxx //172.30.1.1/hdd1 /mnt/ghostdisk/ 이후 재부팅 시 자동 마운트 가능하게 /etc/fstab 파일을 vi 에디터로 열어 맨 마지막 줄에 다음 내용을 추가하였다.
$ vi /etc/fstab //172.30.1.1/hdd1 /mnt/ghostdisk/ cifs user=xxxx,vers=2.0,noperm,password=xxxx 0 0 추가된 내용은 의미는 <file system> <mount point> <type> <options> <dump> <pass> 순이며, 구분자는 스페이스 혹은 탭으로 한다.
이렇게 SMB 공유디스크를 우분투 서버에 마운트를 완료하였다. 다음은 mount 명령어에서 사용한 -o 옵션에 대한 설명이다. 구글 번역으로 바꾸었기 때문에 해석이 어색할 수 있음을 참고한다.
옵션 설명 user 혹은 username 연결할 사용자 이름을 지정합니다. 이것이 주어지지 않으면 환경변수 USER가 사용됩니다.
이전 버전의 mount.cifs도 파일에 사용자 이름을 지정할 수 있었습니다.
암호를 허용하려면 "user%password" 또는 "workgroup/user" 또는 "workgroup/user%password"
사용자 이름의 일부로 지정될 작업 그룹. 대체 지원 사용자 이름 형식은 이제 더 이상 사용되지 않으며 더 이상 사용해서는 안 됩니다. 사용자는 다음을 사용해야 합니다.
개별 "password=" 및 "domain="을 사용하여 해당 값을 지정합니다. 일부 버전의cifs 커널 모듈은 "user="를 이 옵션의 약어로 허용합니다.
표준 마운트 프로그램을 이것이 수퍼유저가 아닌 마운트라고 생각하도록 혼동하십시오.
따라서 전체 "username=" 옵션 이름을 사용하는 것이 좋습니다.password CIFS 암호를 지정합니다. 이 옵션이 주어지지 않으면 환경 변수PASSWD가 사용됩니다. 비밀번호를 직접 또는 간접적으로 지정하지 않은 경우마운트에 대한 인수, mount.cifs는 게스트 옵션이 지정.
구분 기호(예: 쉼표 ',')가 포함된 암호는 명령줄에서 올바르게 구문 분석되지 않습니다. 단, 에 정의된 것과 동일한 비밀번호 PASSWD 환경 변수 또는 자격 증명 파일을 통해 암호 프롬프트가 올바르게 읽혀질 것입니다.vers SMB 프로토콜 버전. 허용되는 값은 다음과 같습니다.
· 1.0 - 클래식 CIFS/SMBv1 프로토콜. 이것이 기본값입니다.
· 2.0 - SMBv2.002 프로토콜. 이것은 Windows Vista에서 처음 도입되었습니다.
서비스 팩 1 및 Windows Server 2008. 초기 릴리스 버전
Windows Vista는 지원되지 않는 약간 다른 방언(2.000)을 사용했습니다.
· 2.1 - Microsoft Windows 7 및 Windows에 도입된 SMBv2.1 프로토콜
서버 2008R2.
· 3.0 - Microsoft Windows 8 및 Windows에 도입된 SMBv3.0 프로토콜
서버 2012.
이 옵션이 사용된 프로토콜 버전을 제어하지만 모든 기능이 각 버전을 사용할 수 있습니다.noperm 클라이언트는 권한 확인을 하지 않습니다. 이렇게 하면 이 마운트의 파일이 다음을 통해 액세스할 수 있습니다.
로컬 클라이언트 시스템의 다른 사용자. 일반적으로 서버가 다음과 같은 경우에만 필요합니다.
CIFS Unix Extensions를 지원하지만 클라이언트 및 서버 시스템의 UID/GID는 지원하지 않습니다.
마운트를 수행하는 사용자가 액세스할 수 있을 만큼 밀접하게 일치하지 않습니다.
이 서버 소프트웨어에서 수행하는 대상 시스템의 일반 ACL 검사에는 영향을 미치지 않습니다.자세한 mount 명령어 확인은 아래 링크를 참고 한다.
반응형'홈서버' 카테고리의 다른 글
[깃랩설치형서버] 크론탭으로 자동 백업 설정하기 (0) 2022.08.30 [홈서버] 특정 파일 주기적 SCP 전송 (명령어 find, scp) (0) 2022.01.07 우분투 SMB mount error(2): No such file or directory 오류 (0) 2021.12.29 [홈서버] 디바이스, 기가바이트 브릭스 GB-BLCE-4105 (0) 2020.09.14 [홈서버] OS 계정 추가 및 이메일 송수신 (2) 2020.08.26