/etc/passwd 파일에서 /bin/bash를 /bin/false로 바꾸기

/etc/passwd 파일에서 /bin/bash를 /bin/false로 바꾸기

시스템에서 사용자를 비활성화하는 프로그램을 작성 중입니다 /bin/bash./bin/false.

xxx:x:1:22:xx:/export/home/xx:**/bin/bash**

교체하다

xxx:x:1:22:xx:/export/home/xx:**/bin/false**

bash 스크립트를 사용하고 싶습니다.

이를 수행하는 한 가지 방법은 sed. 하지만 저는 정규 표현식을 잘 못합니다.

누구든지 도와줄 수 있나요?

답변1

sed음 , 정규 표현식 으로는 전혀 작업을 수행하지 않습니다 . 당신이하는 일은 프로그램을 사용하는 것입니다chsh사용자의 쉘을 변경합니다.

chsh -s /bin/false username

대안적으로:

usermod -s /bin/false username

실제 쉘로 교체하려면 해당 쉘이 에 나열되어 있는지도 확인해야 합니다 /etc/shells.

답변2

chsh항상 이용 가능한 것은 아니니 참고해주세요 ! ~에알파인예를 들어 Linux 또는 다음을 사용하는 임베디드 시스템비지박스..

간단한 인라인 sed명령:

sed -i '/www-data/s/false/sh/g' /etc/passwd

(이 예는 쉘을 다음에서 변경합니다./빈/거짓에게/bin/sh사용자를 위한www-데이터)

관련 정보