SW 개발

[linux admin] linux mount 시점에서의 사용자, 권한 적용 (ext file-system)

. . . 2021. 3. 30. 15:27
반응형

마운트 시점 폴더에 사용자 권한을 주기 위해서 자료조사, 테스트한것을 정리한다.

마운트 시점에서의 사용자 권한?

리눅스 부팅시 보안관련한 세팅을 해야한다. 구글링을 해보면, 대부분의 솔루션들이 mount 한 이후에 chmodchown 명령어로 권한을 설정하면된다고 하고있다. 하지만, 뭔가 깔끔하지가 않다고 생각하였다.

부팅되는 처음 마운트 시점에서 권한 설정을 하면되는것 아닌가?!

마운트 된 이후에, 권한설정을 위해서 systemd service 를 추가하는것이 깔끔하지 않은것 같아서 다음과 같은 삽질을 하게되었다.

mount 시점에서의 사용자 권한 (permission mask) 설정

결론부터 이야기하자면, mount 시점에서 옵션으로 사용자 권한 설정은 불가능하다. (테스트 및 자료조사한 바로는 그렇다 ㅠㅠ)

ext3, ext4 계열의 리눅스 파일시스템 말고, fat, ntfs 같은 윈도우 파일시스템은 가능하다.

mount 명령어의 도움말 https://man7.org/linux/man-pages/man8/mount.8.html 을 살펴보면.. umask 와 같은 옵션을 통한 설정이 가능한것처럼 보이기도 하는데... 해당 문서를 잘 살펴보면, 권한 mask 설정이 가능한 파일시스템이 따로있다. 즉 ext3, ext4 파일시스템을 쓴다면 마운트 옵션으로 permission 설정은 불가능한것 같다.

마운트를 한 마운트 포인트의 최상의 폴더에 대한 권한은 어쩔수없이 마운트 한 이후에 따로 서비스를 돌려야 할것 같다.

systemd 를 이용한 파일 마운트 시점 서비스

systemd 에서 파일 마운트 시점에 대해서는 다음의 포스팅을 참고.

mount 시점에서의 guid / uuid 설정

결론부터 이야기하자면, mount 시점에서 옵션으로 소유자 설정은 불가능하다.

ext3, ext4 계열의 리눅스 파일시스템 말고, fat, ntfs 같은 윈도우 파일시스템은 가능하다.

mount 명령어의 도움말 https://man7.org/linux/man-pages/man8/mount.8.html 을 살펴보면.. uid 와 같은 옵션을 통한 설정이 가능한것처럼 보이기도 하는데... 해당 문서를 잘 살펴보면, 권한 uid 설정이 가능한 파일시스템이 따로있다. 즉 ext3, ext4 파일시스템을 쓴다면 마운트 옵션으로 uid 설정은 불가능한것 같다.

단, 마운트 될 타겟의 파티션의 파일시스템을 만들때 uid , gid 를 설정하여 만들면 설정가능!!

mkfs 의 사용자 지정옵션

mkfs.ext4, mkfs.ext3 명령어의 확장 옵션을 사용하면된다.

mkfs 명령어 도움말 https://man7.org/linux/man-pages/man8/mke2fs.8.html 에서 -E extended-options 부분을 살펴보자

-E extended-optionsroot_owner 을 사용하면된다.

간단하게 다음의 예제를 보자.

mkfs.ext4 -F /dev/mmcblk0p3 -E root_owner=0:1000
  • -E root_owner=0:1000 옵션을 통해 owner id 를 0:1000 으로 설정한다.
    • uid:gid 를 직접지정가능하다.

위와같이 하면, mount 시점에서 uid:gid 가 설정된 상태에서 마운트된다.

yocto wic 명령어를 통한설정

임베디드 시스템의 경우 yocto wic 를 사용하여, 파티션을 잡는경우가 많을것이다.

역시 part 명령어의 옵션중에 위의 mkfs 의 명령어를 그대로 사용한다. mkfs 의 확장명령어를 사용하기 위해서는 --mkfs-extraopts 옵션을 사용한다.

간단하게, 다음의 예제를 보자.

part --source rootfs [...각종옵션들...] --mkfs-extraopts "-E root_owner=0:1000"

  • --mkfs-extraopts "-E root_owner=0:1000" 옵션을 통해 owner id 를 0:1000 으로 설정한다.
    • uid:gid 를 직접지정가능하다.

위와같이 하면, mount 시점에서 uid:gid 가 설정된 상태에서 마운트된다.

반응형