SSH 구성을 보호하기 위해 RHEL 7에서 /etc/ssh/sshd_config 파일을 편집한다고 가정해 보겠습니다.
예를 들어 Ciphers 줄을 교체하고 원본을 제자리에 유지하고 주석을 달겠습니다. 또한 Red Hat이 rpm/install iso를 업데이트할 때마다 문자열이 깨지는 것을 방지하기 위해 가능한 한 문자열의 가장 작은 부분을 차단할 수 있기를 원합니다.
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
되어야 한다...
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789 etc...
파일 이름이 testfile이고 내용이 다음과 같은 테스트 파일에서 개행 찾기/추가를 시도했습니다. 이것은 내 테스트 파일입니다. 아니요, 새 줄이 아니기 때문에 추가하려고 시도했지만 비참하게 실패했습니다.
sed -i '/This is my test file./aNo it's not.' testfile
이에 대해 어떻게 생각하고 더 중요한 것은 그 뒤에 숨은 핵심 개념은 무엇입니까?
답변1
나는 아래 sed 명령을 사용해 보았고 매력적으로 작동했습니다.
명령
sed -i '/^Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-c/s/.*/#&\nCiphers abc-123,def-456,ghi-789/g' filename
산출
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789
답변2
sed -i -n 'p; s/^Ciphers/#&/p' /etc/ssh/sshd_config
-i
제자리에
-n
명시적으로 인쇄되지 않는 한 아무것도 인쇄하지 않습니다.
/p
검색 문자열의 끝에서 인쇄를 강제하여 -n
일치하는 문자열을 효과적으로 재정의합니다.