이제 서버에서 학생들이 접속할 수 있다.
그런데 학생들마다 리눅스 실습을 하기 위해서는 계정이 필요할 것이다.
총 80명의 학생들의 계정을 일일히 adduser 명령어로 생성해줄 수 있겠지만 번거로우므로
Shell script를 사용해서 한 번에 80명 학생들의 계정과 패스워드를 만들어 주도록 하자!
1. 학생들의 학번 정보를 엑셀로 다운 받는다.
어떤 학교든 이 시스템이 구축되어있을 것이며 필자 또한 이 시스템에서 수강 학생들의 정보를 다운 받을 수 있었다.
엑셀을 잘 몰라서 파이썬의 판다스를 이용해 이 엑셀파일의 학번을 제외한 나머지 컬럼들은 삭제하였다.
그리고 이 엑셀파일을 다시 txt파일로 변환해주었다.
이 txt파일에는 앞에 알파벳 한글자 + 학번 이렇게 저장했고 이 파일은 결국 리눅스 계정을 생성하기 위해서 만들었다.
아래 블로그를 참고하면 좋을 것 같다.
https://hanabi43.tistory.com/4
2. Shell Script를 이용해 txt파일에 있는 학생 학번을 불러와 계정과 패스워드를 생성한다.
계정 생성하는 쉘스크립트
#!/bin/sh
PASS = "1234" // 모든 유저의 패스워드를 1234로 변경
while read line
do
#useradd -d /home/$line $line
useradd $line # user 생성
echo "$line:1234" | chpasswd
tail -n2 /etc/passwd
mkdir /home/$line # user의 home 디렉토리 생성
chown $line:$line /home/$line # user의 홈 디렉토리 소유자를 user로 설정
chmod 700 /home/$line # 접근 권한 설정
echo $line
done < user_list.txt # userID가 되는 목록이 있는 텍스트 파일
학생들이 home안에 있는 자신의 계정 폴더 이외에
다른 학생의 폴더에 접근하는 것을 막기위해
소유자 설정 (chown), chmod 명령어를 이용해 접근권한을 설정하였다.
계정을 삭제하는 쉘 스크립트
#/bin/bash
while read line
do
userdel -r $line #userlist로 읽어온 user들을 모두 삭제
echo $line
done < userlist.txt
다음과 같이 유저를 생성했고, 이 유저들은 각각의 유저이름으로 된 폴더의 rwx 권한을 가지고 있다.
3. WSL2는 내 컴퓨터와 마운트 되기 때문에 학생들이 이곳에 접근하지 못하도록 접근권한을 변경해주어야한다.
WSL2는 내 윈도우 컴퓨터의 파일시스템과 리눅스 파일시스템을 왔다갔다 할 수 있다.
내 윈도우 컴퓨터의 파일시스템의 경로는
/mnt
이며
리눅스 파일 시스템의 경로는
/home
이다.
mnt의 root로 변경 (원래 root일 수도 있다)
후 chmod 700 명령어를 이용해서 root 사용자만 mnt 폴더를 접근할 수 있도록 하였다.
'네트워크 > 리눅스' 카테고리의 다른 글
외부에서 WSL2 접속하기 (feat. 포트포워딩) (0) | 2023.10.12 |
---|---|
Ubuntu 22.04 LTS 버전에서 cuda 설치가 안될 때 (0) | 2023.10.12 |
리눅스 실습 서버 만들기 - part1. 윈도우에서 wsl로 우분투 리눅스 서버 생성 (0) | 2023.08.03 |
wsl2 에서 리눅스 여러개 사용하기 (0) | 2023.04.14 |
맥(MacOS)에서 virtualbox 우분투 ssh로 접속하기 (0) | 2021.11.26 |