폴더의 내용을 보호하는 방법(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
events 로 표시되는 새 파일에만 응답하는 명령이 포함되어 있습니다 CREATE
. path
from 변수 inotifywait
에는 후행 슬래시 문자가 있으므로 둘 사이에 슬래시를 지정하지 않고도 $path
and 를 연결할 수 있습니다.$file