폴더 내용 덮어쓰기 보호

폴더 내용 덮어쓰기 보호

폴더의 내용을 보호하는 방법(acl 사용)이 있습니까? 사용자는 폴더 내에 파일을 생성해야 하지만 덮어쓰거나 편집하거나 삭제해서는 안 됩니다. 이것이 가능한가?

답변1

inotifywait디렉토리를 관찰하고 디렉토리에 복사된 각 새 파일의 소유권을 변경하는 등의 변경 작업을 수행 할 수 있습니다 . Debian 기반 배포판에서는 다음과 같이 소프트웨어를 설치합니다 apt-get install inotify-tools.

다음과 같이 스크립트를 만듭니다 /usr/local/sbin/inbox.sh.

#!/usr/bin/env bash
inotifywait -m -e create "/path/to/directory" |
while read path event file; do
    if [ "$event" = "CREATE" ]; then
        chown root:root "$path$file"
    fi
done

스크립트 실행 권한을 부여합니다( chmod 0700 /usr/local/sbin/inbox.sh). 그런 다음 부팅 시 /etc/rc.local적절한 RC 파일 에서 실행합니다 /usr/local/sbin/inbox.sh &.

에 따르면수동, -m무기한 모니터링하고 -e특정 이벤트를 감시합니다. 물론 루프 내에서 디렉토리 생성을 나타내는 while와 같은 이벤트를 수신하는 것이 가능할 수 있습니다 . CREATE,ISDIR디렉토리는 질문의 대상이 아닙니다. 따라서 if명령문에는 이벤트로 표시되는 새 파일에만 응답하는 명령이 포함되어 있습니다 CREATE. pathfrom 변수에는 후행 inotifywait슬래시 문자가 있으므로 둘 사이에 슬래시를 지정하지 않고도 $path및 를 연결할 수 있습니다.$file

관련 정보