추가 만 파일 액세스 제한


12

로그 파일이있는 디렉토리가 있으며 사용자가 시작한 스크립트의 로그를 로그 파일에 넣습니다. 이 경우 syslog를 사용하여 로깅 할 수없는 것 같습니다. (데몬이 아닌 rsync)

사용자에게 로그 파일에 대한 쓰기 권한 만 갖기를 원합니다. 문제는 사용자 (스크립트) 가 해당 파일 에만 추가 할 수 있도록 쓰기 권한을 추가로 제한해야한다는 것 입니다. 기본 파일 시스템은 XFS입니다.

다음은 작동하지 않습니다.

# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log

이것에 대한 다른 해결책이 있습니까? 힌트 주셔서 감사합니다.


XFS입니까? chattr +a나를 위해 여기에서 작동합니다 (3.2 커널). 지원되고 루트가 아닌 경우 다른 오류 메시지가 표시되지만 사용하려면 루트 권한이 있어야합니다 chattr( $수퍼 유저가 아닌 프롬프트가 표시됨) chattr +a.
Stéphane Chazelas


파티션의 마운트 옵션은 무엇입니까? xattr을 사용하여 저장할 수 있으며 관련 마운트 옵션이 필요할 수 있습니까? (XFS의 socumentation은 ... 하나 더 그것에 대해 언급하지 않음)
거트 밴 버그 덴

이것은 SF에서 마감되었으므로 여기서 열어
Michael Mrozek

답변:


8

chattr유틸리티는 ext2 / ext3 / ext4 파일 시스템 용으로 작성되었습니다. 파일에서 ioctl 을 방출 하므로 기본 파일 시스템에 따라 파일로 수행 할 작업을 결정합니다. 최신 Linux 커널의 XFS 드라이버는 FS_IOC_SETFLAGSext [234] 와 동일한 ioctl을 지원하여 추가 전용과 같은 플래그를 제어하지만 이전 커널 (CentOS?)이 아닌 이전 커널을 실행 중일 수 있습니다. xfs_io대신 유틸리티를 사용해보십시오 .

echo chattr +a | xfs_io test.log

ext [234]와 같은 XFS의 경우 루트 만 추가 전용 플래그를 변경할 수 있습니다 (보다 정확하게는 CAP_LINUX_IMMUTABLE기능 이 필요함 ).


1

그렇게 할 권한이 있습니까? 보낸 사람 man 1 chattr:

`a '속성이 설정된 파일은 쓰기를 위해 추가 모드에서만 열 수 있습니다. 수퍼 유저 또는 CAP_LINUX_IMMUTABLE 기능을 가진 프로세스 만이 속성을 설정하거나 지울 수 있습니다.


0

또는 SELinux를 사용하여 동일한 결과를 얻을 수 있습니다 . Red Hat 호환 배포판을 사용하는 경우 활성화되어 실행될 가능성이 있습니다. 이것은 모든 파일 시스템에서 작동하며 SELinux는 프로세스가 허용되지 않는 작업을 수행하지 못하도록 차단합니다.

불행하게도 특정 파일에 추가하는 것을 제외하고 모든 시스템 리소스에 액세스 할 수 있도록 응용 프로그램에 대한 정책을 작성해야합니다. 첫 번째 작업을 수행하면 약간 어려울 수 있지만 추가 된 보안 계층의 이점이 있습니다.

이 대화에서 추가 전용 파일 규칙을 작성하는 방법에 대한 예가 있습니다. https://www.youtube.com/watch?v=zQcYXJkwTns

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.