본문 바로가기

Server

[Linux] 유저 생성부터 그룹에 추가, 소유권 변경, bash shell 설정까지

root 로그인

$ sudo -i

여기서부터는 root에서 작업한다고 가정한다.

유저 추가

$ useradd [username]

유저 홈 디렉토리 변경

$ usermod -d [newhome] [username]

유저를 그룹에 추가

$ usermod -a -G [group] [username]

유저 비밀번호 변경

$ passwd [username]

유저 변환

$ su [username]

변환과 동시에 설정한 홈 디렉토리로 이동

$ su - [username]

 

Bash 설정 추가

첫 접속시 아래와 같이 뜨게 된다.

$ -bash-4.2$
$ cat /etc/default/useradd

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE= 
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

HOME=/home
: 사용자를 처음 생성했을 때 해당 계정의 홈 디렉토리를 지정

SKEL=/etc/skel
: 사용자를 처음 생성했을 때 해당 계정의 홈 디렉토리에 기본으로 들어가는 파일을 지정

참고

 

홈 디렉토리에서 숨겨진 파일까지 보기위해 아래 명령어를 실행하면 아무파일도 나오지 않는다.

$ ls -al
.
..

 

나는 홈 디렉토리를 /data2/home/[username] 으로 변경했기 때문에 /etc/skel 내의 파일이 home에 들어있지 않다. 따라서 복사해서 쓰도록 할 것이다.

 

$ sudo cp -r /etc/skel/. [userhome]

아직 사용자와 그룹 소유권이 모두 root인데,

$ ls -al
total 16
drwxr-xr-x  3 root root  92 Dec 13 11:19 .
drwxr-xr-x. 5 root root  52 Dec 13 11:06 ..
-rw-r--r--  1 root root  18 Dec 13 11:19 .bash_logout
-rw-r--r--  1 root root 193 Dec 13 11:19 .bash_profile
-rw-r--r--  1 root root 231 Dec 13 11:19 .bashrc
drwxr-xr-x  4 root root  39 Dec 13 11:19 .mozilla
-rw-r--r--  1 root root 658 Dec 13 11:19 .zshrc

둘다 username으로 바꾸도록 한다. (소유권 변경은 root 사용자만 가능) 참고

# [userhome] 디렉터리 이하 모든 파일 및 디렉터리에 대하여 사용자는 [username], 그룹은 [username]으로 소유자 변경
$ sudo chown -R [username]:[username] [userhome]

.bashrc를 적용

$ source .bashrc

 

+ 쉘 프롬프트 설정

쉘에 이모티콘 넣기

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

PS1='$(if [[ $? == 0 ]]; then printf "\xF0\x9F\x8E\x85"; else printf "\xF0\x9F\x94\xA5"; fi)\[\e[0m\] [\u@\h] \w $ '

쉘 프롬프트에 이모티콘을 넣는 법은 위와 같이 PS1 변수에서 설정할 수 있으며, $? 는 가장 최근에 실행된 명령의 종료 상태를 의미한다. 값이 0이면 성공, 아니면 실패이다.

따라서 첫 번째 자리에 성공시 이모티콘 값과, 두 번째 자리에 실패시 이모티콘 값을 넣어준다. 나는 여기에서 산타와 불 이모티콘을 사용했는데, Bytes 에 해당하는 부분에 위의 코드처럼 \x를 붙여주면 된다.