AWS

AWS 230324 기초3 권한

주영재 2023. 3. 24. 12:05

사용자생성과 권한부여, 실행권한

 

 

사용자생성

리눅스도 윈도우처럼 사용자 계정을 만들 수 있고 사용할 수 있다.

 

  • useradd 사용자명 : 계정생성
  • passwd 사용자명 : 비밀번호변경
  • usermod 옵션 사용자명 : 계정변경
  • userdel 사용자명 : 계정삭제

--관리자의 권한이 있어야 한다. sudo useradd 사용자명으로 생성

--sudo passwd 사용자명을 하면 비밀번호 입력하는게 나오는데, 입력하는 내용이 보이지 않는다.

--입력은 되고 있는 거임. 입력하고 enter하면 비밀번호 확인이 나옴. 여기서도 입력하는 내용은 보이지 않음

--둘 다 입력하고 일치하면 successfully!


 

계정 바꾸기

  • su 계정명

--su 계정명을 하면 비밀번호 입력하는 칸이 나온다. 마찬가지로 입력하는 내용은 보이지 않음. 입력하고 enter 하면 됨.

--만든 계정으로 su하면 $만 나온다. 모든 명령문 사용가능.

 


사용자의 확인은 etc폴더에서 확인할 수 있다.

  • cat /etc/passwd 로 확인가능 (시스템식별번호:그룹번호)
  • cat /etc/group 로 그룹번호 확인가능
  • cat /etc/sudoers 로sudo권한 확인가능(추가가능)

 

 

su ubuntu를 하고

 

ls -al에서 보면

home 앞에 root root 가 있다. 이 뜻은 (앞에) root가 주인이며 (뒤에)관리할 수있는 건 root 만 가능하다는 뜻.

즉 home에서 mkdir을 할 수가 없다. root계정으로 접근하거나 sudo로 권한을 빌려야 함.

 

 

 

home에서 폴더 만들고, 생성한 계정으로 변환한 뒤, home에서 만든 폴더 위치로 이동했을 때

->아무것도 할 수가 없다. 권한이 없기 때문.

 

 


sudo chown(change owner)

 

sudo chown 옵션 소유자:소유그룹 디렉터리경로

-소유자와 소유그룹은 보통 똑같이 맞춘다.

 

옵션

-R : 하위폴더의 모든소유권을 리컬시브로 하게 변경한다.

 

이때도 root 권한을 빌려야 함(sudo)

 

이러고 상위폴더에서 ls -la를 하면 사용자와 권한이 바뀐 걸 확인할 수 있다.

이제 계정변환하고 해당폴더로 가면 모든 작업을 하는 것이 가능해진다.


실행파일과 실행권한 chmod

유저를 생성하고, 비밀번호를 등록하고, 폴더를 생성하고, 권한부여는 반드시 순서대로.

명령문으로 하나하나 작성해도 되지만, 순차적인 명령문을 실행시키는 대표적인 파일로 쉘 스크립트가 있다.

쉘스크립트를 통해 실행 파일을 만들고 순차적으로 실행해 줄 수 있다.

 

 

쉘 스크립트

쉘스크립트는 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch)파일이다.

운영체제의 Shell을 이용하여 한줄씩 순차적으로 읽으면서 명령어들을 실행시켜주는 인터프리터 기반 프로그램 실행파일이다.

쉘 파일은 변수, 제어문도 사용할 수 있다.

확장자는 .sh이다.

 

쉘 스크립트의 규칙

맨 앞에 쉘로 동작한다는 내용을 적어줘야 한다.

#!/bin/sh

 

 

쉘 스크립트 ex)

su ubuntu-> cd /home/계정명 ->vi createUser.sh 로 vi를 이용해서 파일 만듦

 

#!/bin/sh

useradd user01

passwd user01

mkdir /home/user01

chown user01:user01 /home/user01

echo "create user : user01"

tail -n5 /etc/passwd

하고 :wq로 저장.


실행시키기

 

sudo ./createUser.sh

./=>실행파일은 리눅스 환경변수 경로에 등록되어 있다면 먼저 실행되기 때문에 보통 실행파일 앞에 상대 경로를 표현해준다.

그런데, 이 파일은 실행파일이 아니기 때문에 동작이 되지 않는다.

 

 


 

 

ls -l을 했을 때

앞부분(가령 drwxr-xr-x)의 뜻?

 

d + rwx + rwx +rwx

d는 폴더

 

 

rwx의 의미

rwx = r읽기/w쓰기/x실행. 스위치처럼 켰다 껐다로 동작

rw- : read, write 가능. x가 없다는 건 실행이 불가능하다는 것.

 

  • rwx = 111 (십진수 변환 7)
  • rw- = 110 (십진수 변환 6)
  • r-- = 100 (십진수 변환 4)

 

rwxrwxrwx의 의미?

셋으로 나눈다.

rwx:rwx:rwx 

소유권자:소유그룹권한:다른사람들에 대한 권한

rwxrwxrwx는 십진수로 777

 

 

현재 sh파일의 앞부분은

-rw-rw-r--

폴더아님 110 110 100

십진수로 6 6 4

실행은 전부 불가.

 


실행권한 명령문

chmod 권한이진수합 파일명

ex)chmod 764 ./creatUser.sh

 

이후 파일의 주인은 x권한(실행권한)이 생기고 녹색으로 변경되며, 실행가능해진다.

ls -l로 하면 sh 파일앞부분이 -rwxrw-r--로 변경된다.

 

이제 실행가능해짐.

사실 쉘 파일은 권한이 없어도 실행하는 명령문이 있다.

sudo sh ./createUser.sh를 하면 x권한이 없어도 실행가능하다.


쉘 스크립트 파일은 매개변수를 전달할 수도 있고, 변수,제어문,반복문 등이 사용 가능하다.

 

실행파일 안에서 매개변수의 개수를 $1, $2, $3...으로 표현한다.

실행시킬 때 ./실행파일명 매개변수1, 매개변수2, 매개변수3으로 실행한다.

3개가 나열되면 매개변수가 3개가 전달되는 것.

 

sh파일 코드 수정

#!/bin/sh

useradd $1

passwd $1

mkdir /home/$1

chown $1:$1 /home/$1

echo "create user : $1"

tail -n5 /etc/passwd

 

 

실행

sudo ./createUser 유저명

이제 유저를 생성하고 폴더를 만들고 권한을 부여하는 작업을 한번에 할 수 있습니다!

사실 쉘 스크립트 파일은 제어문 반복문도 많이 쓰는데요. 나중에 작성할 일이 있다면 공부해서 사용하세요.