sudo & 공식 서버로 비어있음

2374 단어 Linuxshelltech

개시하다


이것은 올해 초에 발생한 일이다.
제목과 같이 sudo 명령어와 ● 정식 서버가 비어 있습니다.
실제로 실행된 명령은 다음과 같다.
sudo rm /*
원래 실행하려고 했던 명령은 다음과 같다.
sudo rm /aaa/bbb/ccc/*
내가 실시하고 집행하고 평론하는 사람은 아니지만
상상을 초월하는 시간이 걸렸기 때문에 신경 써서 확인해 봤는데
다음 로그에 표시됩니다.비상 끝났지.
rm: `/ファイル名' を削除できません: 許可されていない操作です
sudo 명령을 사용해도 삭제할 수 없는 파일이 있는 것 같습니다. 이 오류로 인해 알았습니다.
그런데 왜 이런 일이...

날과 씨


실행된 스크립트는 파일을 삭제할 뿐만 아니라 파일도 만들었습니다.
프로세스 중에 객체 삭제 경로를 나타내는 변수가 비어 있습니다.
dir_name=/aaa/bbb/ccc
## この間の色々な処理処理で変数が空になりました。
sudo rm ${dir_name}/*

까닭


검사 누락


엄밀하게 진행됐는지 결과적으로 누락된 일이 있었다.

유식한 사람이 없다


Linux가 없는 유식한 사람들은 적어도 sudo,≥,rm를 사용하는 위험의식이 없다.
더욱이 상당수의 파일과 디렉터리에 대한 권한이 777로 설정되어 있다.

검사를 빠뜨리다


무대 환경에서는 동작 검증이 이뤄졌지만, 공식 환경에서는 검증이 이뤄지지 않았다.
이 때문에 제본 환경용과 정식 환경용 스크립트의 차이 부분이 발생했다.

대책


휴지통 만들기


기본적으로 삭제하지 않고 휴지통 (trush 디렉터리) 으로 이동해서 삭제된 것으로 판단합니다.

rm 명령 금지


쓰레기통 이외의 rm 전면 금지.

기본적으로 sudo 명령을 금지합니다


chown과chmod 등 권한을 둘러싼 명령을 제외하고는 사용을 금지합니다.

* 별도 사용 금지


다음 예에서 보듯이 확장자와 날짜 등을 함께 사용합니다.
# ログファイルをごみ箱へ移動
mv *.log ~/trush
mv *_20211229 ~/trus

스테이지 환경과 공식 환경을 동일하게 사용


원래 서버의 포트 주위 등 정식 공연의 고유한 설정 이외에는 차이가 있어야 한다고 생각한다(내 생각에는).

공식 환경 검증


본 공연의 고유한 설정을 무대극용으로 개작해 검증한다.
다른 스크립트는 이 방법으로 검증했지만 진행되지 않은 것 같다.

끝말


기본적으로 백업에서 복구 가능
마운트된 NFC는 백업되지 않은 것처럼 보이며 장시간 복구 작업이 발생했다.
이 일이 있어서 나는 많은 것을 배웠다.
하지만.. 내년에는 아무 일도 없었으면 좋겠어..🙏

좋은 웹페이지 즐겨찾기