디렉터리에 대한 기본 권한 설정

디렉터리에 대한 기본 권한 설정

누군가 이 질문을 중복으로 표시하기 전에 몇 가지 추가 정보를 알고 싶다는 점을 강조하고 싶습니다...

나는 길을 찾았다디렉터리에 생성된 모든 파일에 대한 기본 파일 권한 설정

이 프로세스를 디렉터리에 적용하면 my_dir해당 디렉터리에 생성될 모든 파일과 하위 디렉터리에 my_dir올바른 권한이 부여됩니다. 그러나 외부에서 파일을 만든 my_dir다음 내부적으로 복사하거나 이동하면 my_dir에 정의된 권한이 없습니다 my_dir.

그래서 파일이 생성된 위치에 관계없이 해당 디렉터리 내의 모든 파일에 대한 디렉터리 및 해당 내용의 권한을 수정하는 방법이 있는지 궁금합니다.

가장 좋은 솔루션은 사용자가 특별한 작업을 수행할 필요가 없는 솔루션입니다. 간단한 클릭, 드래그, 복사 cp...그러나 mv왼쪽과 오른쪽에는 아무런 관련이 없습니다. chmod그럼 이런 대답이 나오죠이것사용자가 파일을 복사하거나 이동하려고 할 때마다 특이한 작업을 수행해야 하기 때문에 실제로 원하는 것은 아닙니다.

추신: 제가 이렇게 하는 이유는 저와 같은 그룹에 속한 동료들과 일부 폴더를 공유하기 때문입니다. wrx폴더 외부에서 생성된 파일이라 하더라도 그룹의 모든 사람이 공유 폴더에 포함된 모든 파일에 액세스할 수 있기를 바랍니다 .

답변1

사용자의 파일 권한 그룹을 사용하십시오. 관리자는 새 그룹을 만들고 /etc/groups모든 Teams 사용자를 그룹에 추가하도록 요청했습니다. umask동일한 그룹의 구성원에 대한 액세스를 허용하도록 사용자 셸 구성 파일의 정의를 변경합니다 .

답변2

cpmv복사 후 작업을 수행하기 위한 래퍼 스크립트 등을 작성합니다 chmod.

답변3

ACL로 문제가 해결되지 않으면 대체 솔루션은 API를 사용하는 것입니다 inotify. 이를 통해 프로그램은 하나 이상의 디렉터리에 있는 이벤트를 모니터링하고 이에 대해 조치를 취할 수 있습니다.

부팅 시 루트로 시작하는 스크립트에 포함된 다음과 같은 내용이 도움이 될 것입니다.

TARGET_DIR='/path/to/directory'
inotifywait --monitor --recursive --quiet --event close_write,moved_to --format '%w/%f' "$TARGET_DIR" |
    while read FILE
    do
        chmod go=u,o-w "$FILE"
        # chown someone:somegroup "$FILE"
        logger -t inotify "Tickled $FILE"
    done

관련 정보