응용 프로그램이 700
권한이 있는 파일을 쓰고 있다는 점을 고려하면 이 그룹에서는 파일을 읽을 수 없습니다. 이러한 파일을 읽을 수 있는 특별한 백업 사용자 계정이 필요합니다.
ACL
chmod
마스크가 수정되었고 소유자나 다른 그룹 이외의 사용자에게는 여전히 권한이 없으므로 전혀 쓸모가 없어 보입니다 .
- 정규 재귀
chmod
? 특히 매우 큰 파일 세트에서 Hakish 및 리소스 낭비가 발생합니다. - 이를 위해 (sudo를 통해) 루트를 사용하시겠습니까? 안전하지 않음. 세밀한 제어가 없습니다. 원격 시스템(예: NAS)에서 시작된 rsync에는 적합하지 않습니다.
- 이러한 파일을 만든 응용 프로그램과 동일한 사용자를 사용하십시오. 즉, 백업에 소유자 사용자를 사용하십시오. 백업 사용자로서 여전히 해키적이고 인기가 없습니다.읽기 액세스만 가능하며 해당 디렉터리에 대해서만 가능합니다.. 이는 외부에서 시작된 rsync의 경우 특히 중요합니다.
- ?와 같은 방법을 사용하여
bindfs
특정 디렉터리를 다른 디렉터리에 마운트하는 것은 심각한 성능 저하를 초래하며 이러한 간단한 권한 관련 작업에는 적합하지 않습니다.
Linux에서 관리자가 파일에 대한 응용 프로그램에 대해 허용되는 최소 권한을 지정하는 것을 허용하지 않는 이유가 궁금합니다. 최대 권한은 마스크를 사용하여 제한할 수 있지만 투명하게 적용하거나 추가할 수는 없습니다. 이상해 보입니다.
해결책이 있나요?
답변1
비슷한 상황에서 나는 이 chmod
접근 방식을 취했지만 부팅 시 실행하고inotifywait
. 다음은 제가 실제로 사용하는 코드의 간단한 버전입니다. 또한 소유권/그룹화 관계를 처리하고 변경 사항이나 오류를 기록합니다.
#!/bin/bash
inotifywait --monitor --recursive --event create,attrib --format '%w%f' "$@" |
while IFS= read -r item
do
# Avoid looping when we apply the fix-up chmod
perm=$(stat -c %A "$item")
if [[ -d "$item" ]] && [[ ! "$perm" =~ dr.xr.xr-x ]]
then
# Directory with wrong permissions
printf 'dir\t%s\n' "$item"
chmod ug+rx,o=rx "$item"
fi
if [[ ! -d "$item" ]] && [[ ! "$perm" =~ -r..r..r.. ]]
then
# Item (not a directory) with wrong permissions
printf 'other\t%s\n' "$item"
chmod ug+rw,o-w,o+r "$item"
fi
done
코드가 개행 문자가 포함된 파일 이름을 처리할 수 없다는 것을 알 수 있지만 chmod
이는 파일이 생성되거나 해당 속성이 수정될 때만 트리거되는 도구에 의해 조정됩니다. 대규모 정상 데이터세트에 적합합니다.
모든 권한을 무조건적으로 수정하는 비정기적 프로세스로 이를 보완할 수 있습니다. 이 예에서는 사용자/그룹 권한이 최소한 읽기(또는 디렉토리인 경우 실행)이고 다른 모든 사람은 동일한 권한을 가지지만 쓰기 권한은 없음을 확인합니다.
find /path/to/base -type d -exec chmod ug+rx,o=rx {} \; -o -exec chmod ug+rw,o-w,o+r {} \;
오늘 해결책을 쓰고 있다면 고려해 볼 수도 있습니다.incron
루프 대신