Windows 공유 폴더나 NAS 의 SMB 공유를 리눅스에 붙일 때 cifs-utils 의 mount.cifs 를 쓴다. SMB 2.1 이상이 기본이며 옛 장비가 아니면 vers= 를 따로 줄 필요가 없다. 리눅스 쪽에서 공유를 여는 것은 Samba 를 본다.
# RHEL 계열
sudo dnf -y install cifs-utils
# Ubuntu
sudo apt -y install cifs-utils
sudo mkdir -p /mnt/share
sudo mount -t cifs //서버주소/공유폴더 /mnt/share -o username=사용자이름,password=${PASSWORD},uid=1000,gid=1000
주요 옵션은 다음과 같다.
| 옵션 | 뜻 |
|---|---|
username · password |
인증 정보. 명령줄에 두면 ps 와 셸 히스토리에 남는다 |
credentials=파일 |
인증 정보를 파일에서 읽는다. 권장 |
uid · gid |
마운트된 파일의 소유자. 서버가 유닉스 확장을 지원하지 않을 때 필요 |
file_mode · dir_mode |
파일 · 디렉터리 권한 (예: 0644, 0755) |
domain |
AD 도메인 이름 |
vers |
SMB 프로토콜 버전. 옛 NAS 는 vers=1.0 이 필요할 수 있다 |
ro |
읽기 전용 |
암호를 명령줄이나 fstab 에 그대로 두지 않으려면 자격 파일을 쓴다.
sudo tee /etc/samba/creds-nas >/dev/null <<'CRED'
username=사용자이름
password=${PASSWORD}
domain=WORKGROUP
CRED
sudo chmod 600 /etc/samba/creds-nas
sudo mount -t cifs //서버주소/공유폴더 /mnt/share -o credentials=/etc/samba/creds-nas,uid=1000,gid=1000
/etc/fstab 에 다음 줄을 더한다. 옵션은 fstab 마운트 옵션 을 본다.
//서버주소/공유폴더 /mnt/share cifs credentials=/etc/samba/creds-nas,uid=1000,gid=1000,_netdev,nofail 0 0
_netdev 는 네트워크가 올라온 뒤 마운트하게 하고, nofail 은 서버가 없어도 부팅이 멈추지 않게 한다. 둘 중 하나라도 빠지면 NAS 가 꺼져 있을 때 부팅이 응급 모드 로 떨어진다.
sudo mount -a
df -h /mnt/share
mount | grep cifs
권한 거부가 나면 SELinux 가 막는 경우가 있다. getsebool -a | grep cifs 로 보고 필요하면 sudo setsebool -P use_samba_home_dirs on 같은 불린을 켠다.