공용 다운로드 폴더의 퍼미션 관계 설정

1. 전제상황


서버에 마운트된 공용저장 폴더(/경로/Downloads)가 있다. 이곳은

1. transmission의 debian-transmission이 기록을 한다.
2. 각 유저는 transmission으로 받은 화일을 내려 받기 위해 ftp로 이곳을 접속하거나 내부network을 통해 접속(cifs 또는 nfs)하여 내려 받거나 지우거나 한다.
3. 각 유저는 이곳에 공유할 파일을 올려 다른 유저가 내려 받고 지울수 있게 한다.

 이정도 할수 있게 권한관계를 정리한다. 일단 공용폴더는 775의 권한을 가지는걸로 해서 owner와 허가된 그룹은 모든 권한을 가지게 한다. 이곳에서 rwx를 하는 유저는 debian-transmission 과 서버에 계정을 가진 각 유저들이다.
이들이 모두 이곳에서 rwx를 하게 하기 위해 기본 group을 users(uid=100)으로 하도록 한다



2. 설정사항


1. 각 유저의 그룹 공유

각 유저는 생성시에 유저명과 같은 그룹명을 가지게 된다. 이러면 각 유저가 생성한 파일을 다른 유저가 사용하기 위해서는 777 퍼미션을 줘야 하지만, 이는 별로 좋은 선택이 아니다.
파일을 공유할 유저들이 같은 그룹을 가지게 하고 그룹에 7 퍼미션을 주도록 한다.
유저를 생성할때 개별 그룹을 생성하지 말고 uid 100을 설정하게끔 adduser.conf를 수정하고 유저 생성시 adduser 명령어를 사용한다.

/etc/adduser.conf
# The USERGROUPS variable can be either "yes" or "no".  If "yes" each
# created user will be given their own group to use as a default.  If
# "no", each created user will be placed in the group whose gid is
# USERS_GID (see below).
USERGROUPS=no

# If USERGROUPS is "no", then USERS_GID should be the GID of the group
# `users' (or the equivalent group) on your system.
USERS_GID=100

서버 인스톨 과정에서 생성한 유저(sudo user)는 유저명과 같은 그룹을 기본그룹으로 이미 가지고 있다. 이는
usermod -g 100 유저명 으로 변경해 주면 이 유저도 해당 공유디렉토리에 rwx할수 있다. 자주 필요하니 해 두는게 좋다

그리고 공유디렉토리의 그룹을 users로 해 준다

2. Transmission 기록 권한

  debian-transmission은 그룹으로 debian-transmission을 가진다. setfacl로 user debian-transmisson의 rwx 권한을 이 공유 디렉토리에 부여한다.

setfacl -m u:debian-transmission:7 Downloads/

전
# file: Downloads/
# owner: 홍길동
# group: users
user::rwx
group::rwx
other::r-x

후
# file: Downloads/
# owner: 홍길동
# group: users
user::rwx
user:debian-transmission:rwx
group::rwx
mask::rwx
other::r-x


3. Transmission기록 파일의 공유

Transmission이 기록한 파일은 user=debian-transmission, group=debian-trasmission을 가진다. transmission의 설정에서 umask를 002로 해서 기록된 디렉토리는 775, 파일은 664 퍼미션을 가지게 된다.
일반 유저들이 이것들 이용하기 위해서 그룹을 일반 유저의 그룹의 바꿔서 기록되게 한다. 이를 위해 공유폴더에 setgid 설정한다.

chmod 2775 Downloads/
# file: Downloads/
# owner: 홍길동
# group: users
# flags: -s-
user::rwx
user:debian-transmission:rwx
group::rwx
mask::rwx
other::r-x

이제 Transmission이 기록한 파일은 user=debian-transmission이면서 group=users가 된다


4. 생성되는 디렉토리/파일의 디펄트 퍼미션

서버에서 기본설정이라면 유저들이 Download에 생성하는 디렉토리는 755 파일은 644를 가지게 된다.
이를 775 664를 가지고 생성되게 하면 users 그룹내의 모든 유저들이 쓰기(지우기)도 가능하게 된다.
A유저가 올린걸 B가 삭제 변경하게 하기 위해 필요하다. 이를 위해 setfacl에서 -m d로 default 퍼미션을 적용한다

setfacl -m d:g::7 Downloads/

# file: Downloads/
# owner: 홍길동
# group: users
# flags: -s-
user::rwx
user:debian-transmission:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x


참고 : ACL을 원래상태 (아무것도 적용하지 않은 상태)로 되돌리려면 setfacl -bn 디렉토리   한다

댓글

이 블로그의 인기 게시물

영화 릴 화질 기준