저는 영원히 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@prodserver
bash 별칭이 이전 최종 사용자 편의성을 유지할 수 있도록 을 교체 하고 명령을 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
구멍.