다수의 프로덕션 서버에 로그인하는 것은 모든 Linux 시스템 관리자의 업무의 일부이기 때문에 문제가 발생하여 프로덕션 시스템이 손상되기 쉽다는 의미입니다. 많은 경우, 누군가 피곤하거나 밤에 전화를 받을 경우 "rm -rf test.1" 대신 "rm -rf test"를 실행할 수 있습니다. 따라서 유사한 상황을 예상하고 사용자 수준이나 커널에서 특정 명령을 차단하는 방법이 있지만 루트 액세스를 사용하는 것은 좋은 방법이 아닙니다. 또한 많은 시스템(100-200)에 연결되어 있는 경우 모든 시스템에서 특정 명령을 잊도록 구성하는 것도 어려운 작업입니다.
그래서 저는 이 일을 쉽고 안전하게 할 수 있는 방법을 찾고 있습니다. SSH를 통해 로그인한 경우에만 작동하며 때로는 제거되기도 합니다. 그래서 터미널/터미네이터/ssh 에이전트/또는 기타 명령줄 도구의 기본 설정에서 사용자 정의 명령과 같은 것을 생각했습니다. 이것이 가능한지는 잘 모르겠지만 많은 사람들에게 유용할 것이라고 생각합니다.
답변1
SSH를 통해 명령 실행을 제한할 수 있지만 로그인 셸을 허용하면 이 제한이 적용되지 않습니다.
한 가지 방법은 파일을 살펴보고 authorized_keys
키 행 앞에 command="/bin/foo/bar"를 넣는 것입니다.
sudo
또 다른 보다 안전한 접근 방식은 사용자가 권한을 부여하고 실행할 수 있도록 허용하려는 항목을 사용하고 지정하는 것입니다 . 사용자가 test.1 대신 test를 삭제하는 데 자주 문제가 발생하는 경우 여기가 안전망을 유지하는 데 적합한 장소입니다.
/usr/local/bin
정기적인 작업을 수행하는 관리자가 있는 경우 디스크 공간을 정리하기 위해 작업을 스크립트에 캡슐화하면 스크립트는 일반적인 관리 작업을 수행하거나 로그를 중앙 위치로 보내거나 로그를 일부만 보낼 수 있습니다. 로그 더 이상 사용되지 않는 아카이브로 압축합니다. 나중에 문제를 해결하는 데 시간을 절약할 수 있습니다!
답변2
전투선이나 지원선을 배치하려면 SSH 배너 사용을 고려해야 합니다. 그러나 "su" 명령을 사용하여 사용자 전환 기능을 비활성화할 수 있습니다.
sudo chmod u-s /bin/su
음, sudo 그룹만이 이 작업을 수행할 수 있습니다.
또한 디렉터리의 모든 내용은/etc/skel/새로 생성된 각 사용자에게 복사하고 거기에 몇 가지 별칭과 미리 알림을 추가합니다.