루트가 아닌 사용자로 로그 및 데이터베이스 다운로드

루트가 아닌 사용자로 로그 및 데이터베이스 다운로드

저는 영원히 Linux 웹 호스팅에 대해 멍청합니다. 터미널 너비/높이/길이 문제를 처리하는 오류를 찾는 대신 우분투 20.04 로컬 컴퓨터에 여러 bash 별칭 명령을 설정하여 scp다운로드할 명령을 실행합니다. 내 gedit GUI에 로컬로 로그인하여 엽니다.

질문:
이제 루트가 아닌 사용자를 사용하고 루트 SSH 기능을 비활성화하는 모범 사례를 배웠으므로 이제 루트가 아닌 사용자로 서버에 SSH를 연결하기 때문에 작동하지 않는 여러 bash 별칭 명령이 있습니다. 루트가 되어 sudo su무엇이든 할 수 있습니다(안전과 보안을 위해 절충할 가치가 있음).

질문:
루트가 아닌 사용자가 실행할 수 있도록 다음 명령을 변경하는 방법을 아는 사람이 있습니까?

alias pae="scp root@prodserver:/var/log/apache2/error.log ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log && gedit ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log"


alias dbdl="rsnyc -aHAXSv root@prodserver:/dbbackdir ~/Downloads/dbbackups"

위의 각 명령에 대해...

root@prodserverbash 별칭이 이전 최종 사용자 편의성을 유지할 수 있도록 을 교체 하고 명령을 adminuser@prodserver전달한 sudo su다음 자동으로 관리자의 비밀번호를 전달하여 루트가 되도록 해야 합니다 .

나는 그 점에서 내 체급보다 훨씬 뛰어났습니다.

어떤 팁이 있나요?

고쳐 쓰다:

파일에 루트가 아닌 액세스를 추가하는 방법을 보여주는 유용한 튜토리얼을 찾았습니다. 안타깝게도 작성된 지침을 그대로 따르는 것은 효과가 없습니다.

루트가 아닌 사용자 apache2 로그 액세스 권한 부여
https://gist.github.com/angela-d/8a2416034ea7ed89ecde37147e8711ba

참고: 이 튜토리얼은 Debian 10.5에서 작동하는지 여부를 명시하지 않으며 작동하지 않는 이유를 설명합니다.

나는 지시대로 달렸다.setfacl -m g:adminuser:rx /var/log/apache2/*

그러나 getfacl /var/log/apache2/출력을 실행하면확실히이는 adminuser에게 rx 액세스 권한이 있고 /var/log/apache2/*루트 사용자만 계속 액세스할 수 있음을 보여줍니다.

또한 그룹에서 사용자로 변경을 시도했지만("g" 대신 "u" 사용) setfacl -m g:adminuser:rx /var/log/apache2/* 여전히 운이 없었습니다.

어 허..

답변1

로그 파일을 읽으려면 서버의 루트여야 하는 것 같습니다. 어쩌면 다음과 같은 것일 수도 있습니다.

alias pae="ssh prodserver sudo cat /var/log/apache2/error.log" > ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log && gedit ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log"

더 많은 파일이 필요한 경우 tar전송할 수 있는 하나의 파일로 분할하는 방법을 사용하겠지만 변경 사항만 전송하는 방법(예: 이렇게 rsync함)에 대해서는 일반 사용자를 넣을 수 있는 그룹이 있는지 확인하는 것이 좋습니다. 그 사람이 파일을 읽을 수 있도록 말이죠.

답변2

머릿속에서 짜증나는 목소리를 들어보세요.이전 솔루션을 다시 확인한 결과 /var 아래의 모든 디렉터리에 관리자 권한을 부여하여 보안 허점이 생겼다는 사실을 깨달았으므로 이를 제거하고 계속 사용하겠습니다."루키테이스트"얼굴에 계란이 묻었어요. :-)

참고로 저는 setfacl -b g:adminuser:rx /var/*저의 어리석음을 바로잡은 적이 있습니다.

어쨌든 보안 허점을 만들지 않고 루트가 아닌 사용자의 Apache 로그 액세스를 수정하기 위해 다음을 사용했습니다.

setfacl -m u:adminuser:rx /var/log/apache2/*.log

마지막으로 apache2 error.log에 대한 액세스 권한이 있음 getfacl /var/log/apache2/을 보여줍니다 adminuser(다른 민감한 디렉터리는 없음).

거기에서 새 관리자로 원래 bash 별칭을 테스트했는데 모든 것이 잘 작동했습니다.

alias pae="scp adminuser@prodserver:/var/log/apache2/error.log ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log && gedit ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log"

위의 rsync 명령과 관련하여 가장 안전한 방법은 데이터베이스 백업을 사용자의 홈 디렉터리에 직접 저장 한 다음 너무 많은 위치에 적용하려고 시도하여 보안을 유발하는 adminuser대신 거기에서 내 로컬 컴퓨터로 rsync하는 것입니다. setfacl구멍.

관련 정보