초기화 스크립트의 잠금 파일을 불변으로 만드는 것이 좋은 습관입니까?

초기화 스크립트의 잠금 파일을 불변으로 만드는 것이 좋은 습관입니까?

나는 최근에 init 스크립트를 생성하고 외부 간섭을 방지하기 위해 잠금 파일을 불변으로 만들기로 결정했습니다. 내가 생각할 수 있는 유일한 단점은 누군가 /var/lock을 반복적으로 삭제하려는 경우 문제가 발생할 수 있다는 것입니다. 스크립트를 통해 프로세스가 중지되면 init 스크립트는 파일을 삭제하기 전에 변경할 수 없는 플래그를 제거합니다.

이것이 나쁜 생각인가요? 왜 더 자주 볼 수 없나요? 이건 너무한 걸까요? 누군가 초기화 스크립트 없이 프로세스를 중지하면 다음에 인수를 사용하여 스크립트를 호출할 때 잠금 파일이 삭제됩니다.

답변1

적어도 내 시스템에서는 /var/lock(또는 실제로 /run/lock전자가 후자에 대한 심볼릭 링크임) 고정 비트가 설정되어 있습니다. 즉, 잠긴 파일이나 디렉터리의 소유자만 삭제할 수 있으며 디렉터리에 쓰는 사람은 누구나 삭제할 수 없습니다(동일한 방식 /tmp). 다른 배포판에서는 이 디렉토리에 소수의 사용자만 쓸 수 있습니다(따라서 임의의 사용자는 전혀 간섭할 수 없습니다).

따라서 데몬에 의해 잠긴 파일을 파기(삭제)할 수 있는 유일한 사용자는 다음과 같습니다.

  1. root(물론 루트는 무엇이든 할 수 있습니다)
  2. 잠긴 파일을 생성한 사용자(다시 말하지만 root시도하지 않으면 데몬 전용 사용자일 수도 있음 chattr)
  3. root내 시스템의 잠긴 디렉토리 소유자

또는 다르게 설정된 경우 lock일반적으로 시스템 데몬의 사용자인 "(또는 임의) 그룹의 구성원"을 추가할 수 있습니다.

잠긴 파일을 읽고 쓸 수 있는 사용자는 평소와 같이 잠긴 파일의 권한으로 제어되며, 쓰기는 루트 및 데몬 사용자로 제한될 것으로 예상됩니다.

root"외부 간섭"이 발생 하면 rm잠긴 파일을 사용하는 경우보다 훨씬 더 큰 문제가 발생합니다. 따라서 이 작업을 수행해서는 안 됩니다. 이는 보호 기능을 추가하지 않으며 특정 문제를 해결하려고 할 때 시스템 관리자에게 놀라움을 줄 수 있습니다.

불변 플래그는 일반적으로 시스템 관리자만 적용합니다.

관련 정보