루트 사용자가 특정 명령을 실행하지 못하도록 제한하는 방법

루트 사용자가 특정 명령을 실행하지 못하도록 제한하는 방법

mv /*디렉토리에서 실행할 때 Linux 시스템이 손상되었습니다 .

/* *와 같은 특정 명령에 대한 인수로 대부분 의 사용을 제한하고 싶습니다 .rmmv

내 것을 사용하고 싶습니다 ~/.bashrc. bash 쉘이 제한되어 있다는 것을 알고 있지만 rbash루트에 대한 현재 기본 쉘을 변경했기 때문에 만족스럽지 않습니다.

매개변수를 캡처하려면 명령에서 몇 가지 단계를 수행하고 사용자에게 경고하는 조건문을 $0작성 $1하세요 . if내 파일에 스크립트를 넣으면 구현이 작동합니까 ~/.bashrc? 아니면 다른 더 좋은 방법을 놓치고 있는 걸까요?

내가 글을 쓰는 방향을 알려줄 사람이 필요해요.

귀하의 도움에 미리 감사의 말씀을 전하고 싶습니다.

답변1

유닉스에서는 root모든 것이 가능하다. 유닉스가 사용자에게 발을 쏠 수 있을 만큼 충분한 로프를 제공한 것처럼 root전체 시스템을 호스로 묶는 것도 가능했습니다 .

이것오직해결책은 각별히 주의하는 것입니다. 특히 파괴적일 수 있는 경우 모든 명령을 두 번 읽고 확인하는 데 익숙해지십시오. 시스템의 일부 부분을 망칠 때마다 신중하게 생각하고 Docker와 같은 테스트 환경을 설정하여 무언가를 시험해 보세요. 설치 미디어를 준비하고 이를 사용하여 복구하는 방법을 알아 두십시오. 백업을 유지하세요. 중요한 콘텐츠를 버전 관리 시스템에 저장하면 이전 버전으로 롤백하거나 긴급 상황 시 원격 복사본을 얻을 수 있습니다.

답변2

@Nasir Riley와 이 문제에 기여한 다른 모든 분들의 조언에 진심으로 감사드립니다. 나는 많은 것을 배웠다.

* 또는 /* 사용을 제한하는 게시물을 우연히 발견했습니다. set -f noglobber

또한 시스템에 Saferm이 구성되어 있으며 대부분의 경우 sudo를 사용합니다.

하지만 이것이 set -f nogloberzsh에서는 작동하지 않습니다

답변3

사용스도바꾸다뿌리, 여기서 원하는 권한을 설정할 수 있습니다.Sudoers문서.

sudo 명령을 사용할 때마다 비밀번호를 입력하고 싶지 않다면,(귀하의 의견에서 "나는 광범위한 액세스가 필요할 때만 루트로 로그인하고 sudo는 항상 짧은 시간 내에 비밀번호를 요구합니다"라고 말했기 때문에 이 작업을 수행하지 않는다는 것을 알고 있습니다.)그런 다음 sudo 줄에 NOPASSWD를 추가합니다. 즉,

## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

관련 정보