내 RHEL 5 시스템의 폴더에 다양한 로그 파일이 있습니다.
/var/log/syslog-ng/A/
/var/log/syslog-ng/B/
/var/log/syslog-ng/C/
B
특정 사용자에게 폴더 및 하위 디렉터리 내의 모든 파일을 보거나 추적할 수 있는(수정/삭제할 수는 없음) 권한을 부여하고 싶지만 폴더 나 폴더 자체 C
의 내용은 부여할 수 없기를 원합니다.A
/var/log/syslog-ng
tail
내가 상상할 수 있는 것은 유일한 명령이 , cd
및 이고, grep
및 폴더로만 이동할 수 있는 간단한 쉘입니다 .vi
cd
B
C
이 정보를 사용하는 사람들 간에 사용자/비밀번호를 공유하는 것은 괜찮습니다.
이를 달성하기 위해 어떻게 제안하시나요? 가능합니까?
(우리는 현재 Apache HTTPD에서 제공하는 bash 스크립트를 통해 이 작업을 수행합니다. 이 스크립트는 탐색된 경로가 B 또는 C 폴더 위로 지나갈 경우 Apache 구성에 대한 비밀번호를 요구합니다. 스크립트는 아무리 말해도 투박하고 해킹적이며 생성하는 것 외에는 아무것도 하지 않습니다. HTML 페이지의 메타 새로 고침 외에도 모든 종류의 실시간 업데이트를 제공합니다. ssh 및 tail을 사용하면 더 나은 사용자 경험을 제공하고 오류 발생 가능성이 줄어듭니다.
답변1
이것세게 때리다쉘 입력 a
제한 모드(호출될 때
rbash
) 사용자가 ;change를 사용하거나 PATH
현재 디렉토리를 변경하는 것을 방지합니다. cd
이를 UNIX 그룹에서 제공하는 액세스 제어 제한과 결합하여 사용자가 디렉토리의 파일만 볼 수 있도록 제한할 수 있습니다.
나는 이것을 다음과 같이 구현할 것이다:
그룹 만들기
A
등B
- 각 그룹을 읽을 수 있습니다(그러나 읽을 수는 없음).쓰다) 해당 디렉터리와 그 안에 있는 로그 파일:$ ls -lF /var/log/syslog-ng drwxr-x--- root A ... A/ drwxr-x--- root B ... B/ [...] $ ls -l /var/log/syslog-ng/A/ -rwxr----- root A ... logfile.log -rwxr----- root A ... logfile.log.1 [...]
/etc/group
사용자를 수정하고 사용자가 읽으려는 로그를 기반으로 다음 그룹에 추가합니다.$ tail /etc/group [...] A: foo B: bar
로그 뷰어에 액세스할 수 있는 명령을 호스팅할 디렉터리를 만듭니다.
/usr/local/restricted/bin
관련 명령을 해당 디렉터리에 복사하거나 하드링크합니다.제한된 사용자에 대해 올바른 설정이 지정 되도록 수정하십시오
/etc/profile
. 제한된 경로에는 (또는 "안전한" 제한된 명령을 호스팅하는 다른 디렉토리)만 포함되어야 합니다.PATH
/usr/local/restricted/bin
/etc/passwd
사용자에게 로그인 쉘rbash
및 관련/var/log/syslog-ng/XXX
디렉토리가 홈으로 제공되는지 수정 하고 확인하십시오. 이제 로그인할 수 있지만 홈 디렉터리로 제한되며 제한된 경로에서만 명령을 사용할 수 있습니다.
노트:사용자가 다음을 수행할 수 있도록 명령에 대한 액세스를 제공하면 제한 모드 셸을 쉽게 우회할 수 있습니다. 구현하다PERL 또는 거의 모든 편집기와 같은 모든 명령.
답변2
NFS 또는 Samba와 같은 네트워크 프로토콜을 통해 내보낼 수 있습니다 /var/log/syslog-ng/B
./var/log/syslog-ng/C
scp 전용 쉘을 사용하여 사용자를 생성할 수 있습니다.스폴리또는RSSH. 이 사용자의 홈 디렉토리를 /home/log-viewers-BC
.Use 로 설정하십시오.파일 시스템 바인딩/var/log/syslog-ng/B
as의 뷰와 /home/log-viewers-BC/B
as의 뷰를 만듭니다 ./var/log/syslog-ng/C
/home/log-viewers-BC/C
그러나 한 가지 .htaccess
접근 방식도 좋은 선택이므로 실시간 업데이트를 위한 더 나은 cgi 스크립트 세트를 살펴보세요.