'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

기타/Linux

linux) fstab bind_심볼릭 링크 권한 관리가 필요할 때

MightyTedKim 2023. 1. 9. 23:22
728x90
반응형

심볼릭 링크 작업이 필요한데,

권한은 특정 사용자로 한정해야하는 일이 있었어요

 

그런데 ln -s에는 chown이 안먹히더라고요.

그래서 검색하던 중 bind를 찾앗어요

 

예상 독자

- 심볼링 링크에 권한 부여해야하는 분

 

목차

1. 왜 심볼릭 링크에 권한 관리가 필요했는가?

2. bind를 이용해 어떻게 해결했는가?

+ ftp로 상위 폴더 못가게 하기


1. 왜 심볼릭 링크에 권한 관리가 필요했는가?

`ftp로 업로드하면, nginx로 다운로드하고 싶다` 는 요청이 들어왔어요

아래처럼 계획을 세분화했어요


1. adminftp/userftp를 만든다.

2. admin 은 저장/삭제가 가능하다.

3. user는 저장만 가능하다(수정 불가)

4. *ssh 접근을 못하게 막는다. 

5. ftp 상위 폴더 접근을 못하게 막는다.


4번까지는 문제 없이 진행되다가

5번에서 막혔어요

 

디스크 마운트해서 /u01/ftp-folder 만들고

심볼릭 연결한 다음에, 권한으로 제한하려 했거든요

근데 심볼링 링크는 chown, chmod가 안되네요

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

2. bind를 이용해 어떻게 해결했는가?

`심볼링 링크에 권한 관리`  를 좀 더 풀어서 해석하면

`특정 Usefile download만 되도록 설정` 

이더라고요

 

먼저 디렉토리를 생성해요

# 디렉토리 생성
## sftp 특정 폴더 생성 
$ mkdir -p /u01/ftp/files 

## 사용자 디렉토리 생성
## download만 가능하도록 하는 user(userftp)는 홈 디렉토리에 mount 폴더 생성

$ mkdir -p /home/adminftp/sftp
$ mkdir -p /home/userftp/sftp

admin 제외하고는 일단 모두 접근 못하게해야하니까,

admin만 write할 수 있도록 설정해요

# 권한 설정
## 소유자 설정(admin)
$ chwon -R adminftp:adminftp /u01/ftp/files #소유자(adminftp)로 폴더 생성
$ chmod -R 755 /u01/ftp/files #해당 폴더 권한은 소유자 외에는 write 권한 제외(755로 세팅)

이제는 fstab에 bind 옵션을 설정했어요

(디스크 마운트할 때만 써봤지 bind 설정이 있는지는 몰랐어요)

/etc/fstab에 아래처럼 수정하고 mount -a로 반영했어요

 

$ vi /etc/fstab
/dev/mapper/VG01-lvroot / xfs defaults 0 0
(생략)
/u01/ftp/files /home/userftp/sftp none bind,defaults 0 1 # 추가
/u01/ftp/files /home/adminftp/sftp none bind,defaults 0 1 # 추가

이렇게하니까 특정 사용자가 ftp로 동일한 폴더에 접근할 수 있게되었어요.

이제 거의 다 왔어요


+ ftp로 상위 폴더 못가게 하기

 

ssh 접근은 막았지만, ftp 접근했을 때 상위 폴더 못가게 막아야했어요

- ChrootDirectory %h

- ForceCommand internal-sftp 

$ vi /etc/ssh/sshd_config
Match User  adminftp
ChrootDirectory %h #sftp로 접속 시 home directory 상위 path로 못 가도록 설정
ForceCommand internal-sftp #ssh 막기
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Match User userftp
ChrootDirectory %h #sftp로 접속 시 home directory 상위 path로 못 가도록 설정
ForceCommand internal-sftp  #ssh 막기
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

그리고 chroot directory의 소유자를 root로 설정하면 위로 못올라가요

$ chown root:root /home/adminftp
$ chown root:root /home/userftp

sshd 접속 log 확인로 확인하면 ssh 접근도 안되고, 상위 폴더로 못올라가는걸 확인 할 수 있어요

$ tail -100f /var/log/secure

뭔가 fstab bind 관련된 정보 메모하려다가 길어졌네요 ㅋㅋ

참고사이트

 

728x90
반응형