AWS 230324 기초3 권한
사용자생성과 권한부여, 실행권한
사용자생성
리눅스도 윈도우처럼 사용자 계정을 만들 수 있고 사용할 수 있다.
- 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 유저명
이제 유저를 생성하고 폴더를 만들고 권한을 부여하는 작업을 한번에 할 수 있습니다!
사실 쉘 스크립트 파일은 제어문 반복문도 많이 쓰는데요. 나중에 작성할 일이 있다면 공부해서 사용하세요.