로그 파일이있는 디렉토리가 있으며 사용자가 시작한 스크립트의 로그를 로그 파일에 넣습니다. 이 경우 syslog를 사용하여 로깅 할 수없는 것 같습니다. (데몬이 아닌 rsync)
사용자에게 로그 파일에 대한 쓰기 권한 만 갖기를 원합니다. 문제는 사용자 (스크립트) 가 해당 파일 에만 추가 할 수 있도록 쓰기 권한을 추가로 제한해야한다는 것 입니다. 기본 파일 시스템은 XFS입니다.
다음은 작동하지 않습니다.
# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log
이것에 대한 다른 해결책이 있습니까? 힌트 주셔서 감사합니다.
답변
이 chattr
유틸리티는 ext2 / ext3 / ext4 파일 시스템 용으로 작성되었습니다. 파일에서 ioctl 을 방출 하므로 기본 파일 시스템에 따라 파일로 수행 할 작업을 결정합니다. 최신 Linux 커널의 XFS 드라이버는 FS_IOC_SETFLAGS
ext [234] 와 동일한 ioctl을 지원하여 추가 전용과 같은 플래그를 제어하지만 이전 커널 (CentOS?)이 아닌 이전 커널을 실행 중일 수 있습니다. xfs_io
대신 유틸리티를 사용해보십시오 .
echo chattr +a | xfs_io test.log
ext [234]와 같은 XFS의 경우 루트 만 추가 전용 플래그를 변경할 수 있습니다 (보다 정확하게는 CAP_LINUX_IMMUTABLE
기능 이 필요함 ).
답변
그렇게 할 권한이 있습니까? 보낸 사람 man 1 chattr
:
`a ‘속성이 설정된 파일은 쓰기를 위해 추가 모드에서만 열 수 있습니다. 수퍼 유저 또는 CAP_LINUX_IMMUTABLE 기능을 가진 프로세스 만이 속성을 설정하거나 지울 수 있습니다.
답변
또는 SELinux를 사용하여 동일한 결과를 얻을 수 있습니다 . Red Hat 호환 배포판을 사용하는 경우 활성화되어 실행될 가능성이 있습니다. 이것은 모든 파일 시스템에서 작동하며 SELinux는 프로세스가 허용되지 않는 작업을 수행하지 못하도록 차단합니다.
불행하게도 특정 파일에 추가하는 것을 제외하고 모든 시스템 리소스에 액세스 할 수 있도록 응용 프로그램에 대한 정책을 작성해야합니다. 첫 번째 작업을 수행하면 약간 어려울 수 있지만 추가 된 보안 계층의 이점이 있습니다.
이 대화에서 추가 전용 파일 규칙을 작성하는 방법에 대한 예가 있습니다. https://www.youtube.com/watch?v=zQcYXJkwTns