해결책에 대한 가설이 아닌 목표를 제시하기 위해 질문을 편집했습니다.
- RHEL 기반 배포
- 루트 사용자는 절대 사용되지 않으며 비밀번호는 비밀로 유지됩니다.
실행된 모든 명령이 sudo
기록됩니다 /var/log/secure
. 사용자가 루트로 전환하면 sudo su/sudo -i
세션에서 실행되는 모든 명령이 기록되지 않습니다.
내 목표는 관리자가 하는 일에 집중하는 것입니다.
예
사용자가 다음을 수행하는 경우:
alexis$ sudo visudo # this is logged
alexis$ sudo su # this is logged
root# visudo # this isn't logged since it's run under root
visudo
그러면 명령이 su
사용자에 의해 시작되었지만 alexis
루트에 의해 실행된 것으로 기록됩니다. 그러나 다음 명령은 루트 셸에서 루트로 실행되기 때문에 기록되지 않습니다.
11월 1일 13:28:29 3020m sudo[6906]: 알렉시스: TTY=pts/0; PWD=/홈/알렉시스;사용자=뿌리;명령=/bin/su
간단히 말해서,사용자(관리자)가 루트 쉘로 전환하는 것을 원하지 않습니다.. 누군가 루트 쉘을 실행하려면 루트 비밀번호를 알아야 합니다.
답변1
불가능합니다. 끝까지 읽어주세요. 사용자에게 전체 sudo 액세스 권한이 있는 경우 언제든지 몇 가지 명령을 사용 하거나 sudo -i -u root
자체 스크립트/프로그램을 작성하여 전체 셸 액세스 권한을 얻을 수 있습니다. 이것은 사소한 일입니다. 또한 사용자가 수행한 구성 변경 사항 등을 되돌릴 수도 있습니다. 기본 루트 셸을 .sudo /usr/bin/bash
sudo /usr/bin/{ANY_OTHER_SHELL}
/sbin/nologin
[vagrant@eurolinux8-vbuilder ~]$ sudo chsh root -s /sbin/nologin
Changing shell for root.
chsh: Warning: "/sbin/nologin" is not listed in /etc/shells.
Shell changed.
[vagrant@eurolinux8-vbuilder ~]$ sudo -i
This account is currently not available.
그러나 모든 고급 사용자는 sudo를 통해 "기본" bash 호출을 사용할 수 있습니다.
[vagrant@eurolinux8-vbuilder ~]$ sudo /usr/bin/bash
[root@eurolinux8-vbuilder vagrant]#
따라서 퍼지 액세스는 /usr/sbin/nologin
그리 효율적이지 않습니다.
또한 bash나 다른 쉘 구성에 일부 스크립트를 추가하여 사용자가 로그아웃과 같은 메시지를 root
인쇄하는지 확인할 수도 있습니다. 그러나 다시 한 번 고급 사용자는 자신의 구성을 bash에 사용하거나 지정할 수 Please use sudo
있습니다 . 전체적으로 – 내가 아는 한 이것은 불가능합니다. 일반적으로 httpd와 같은 데몬인 사용자를 사용할 때 특별한 경우(예: PAM 사용)가 있는지도 확인합니다. 하지만 설치 후에는 사용할 수 있습니다 . PAM 기반 솔루션이 있을 수도 있지만 google-fu를 통해 찾을 수 없었습니다. 대화형 액세스를 비활성화하는 데 관심이 있기 때문에 이것도 어렵습니다. 다른 경우(루트에 대한 액세스를 완전히 비활성화하는 경우) 시스템이 벽돌이 되어 복구 모드에서 수정해야 합니다.--norc
--noprofile
httpd
sudo -u apache /usr/bin/bash
하지만 여러분이 더 관심을 가질 수 있는 솔루션이 있습니다. 바로 터미널 로깅입니다.
액세스를 완전히 제한하는 것이 아니라 터미널 기록을 이해하고 싶습니다. 또한 전체 관리자 액세스 권한이 있는 사용자는 자신의 로그를 삭제할 수 있다는 점에 유의해야 합니다. 따라서 만일의 경우에 대비해 rsyslog 또는 다른 로깅 솔루션을 사용하여 다른 서버에 로그를 저장해야 합니다.
RHEL 기반 배포판을 사용하고 있으므로 다음 내용을 읽고 있을 것입니다. https://www.redhat.com/sysadmin/terminal-logging
답변2
변경 사항을 PAM으로 되돌립니다. 당신은 그것들이 필요하지 않습니다.
대신, visudo
편집 파일을 사용하고 및/또는 로 시작하는 줄을 /etc/sudoers
주석 처리하세요 . 이렇게 하면 해당 그룹의 사용자가 이를 사용할 수 없습니다 .%wheel
%sudo
sudo
변경 사항을 작성하기 전에 한 줄을 추가해야 합니다. 그렇지 않은 경우 유효한 루트 비밀번호가 있는지 확인하거나( su
없는 경우 sudo
) 다른 방법을 사용하여 sudo
루트 액세스 권한을 얻으십시오!