같은 서버내의 서로 다른 계정끼리 폴더를 공유하는 방법이다.
공유할 폴더 : /home/testuser/공유폴더
공유할 사용자 : testuser1, testuser2
이후부터는 root로 작업한다.
1. 그룹을 만든다
# groupadd mygroup
2. 새로 만든 그룹에 속할 계정을 지정해 준다.(계정은 미리 만들어져 있어야 함)
# usermod -a -G mygroup testuser1
# usermod -a -G mygroup testuser2
-a : 그룹에 추가
-G : 다음에 그룹명 지정
mygroup : 그룹명
testuser1, testuser2 : 사용자계정
3. 그룹을 확인해 본다.
# cat /etc/group
mygroup:x:1011:testuser1,testuser2
group 파일의 하단에 위와 같이 그룹이 지정된 것을 확인할 수 있다.
4. 공유폴더의 그룹명을 변경해 준다.
# chgrp -R mygroup /home/testuser/공유폴더
# chmod -R 2775 /home/testuser/공유폴더
2 : 새롭게 생성되는 하위 폴더에 같은 그룹을 지정해주는 옵션
7 : 소유자에게 rwx(4+2+1) 권한 주기
7 : 그룹에게 rwx(4+2+1) 권한 주기
5 : 타인에게 rx(4+1) 권한 주기
5. 새로운 사용자를 생성하면서 이 그룹에 추가하려면 아래와 같이 하면 된다.
# useradd -m -c "Test User3" -s/bin/bash -G mygroup testuser3
공유설정은 끝났다.
6.
testuser1 계정으로 로그인해서 심볼릭링크를 걸어보자.
# ln -s /home/testuser/공유폴더 ./공유폴더
공유폴더 링크가 생성되었다.
ftp로 접속을 하면 폴더가 보인다.
그런데 접근이 안된다.
vsftpd설정에서 chroot_list 옵션을 사용중이어서 상위폴더로 접근이 금지되어 있기 때문이다.
7. 다음과 같이 해보자
심볼릭링크를 삭제한다.
그리고 아래와 같이 폴더를 생성한다.
# mkdir 공유폴더
아래와 같이 원본공유 폴더를 새로 생성한 공유폴더에 마운트 한다.
# mount --bind /home/testuser/공유폴더 ./공유폴더
원본 공유폴더에 777권한을 준다.
# chmod 777 /home/testuser/공유폴더
테스트를 해본다.
testuser1, testuser2 등 각기 다른 다른 사용자로 접속하여 파일을 생성하고 삭제해 본다.
정상적으로 작동한다.
*추가
재부팅하면 mount 가 해제되므로 다시 설정해야 함.
해당 폴더에 쓰기가 안된다면 selinux 를 아래와 같이 변경
# setsebool -P allow_ftpd_full_access 1
끝.
'Linux' 카테고리의 다른 글
리눅스 swapfile 추가 (0) | 2020.09.01 |
---|---|
centos7 jdk1.7 설치하기, 자바버전선택 (0) | 2020.09.01 |
mariadb 설치 후 centos8 시작프로그램 등록 (0) | 2020.05.02 |
rsync @ERROR: chroot failed (0) | 2019.01.08 |
CentOS7 apache 2.4 mod_deflate (0) | 2017.11.26 |