리눅스 Samba 서버, NTFS 퍼미션
Samba
- 삼바는 리눅스와 윈도우간에 파일 및 프린터를 공유 할 수 있게 해주는 프로그램이다.
- 삼바를 통해 리눅스 서버를 타운영체제와 파일을 공유할 수 있는 파일서버로도 사용할 수 있다.
- 이와같이 삼바가 공유할 수있는 이유는
SMB(Server Message Block)/CIFS(Common Internet File System)
라는 프로토콜을 이용함으로써 가능해졌다.
SMB
- SMB(Server Message Block)는 마이크로소프트사와 인텔이 윈도우 시스템이 다른 시스템의 디스크나 프린터와 같은 자원을 공유할 있도록하기 위해 개발된 프로토콜이다 .
TCP/IP 기반하의 NetBIOS 프로토콜을 이용
하기 때문에 이 프로토콜은 NFS, NIS, lpd 와 같은 유닉스의 분산인증구조와 유사하다. 따라서 윈도우 중심의 네트워크 환경에서는 리눅스를 이용한 공유시스템에서는 SMB가 필수적이다.
CIFS
- CIFS(Common Internet File System) 는 네트워크를 위한
SMB 파일 공유 프로토콜의 확장된 버전
이며, 윈도우와 유닉스 환경을 동시에 지원하는인터넷의 표준 파일 규약의 프로토콜
이다. CIFS는 이전의 폐쇄적인 SMB 프로토콜과는 달리 CIFS 규약 정의는 여러 유닉스 업체의 참여하여 결정된 내용이기 때문에 삼바도 버전이 올라감에 따라(삼바 버전 2.2 이상) CIFS 규약을 잘 준수하여 안정성이 상당히 향상 되었다.
기본 구성
리눅스 -> 윈도우 폴더에 접근하기
윈도우 서버
- user1 사용자 생성
c:\share01(all) -→ 공유, 퍼미션 : everyone/full
또는
c:\share02(all) -→ 공유, 퍼미션 : administrator/full
또는
c:\share03(all) -→ 공유, 퍼미션 : user1/full
linux 클라이언트
# rpm -qa | grep samba
# yum -y install samba
# smbclient -L 192.168.189.181
# mkdir /dir1
# mount //192.168.89.181/share01 /dir1
root 암호입력!!
또는
# mkdir /dir2
# mount -t cifs //192.168.189.181/share02 /dir2 -o username=administrator,password=wa@X.COM
또는
# mkdir /dir3
# mount -t cifs //192.168.189.181/share03 /dir3 -o username=user1,password=wa@X.COM
- 접근 에러 시
- xp - Guest 계정 활성화
- 2000/2003/2008서버 : 접근하는 linux 의 root 계정과 같은 암호일 필요는 없다!(★)
- 접근 에러 시
- 윈도우즈 공유 폴도 접근 구성하기 (생략 가능)
# vi /etc/samba/lmhosts
127.0.0.1 localhost
192.168.189.181 winxp
Ex. 리눅스 -> 윈도우
윈도우 서버 방법
리눅스 클라이언트 방법
# rpm -qa | grep samba
# mount /dev/hdc /cdrom
# yum -y install samba
# smbclient -L 192.168.10.2
# mkdir /dir1
# mount //192.168.10.2/share01 /dir1
wa@X.COM
# mkdir /dir2
# mount -t cifs //192.168.10.2/share02 /dir2 -o username=administrator,password=wa@X.COM
# mkdir /dir3
# mount -t cifs //192.168.10.2/share03 /dir3 -o username=user1,password=wa@X.COM
결과
- 윈도우에서 각자 share 01, 02, 03에서 각자 파일을 만들고 리눅스에서 잘 mount 됐는지 확인하면 된다.
윈도우 -> 리눅스 폴더 사용하기 (Samba)
- 보안을 고려하지 않는 경우
security = share user (default) server domain <-101행
- 보안을 고려하지 않는 경우
명령어 | 내용 |
---|---|
-d | 삼바 유저 사용 정지 |
-s | 삼바 유저 다시 사용 |
-n | 비밀 번호를 설정하지 않음 |
-x | 유저 삭제 |
# useradd [-s /sbin/nologin] linuxuser < -- 삼바 계정 만들기
# smbpasswd -a linuxuser < -- 삼바 암호 만들기
# smbpasswd -n linuxuser <-- 비밀번호 설정하지 않음
# smbpasswd -x linuxuser <-- 삼바유저 삭제하기
Linux 서버
# rpm -qa | grep samba
# mount /dev/hdc /cdrom
# yum -y install samba
# mkdir /share
# chmod 707 /share/
# vi /etc/samba/smb.conf
[공유이름ex.share] // 제일 마지막 줄에 입력
path = /share
public = yes
writable = yes
browseable = yes
# service smb restart
# testparm /etc/samba/smb.conf
# useradd user1
# smbpasswd -a user1
# smbstatus
윈도우 클라이언트
- 실행 -> \192.168.89.191
- 전체네트워크 -> 워크그룹 -> 삼바공유 -> printer 공유 와 폴더 공유 보임
- http://localhost:631
- net use * /delete (★)
Ex. 윈도우 -> 리눅스
결과
잘 마운트 된 것을 확인할 수 있다.
samba 구성파일
system-config-samba 를 이용하거나, 웹에서 접속해서 삼바 서버를 설정하는 것은 결국 /etc/samba/smb.conf 파일을 수정하기 위한 것이다.
# vi /etc/samba/smb.conf
옵션 | 설명 |
---|---|
commnet | 간단한 설명을 설정 |
path | 공유 디렉터리의 경로를 설정 |
read only | 공유 디렉터리를 읽기 전용으로 설정 |
writable, write ok | 공유 디렉터리를 쓰기 가능하게 설정 |
valid users | 공유 디렉터리를 이용할 수 있는 사용자를 지정 |
write list | 공유 디렉터리에 접근 및 쓰기 권한을 행사할 수 있는 사용자를 지정함. 그룹인 경우에는 @를 붙임. |
public, guest ok | 다른 사용자들이 이용할 수 있도록 설정할 때 사용 |
browseable, browsable | 공유 디렉터리의 리스트를 보여줄 때 설정 |
printable | 공유 디렉터리에 스풀 파일을 지정할 때 사용함 |
create mask, create mode | 파일을 생성할 때 허가권을 지정할 때 설정 |
- [share1] user3은 공유폴더 접근 및 읽고, 쓰기 가능한가?
comment = share1
browseable = no
path = /share1
writable = yes
read list = user1
- [share2] user3은 공유 폴더에 쓰기 불가능한가?
comment = share2
browseable = no
path = /share2
writable = no
write list = user2 유저ID 유저ID ...
- [share3] user3은 공유폴더에 접근 불가능한가?
comment = share3
browseable = no
path = /share3
writable = no
valid users = user1 user2
- 참고
\\IP주소\share1
\\IP주소\share2
\\IP주소\share3
net use * /delete (★)
NTFS 퍼미션
- Full Control
- Change permissions, take ownership, and perform the actions permitted by all other NTFS file permissions
- Full Control
Modify
- Modify and delete the file and perform the actions permitted by the Write permission and the Read & Execute permission
- Read & Execute
- Run applications and perform the actions permitted by the Read permission
- Read & Execute
Write
- Overwrite the file, change file attributes, and view file ownership and permissions
- Read
- Read the file and view file attributes, ownership, and permissions
- Read
- List Folder Contents
- View the names of files and subfolders in the folder
- List Folder Contents
What Are Effective Permissions on NTFS Files and Folders?
NTFS
Ex. NTFS