본문 바로가기
Linux/Shell script

linux user/folder 생성/권한 부여 및 계정 전환 Shell script

by 개폰지밥 2021. 9. 1.
반응형

user_folder_create.sh
0.00MB
1_user_folder_create.sh
0.00MB

앞에 1_이 붙은게 version1 스크립트이다.

 

# 유저/폴더 생성, 권한 및 계정 전환 쉘 스크립트

version1version2가 있다.

차이점은 version2는 생성하고 싶은 user명을 받는다. 즉 생성하고 싶은 user명을 마음대로 입력하면 자동 생성된다.

version1은 생성하고 싶은 user명을 쉘 스크립트상에 입력해야 한다. (자세한 설명은 아래)

먼저 version2부터 소개한다.

 

version2

생성하고 싶은 user명을 입력하면, user가 생성되고, 생성된 user명으로 폴더 하나가 생성된다.

아래와 같은 script를 저장하기 위해 script 폴더 생성하는 쉘 스크립트도 포함되어 있지만, 삭제하여도 무방하다.

=> mkdir script 부분

vi user_folder_create.sh
구현하고 싶은 내용 구현 아이디어 내기
User 생성 및 폴더 생성 및 권한주기
생성된 user로 계정 전환
계정명, 폴더명을 받아 생성
쉘 스크립트 내용
#!/bin/bash
#user create
echo -n "Enter you wanna create user name: "
read USER_NAME
groupadd $USER_NAME
useradd -g $USER_NAME $USER_NAME
passwd $USER_NAME
echo "user added finish"
 
#user folder create
echo "folder create start"
cd /home/$USER_NAME
mkdir $USER_NAME
cd $USER_NAME
chown -R $USER_NAME:$USER_NAME .
echo "folder create finish"
mkdir script
cd ..
 
# 계정전환
echo "user change"
echo -e "\033[47;31m you should locate was and script file on folder \033[0m"
 
su - $USER_NAME
결과
[root@localhost script]# ./user_folder_create.sh
Enter you wanna create user name: postgres
postgres 사용자의 비밀 번호 변경 중
  암호:
잘못된 암호: 암호에 어떤 형식으로 사용자 이름이 포함되어 있습   니다
  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
user added finish
folder create start
folder create finish
user change
 you should locate was and script file on folder
마지막 로그인 실패:   8 31 21:25:58 KST 2021 일시 pts/0
마지막 로그인 후 799 번의 로그인 시도가 실패하였습니다.
[postgres@localhost ~]$ exit

기타사항
없음.
그 밖에 알아두면 좋은 사항
l  사용자계정 지우기
[root@localhost ~]# userdel -r fido // -r 옵션까지 사용해야 홈디렉토리 까지 삭제된다.

l  실행권한주기
쉘 스크립트를 실행하기 앞서 아래 명령어로 실행 권한을 미리 줘야한다.
[root@localhost script]# chmod +x user_folder_create.sh

| 쉘 스크립트 문법
read : 표준입력에서 입력 받아 변수에 할당

 

version 1

user, group명을 fido로 했지만, 다른 이름으로 변경 가능하다. (즉 빨간 부분 자신에 맞게 변경가능)

폴더명을 MagicFIDO와 script로 하고 생성했지만, 다른 이름으로 변경 가능하다.

이름을 변경 후에는 권한과 이동 등 다른 명령어에도 적절하게 변경해준다.

vi user_folder_create.sh
구현하고 싶은 내용 구현 아이디어 내기
User 생성 및 폴더 생성 및 권한주기
생성된 user로 계정 전환
중요한 문구에 색깔 넣기.
쉘 스크립트 내용
#!/bin/bash
#user create
echo "user create start"
groupadd fido
useradd -g fido fido
passwd fido
echo "user added finish"
 
#fido folder create
echo "folder create start"
cd /home/fido
mkdir MagicFIDO
cd MagicFIDO
mkdir script
cd ..
chown -R fido:fido MagicFIDO
echo "fido folder create finish"
 
#fido 계정전환
echo "user change"
echo -e "\033[47;31m you should locate was and script file on folder \033[0m"
 
su - fido
결과
[root@localhost script]# ./user_folder_create.sh
fido user create start
fido 사용자의 비밀 번호 변경 중
  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
fido user added finish
fido folder create start
fido folder create finish
fido user change
 you should locate was and script file on MagicFIDO folder

기타사항
다음에 만들 때는 계정명, 폴더명을 받아 생성하게 만들기
=> version2에서 완성
그 밖에 알아두면 좋은 사항
l  사용자계정 지우기
[root@localhost ~]# userdel -r fido // -r 옵션까지 사용해야 홈디렉토리 까지 삭제된다.

l  실행권한주기
[root@localhost script]# chmod +x user_folder_create.sh

 

# 쉘 스크립트 문법

내부 명령어

내부 명령어 설명
exit 쉘 스크립트 종료
continue For, while, until 등의 반복문에서 사용
진행 중인 작업을 중단하고 반복문 처음으로 이동
break For, while, until 등의 반복문에서 사용
반복을 종료 done 다음 명령 실행
return 쉘 함수 종료 시 결과 값 반환
read 표준입력에서 입력 받아 변수에 할당
expr 수식의 결과 출력

 

echo 문자 색 변경하기

메시지 표시에 문자색을 바꾸거나 반전시키는 등 주의를 끌고 싶을 때

 

사용방법

echo -e \033[31m 표시할 문자열 \033[0m

파라미터 여러 개 나열 할 때는 ;로 나열

30번대가 문자색, 40번대가 배경색입니다.

 

색 지정값

  검정 빨강 초록 노랑 파랑 보라 하늘색 흰색
문자 30 31 32 33 34 32 36 37
배경 40 41 42 43 44 45 46 47

 

사용 예시

ex) 31번은 문자색 빨강, 47번은 배경색 흰색이다

echo -e "\033[47;31m you should locate was file on MagicFIDO folder \033[0m"

반응형

댓글