Post

사용자 계정에 루트 권한 주기

방법

생성할 계정명은 일단 usertest 로 설정함.

usertest 홈디렉토리 생성

1
2
mkdir /home/usertest
useradd -d /home/usertest

/etc/passwd 파일 수정

1
2
3
4
5
6
7
8
vim /etc/passwd

유저명:x:0:0:유저명:홈디렉토리_경로:쉘경로

# zsh 이용
usertest:x:0:0:usertest:/home/usertest:/bin/zsh
# bash 이용
usertest:x:0:0:usertest:/home/usertest:/bin/bash

/etc/group 그룹권한 수정

1
2
3
4
5
vim /etc/group!

유저명:x:0:

usertest:x:0:

계정 패스워드 설정

1
2
3
4
5
6
7
passwd usertest

또는
su - usertest
passwd

yes 'test1212!' | passwd usertest

이후 ssh 등을 통해 로그인, 홈디렉토리 정상적으로 잡히는지, root권한인지 확인

1
2
3
4
5
6
echo $USER
-> usertest
whoami
root
id
uid=0(root) gid=0(root) groups=0(root)

해당 내용을 정리한 쉘 스크립트이다.

아래 USERNAME, PASSWORD, SHELL_PATH, 변수만 적절히 바꾸어 계정을 생성하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

USERNAME=usertest
PASSWORD="test1212!"
SHELL_PATH=/bin/bash

is_exist=`cat /etc/passwd | grep "^$USERNAME:"`
if [[ $is_exist != "" ]]; then
	echo "user name exist"
	exit
fi

HOME_PATH=/home/$USERNAME
if [ ! -d $HOME_PATH ]; then
	mkdir $HOME_PATH
else
	echo "home directory exist"
fi
# useradd
useradd $USERNAME -d $HOME_PATH

# /etc/passwd change
sed -i "s#^$USERNAME:x:.*#$USERNAME:x:0:0::$HOME_PATH:$SHELL_PATH#" /etc/passwd

# /etc/group change
sed -i "s#^$USERNAME:x:.*#$USERNAME:x:0:#" /etc/group

# password setting
yes $PASSWORD | passwd $USERNAME
This post is licensed under CC BY 4.0 by the author.