storage / knowledge
TrueNAS 사용자와 그룹 설계
NAS를 가족이 같이 쓰고 서비스도 붙는다. 계정을 하나로 쓰면 나중에 권한을 되돌릴 수 없으므로 처음에 나눴다.
그룹
| 그룹 | GID | Privileges | sudo | SMB |
|---|---|---|---|---|
| admins | 1000 | Local Administrator | 허용 | 사용 |
| family | 1001 | 사용 | ||
| media | 1002 | Sharing Administrator | 사용 | |
| backup | 1003 | Read-only Administrator | 사용 |
권한은 사람이 아니라 그룹에 준다. 나중에 사람이 늘거나 역할이 바뀌면 그룹만 갈아끼우면 된다.
media 와 backup 은 사람이 아니라 서비스가 쓰는 그룹이다. media 는 Sharing Administrator라 공유 설정을 만질 수 있고, backup 은 Read-only Administrator라 읽기만 된다. 백업이 원본을 건드릴 일은 없어야 한다.
사용자
| 사용자 | UID | 기본 그룹 | 보조 그룹 | sudo | SMB | SSH 암호 로그인 | Shell |
|---|---|---|---|---|---|---|---|
| 관리자 계정 | 1000 | admins | builtin_administrators, family, media, backup | 허용 | 사용 | 허용 | zsh |
| 가족 계정 1 | 1001 | family | 사용 | nologin | |||
| 가족 계정 2 | 1002 | family | 사용 | nologin | |||
| media_user | 2000 | media | 사용 | nologin | |||
| backup_user | 2001 | backup | 사용 | nologin |
사람은 1000번대, 서비스 계정은 2000번대로 나눴다. UID만 보고 이게 사람인지 서비스인지 알 수 있다.
로그인이 필요 없는 계정은 shell을 nologin 으로 둔다. 가족 계정은 SMB로 파일만 쓰면 되고 셸에 들어올 일이 없다. 서비스 계정도 마찬가지다. SSH 암호 로그인도 관리자 계정에만 열어뒀다.
UID/GID는 NAS 밖과도 맞춰두는 편이 낫다. NFS로 붙는 리눅스 쪽과 번호가 어긋나면 같은 파일이 서로 다른 소유자로 보인다.
홈 디렉토리
홈은 pool 안에 dataset으로 만든다.
/mnt/vault/home
/mnt/vault/home/<사용자>
사용자마다 dataset을 따로 두면 스냅샷과 할당량을 사람 단위로 걸 수 있다. 한 dataset 안의 하위 폴더로 두면 이게 안 된다.