사용자로 실행 파일 실행filesystem

사용자로 실행 파일 실행filesystem

자동으로 프로젝트를 생성하는 확장 기능을 갖춘 파일 시스템 관리자를 생성 중입니다... 파일 시스템 실행 파일은 다음 파일만 편집하거나 삭제할 수 있어야 합니다./home/USER/00_Files

사용자와 그룹을 만들었습니다 sudo adduser --system --no-create-home --group filesystem.
그 후 홈 폴더 /etc/passwdfilesystem:x:131:140::/nonexistent:/usr/sbin/nologin.

현재 내가 이해하고 있는 것은 파일 시스템 실행 파일이 내가 만든 사용자로 실행되어야 하고 그룹 파일 시스템을 소유하게 만들어야 한다는 것입니다 00_Files.

내 IDE(또는 터미널의 나)와 같은 다른 프로그램은 00_Files.

이제 질문은
사용자로 실행 파일을 실행하는 방법 입니다 filesystem. 이 그룹이 의 모든 파일을
자동으로 소유하게 하려면 어떻게 해야 합니까 ? 설정해야 할 다른 파일 권한이 있습니까?filesystem00_Files

답변1

사용자로 실행 파일 실행filesystem

# execute as root
chown filesystem /path/to/executable
chmod u+s /path/to/executable
# execute as any user
/path/to/executable

그러나 SUID보다는 SGID를 사용하여 실행하는 것이 더 합리적입니다 filesystem. 따라서 사용자는 실행 파일을 수정할 수 없습니다.

# execute as root
chown root:filesystem /path/to/executable
chmod u-s,g+s /path/to/executable
# execute as any user
/path/to/executable

두 경우 모두 그룹을 /home/USER검색 가능하게 만들어야 할 수도 있습니다( x권한) filesystem(디렉토리에 대한 그룹으로 만들거나 ACL을 사용하여).

한 그룹이 모든 새 파일을 소유하도록 허용

모든 기존 파일 및 디렉터리의 그룹으로 만듭니다.

chgrp -R /home/USER/00_Files

모든 디렉터리에 대해 SGID 비트를 설정합니다.

find /home/USER/00_Files -type d -exec chmod g+s {} \;

기타 파일 권한 설정

이 그룹이 모든 기존 파일과 디렉터리를 쓸 수 있도록 설정합니다.

chmod -R g+w /home/USER/00_Files

그룹에 향후 모든 파일 및 디렉터리에 대한 쓰기 권한을 부여합니다.

find /home/USER/00_Files -type d -exec setfacl -m d:g::rwx {} \;

안전상의 이유로

보안상의 이유로 filesystem이 디렉터리 트리 외부의 사용자/그룹에는 쓰기 권한이 있는 파일이나 디렉터리가 있어서는 안 됩니다.

완전히 다른 접근 방식은 대상 디렉터리 트리만 포함하는 자체 설치 네임스페이스/chroot에서 실행 파일을 실행하는 것입니다. 실행 파일이 정적으로 링크된 경우 이는 간단합니다. 그런데 root네임스페이스를 생성하는데 권한이 필요한지는 잘 모르겠습니다 .

관련 정보