특정 그룹 ID를 가진 디렉터리가 있고 해당 디렉터리에 동일한 ID를 가진 파일만 있기를 원합니다.
그래서 해당 디렉토리에 SGID 비트를 설정하여 파일을 생성할 때마다 올바른 ID를 얻습니다. 이제 cp 또는 touch와 같은 명령이 작동합니다. 문제는 누군가 mv를 사용하여 디렉터리 내에서 파일을 이동하는 경우 그룹 ID가 해당 디렉터리의 그룹 ID로 설정되지 않는다는 것입니다.
나는 이런 일이 일어나는 것을 원하지 않습니다.
답변1
파일/디렉토리에 대한 일반적인 읽기/쓰기/실행 권한을 사용하여 이를 수행하는 방법을 모르겠습니다. 그러나 ACL(액세스 제어 목록)을 사용할 수 있습니다.인간 접근 제어 목록작동 방식을 알아보고설정값특히 권한을 설정하는 명령입니다.
예를 들어:
$ setfacl -Rm u:foo:rwX,d:u:foo:rwX test
현재 ACL과 기본 ACL을 수정합니다. 나는 "d:"가 디렉토리의 (d)기본 ACL에만 영향을 미치고 파일은 영향을 받지 않는다고 생각합니다. 그런 다음 해당 디렉터리에 새 파일을 생성하면 기본적으로 상위 디렉터리의 ACL이 상속됩니다.
인용하다
답변2
이 경우 FTP는 어떻게 작동할까요? FTP만 사용하여 파일을 전송하는 것은 불가능합니다 move
. copied
FTP가 솔루션이 될 수 있습니까?
답변3
chown root $MYDIR
chmod ug+rw,o=- $MYDIR
이제 $MYDIR을 살펴봐야 합니다. 파일이 변경되면 다음을 확인해야 합니다.
이것을 루프에 넣을 수 있습니다.
sleep 60
touch --reference $MYDIR /dev/shm/lastcheck_mydir
find $MYDIR -type f -anewer /dev/shm/lastcheck_mydir
이제 find
새 파일이 발견되면 다음과 같이 조치를 취할 수 있습니다.
find $MYDIR -type f -anewer /dev/shm/lastcheck_mydir -exec chgrp $MYGID {} \;