Bash 스크립트 - Ubuntu Linux에서 온보딩 사용자를 자동화하는 방법
4120 단어 automationlinuxbeginnersbash
사례 연구
귀하가 회사의 시스템 관리자이고 귀하의 조직에서 방금 100명의 개발자를 고용했다고 상상해 보십시오. 귀하는 이러한 신입 직원을 온보딩하는 임무를 받았습니다. 각 직원은 다음을 갖추어야 합니다.
이 작업을 수행하기 위해 bash 스크립트를 작성했습니다. 이 스크립트는 여러 사용자가 사용할 수 있습니다. csv 파일(수천 명의 사용자가 있을 수 있음)을 읽고 스크립트에 명시된 매개변수를 기반으로 새 사용자/직원을 생성합니다.
#!/bin/bash
userfile=$(cat names.csv)
PASSWORD=password
위의 스니펫은 스크립트를 소개합니다.
#!/bin/bash
는 스크립트를 해석하는 방법과 bash 인터프리터의 위치를 컴퓨터에 알려줍니다. userfile
는 이름이 csv 파일인 names.csv(직원 이름 포함)를 읽는 변수(다른 이름을 사용할 수 있지만 스크립트의 변수 이름과 일관성을 유지해야 함)입니다. PASSWORD
는 password
를 값으로 유지하는 변수입니다. 이것은 모든 신입사원의 기본 비밀번호입니다.아래의 다음 코드 스니펫은 이 스크립트를 실행하는 사용자에게 루트 권한이 있는지 확인합니다. 현재 사용자 ID가 0인지 확인합니다(루트 사용자 기본 ID 값이 0이므로).
if [ $(id -u) -eq 0 ]; then
다음으로 for 루프를 사용하여 사용자 이름이 시스템에 이미 존재하는지 확인합니다.
user
는 csv 파일을 통해 반복되는 변수입니다. 존재하는 경우 존재한다고 알려줍니다. for user in $userfile;
do
echo $user
if id "$user" &>/dev/null
then
echo "User Exist"
else
스크립트는 홈 디렉토리에 사용자를 생성하고 스크립트를 실행하기 전에 생성했어야 하는 개발자 그룹에 각 사용자를 추가합니다.
useradd -m -d /home/$user -s /bin/bash -g developers $user
echo "New User Created"
echo
이 다음 스니펫은 사용자 홈 디렉토리에 ssh 폴더를 만듭니다.
su - -c "mkdir ~/.ssh" $user
echo ".ssh directory created for new user"
echo
ssh 디렉토리에 대한 사용자 권한을 설정합니다. 700은 - 발급 사용자가 여전히 전체 액세스 권한을 가지고 있는 동안 다른 사용자의 액세스로부터 디렉터리를 보호함을 의미합니다.
su - -c "chmod 700 ~/.ssh" $user
echo "user permission for .ssh directory set"
echo
이렇게 하면 공개 키가 저장되는 위치가 되는 인증 키 파일이 생성됩니다.
su - -c "touch ~/.ssh/authorized_keys" $user
echo "Authorized Key File Created"
echo
키 파일에 대한 권한을 설정해야 합니다. 권한 600은 소유자가 파일에 대한 전체 읽기 및 쓰기 액세스 권한을 가지며 다른 사용자는 파일에 액세스할 수 없음을 의미합니다.
su - -c "chmod 600 ~/.ssh/authorized_keys" $user
echo "user permission for the Authorized Key File set"
echo
서버에서 사용자의 공개 키를 만들고 설정해야 합니다. 이 예에서는 한 세트의 공개 키와 개인 키를 사용했지만 사용자의 사용 사례는 다를 수 있습니다. 참고 Shell은 스크립트를 실행하기 위해 모든 파일(name.csv, 공개 키 및 스크립트 파일)을 보관하기 위해 생성된 디렉토리일 뿐입니다.
이 스크립트는 생성한 공개 키를 새 사용자의 디렉토리에 복사하고 이름을 authorized_keys로 지정합니다.
cp -R "/home/ubuntu/Shell/id_rsa.pub" "/home/$user/.ssh/authorized_keys"
echo "Copyied the Public Key to New User Account on the server"
echo
echo
echo "USER CREATED"
이 코드 줄은
password
라는 암호를 생성합니다. 처음에 PASSWORD
변수 선언을 기억하세요. -e $user
사용자가 다음에 로그인할 때 암호를 변경하도록 강제합니다.sudo echo -e "$PASSWORD\n$PASSWORD" | sudo passwd "$user"
sudo passwd -e $user
fi
done
else
echo "Only Admin Can Onboard A User"
fi
전체 스크립트는 완료될 때까지 csv 파일의 각 이름을 반복합니다.
전체 데모 및 스크립트는 내Github를 확인하십시오.
결론
반복 작업의 자동화는 대부분 항상 생산성을 높이고 효율성을 높이며 오류를 줄입니다.
이것이 누군가를 돕기를 바랍니다.
의견에 팁, 질문, 수정 사항을 자유롭게 공유하십시오!
읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(Bash 스크립트 - Ubuntu Linux에서 온보딩 사용자를 자동화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/oayanda/bash-scripting-how-to-onboard-multiple-users-on-ubuntu-linux-in-aws-ec2-4lae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Bash 스크립트 - Ubuntu Linux에서 온보딩 사용자를 자동화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/oayanda/bash-scripting-how-to-onboard-multiple-users-on-ubuntu-linux-in-aws-ec2-4lae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)