최소근 찾기

최소근 찾기

루트에 대한 액세스를 자동화하고 최소화하는 스크립트를 작성 중입니다. SSH를 통해 시도해보겠습니다. 현재 sedUID 및 GID 0 셸을 /sbin/nologin.

왜 이 일을 해야 합니까? 이렇게 하면 login, gdm, kdm, su, ssh, scp에 대한 루트 권한이 비활성화됩니다 sftp. 루트 권한으로만 실행하려고 합니다 sudo. 루트 액세스를 최소화하기 위한 제안 사항을 알고 있다면 그것도 제안해 주십시오.

이것이 현재 문제입니다:

grep :0:0: /etc/passwd | sudo sed 's_/bin/bash_/sbin/nologin_' /etc/passwd

내가 현재 하고 있는 일은 그것들을 /bin/bash모두 /sbin/nologin.

답변1

1. sudoer 계정을 만드세요

su -
echo '<YOU>  ALL=(ALL:ALL)  ALL'>>/etc/sudoers
exit

2. 루트 계정 비활성화

sudo usermod --expiredate 1 root

3. 테스트해 보세요

$ su -
Password: <correct password>
Your account is expired.

Debian GNU/Linux에서 테스트됨

답변2

무엇

grep :0:0: /etc/passwd | sudo sed 's_/bin/bash_/sbin/nologin_' /etc/passwd

하다?

  • grep :0:0: /etc/passwduid/gid가 0인 행을 검색하면 일반적으로 STDOUT(표준 출력)에 공급되는 루트가 있는 행을 제공합니다.
  • |grep의 출력은 sudo sed에 제공되며 명령줄에 지정된 파일로 인해 삭제됩니다.
  • sed 's_/bin/bash_/sbin/nologin_' /etc/passwd이는 /etc/passwd의 bash를 STDOUT에 대한 nologin으로 대체하고 /etc/passwd는 변경되지 않은 채로 둡니다.

해보셨나요..?

sudo sed -i '/:0:0:/s_/bin/bash_/sbin/nologin_' /etc/passwd

관련 정보