개키우는개발자 : )

Linux(Unix) 인자를 이용한 스크립트 파일로 변경하기 본문

Linux/Linux 무작정 따라하기

Linux(Unix) 인자를 이용한 스크립트 파일로 변경하기

DOGvelopers 2019. 2. 12. 18:32
반응형

인자를 이용한 스크립트 파일로 변경하기



-adduser 파일을 /home/dogveloper/bin 디렉토리로 이동


mv ./adduser ~/bin 


현재 위치의 adduser파일을 bin 폴더로 이동 시켰습니다.



파일 이동 이미지파일 이동



cat adduser


adduser 파일은 고정값으로 testuser 라고 지정이 되어 있어 유저 이름이 들어가야 할 곳을 유동적으로 인자 값으로 받아 처리하면 adduser 추가할유저 방식으로 입력하여 사용자를 등록 할 수 있도록 파일을 수정 해야 한다.


파일 내용 보기 이미지파일 내용 보기



nano adduser


useradd 스크립트 에선 1개의 인자가 필요하기 때문에 $1 이라고 입력한다. 인자 값이 여러개면 $1,$2 방식으로 인자를 더 받을 수 있다. testuser가 작성되어있던 곳에 $1 로 바꿔준다.



변경된 파일 이미지변경된 파일



adduser aaa


aaa 라는 유저 아이디를 인자값으로 adduser 파일에 넘겨 준다. 하지만 여기서 또 문제가 발생한다.

오로지 root 권한 만 실행 되기 때문에 sudo 를 붙인다.



sudo adduser aaa


이번엔 sudo를 입력하고 생성한다 .. 하지만 또 문제가 발생한다.

우리가 만든 스크립트가 실행 되는 것이 아니라 기존에 있는 adduser 파일이 실행된다.


이유


파일 실행 순서가 $PATH 를 보면 제일 앞에 부터 순차적으로 adduser 파일을 찾아 실행 시키는데.

sudo 를 붙이고 실행하면 sudo의 $PATH 는 /usr/localsbin: ->->->을 순차적으로 즉 sudo PATH 값 순서대로 파일을 실행시킨다. 그래서 앞에 sudo 가 붙으면 파일을 찾는 순서가 달라지기때문에 기존에 sudo PATH에 같은 이름의 파일이 있다면 우리가 만든 파일보다 먼저 선 실행 시킨다.



파일 실행 문제점 이미지파일 실행 문제점



sudo /home/dogveloper/bin/adduser bbb


그렇기 때문에우리가 만든 adduser 파일이 실행될 수 있도록  절대경로를 입력하여 실행 시킨다.

우리가 만든 bbb라는 디렉토리가 home 디렉토리에 만들어진것을 확인 할 수 있다.


절대경로를 이용한 user등록 이미지절대경로를 이용한 user등록




출처[뉴렉처] 유튜브 채널

https://www.youtube.com/watch?v=lUOswaQavLY&list=PLq8wAnVUcTFU9zLWK-dHWrvTJ0PF8Y0Sf&index=29

반응형
Comments