다음과 같은 파일이 있습니다 hosts
.
host1
host2
host3
host4
.....
이 시스템에는 machinename이라는 로컬 사용자도 있습니다. host1
사용자는 host1
호스트 등에 생성 됩니다.
모든 컴퓨터에서 이러한 모든 사용자 계정을 잠그는 방법이 있습니까?
제가 사용했던 물건이 제대로 작동하지 않는 것 같아요.
pssh -h hosts -l root -i passwd -l hostname |cut -d. -f1
이 명령을 사용하여 각 호스트 이름에 해당하는 각 사용자 계정을 잠그고 싶습니다.
내 말이 무슨 뜻인지 이해하시기 바랍니다.
감사해요!
답변1
HOSTNAME
호스트를 결정하는 변수를 사용하여 원격 호스트에서 명령을 빌드합니다 .
pssh -h hosts -l root -i 'passwd -l "$(hostname)"'
이는 잠긴 사용자 계정의 이름이 시스템에서 생각하는 이름이라고 가정합니다. SSH 구성에서 별명을 사용하고 컴퓨터의 실제 호스트 이름 대신 명령에서 별명을 사용하려는 경우 또는 호스트 이름이 DNS 호스트 이름과 다른 경우 $PSSH_HOST
대신 사용할 수 있습니다 $(hostname)
. 단, 서버 구성이 다음과 같은 경우에만 가능합니다. 원격 호스트는 환경에서 이를 허용합니다. 이 변수 이름을 전달하지만 많은 시스템에서는 기본적으로 이를 수행하지 않습니다.
답변2
pssh
~/.ssh/config 파일을 읽습니다. OpenSSH 5.6+를 사용하는 경우 구성 파일의 옵션으로 사용자를 지정해야 합니다. %h
OpenSSH 5.6 이상으로 확장될 호스트 이름입니다. 이 코드 조각을 사용하면 항상 호스트 이름으로 명명된 사용자를 사용할 수 있습니다.
host*
User %h
모든 서버에 항상 호스트 이름을 딴 사용자가 있는 경우 다음을 사용할 수 있습니다.
*
User %h
이전 버전의 OpenSSH(업데이트해야 함)를 사용하는 경우 다음을 사용하여 호스트 사용자를 수동으로 지정할 수 있습니다.
host1
User host1
host2
User host2
...