-> XServer에서 root 계정으로 로그인
sudo su - root+password
-> 기본세팅을 multi-user.target에서 graphical.target로 변경
cd /lib/systemd/system->ls -l default.target
->ln -sf multi-user.target graphical.target
init 0: 종료 후 재실행
: 우분투에서 사용 가능한 에디터는 nano, gedit, emacs, vi, vim(vi improved) 등이 있다.
: 명령모드로 파일 안에서 하고 싶은 작업을 선택한 후 작업
- 그냥 들어오면 입력모드가 아닌 명령모드이다.
- 명령모드에서는 방향키를 이용해서 위치를 움직이게 할 수 있고 쓰거나 지울 수 있다.

: 명령어를 입력하고 엔터를 쳐서 해당 명령을 수행하는 모드
/문자열 Enter: 해당 문자열을 찾음(현재 커서 이후로):w: 문서 저장하기:wq: 저장하고 닫기: 숫자: 지정한 라인넘버로 이동:e 파일명: 파일 새로 열기
n: 찾은 문자 중에서 다음 문자로 이동:q: 현재 문서 닫기:q!: 저장하지 않고 닫기:vs:세로로 창 분할:%s/old/new/g: old라는 문자열을 new로 치환
:set number
- 저장해놨던 문서를 번호를 붙여 순서대로 나열
: 여러가지 단축키를 통해 문서의 내용을 수정하고 편집하는 모드
->vi text: 명령모드에서 입력모드로 전환
-> 명령모드에서 삭제, 복사, 붙여넣기 관련 키
- x : 현재 커서가 위치한 한 단어 삭제 <-> u : 이전으로 되돌리기 (Undo)
dd: 현재 커서의 행 삭제yy: 현재 커서가 있는 행을 복사p: 복사한 내용을 현재 행 이후에 붙여넣기>: 들여쓰기.: 이전 명령어를 다시 실행
X: 현재 커서가 위치한 앞 글자 삭제숫자 dd: 현재 커서부터 숫자만큼의 행 삭제숫자 yy: 현재 커서로부터 숫자만큼의 행을 복사P: 복사한 내용을 현재 행 이전에 붙여넣기Ctrl + r: 되돌린 것 다시 실행하기 (Redo)<: 내어쓰기cw: 단어 잘라내기
: 키보드로 입력하는 모든 글자를 문서로 입력하는 모드
-> 명령모드에서 입력모드로 전환 ( 무조건 하나는 입력 후 실행 )
i: 현재 커서의 위치부터 입력(I) (i = INSERT)a: 현재 커서의 위치 다음 칸부터 입력(A)o: 현재 커서의 다음 줄에 입력(O)s: 현재 커서 위치의 한 글자를 지우고 입력(S)
I: 현재 커서 줄의 맨 앞에서부터 입력 (Shift + I)A: 현재 커서 줄의 맨 마지막부터 입력 (Shift + A)O: 현재 커서의 이전 줄에 입력 (Shift + O)S: 현재 커서의 한 줄을 지우고 입력 (Shift + S)
-> 명령모드에서 커서를 이동하기 위한 키
h: 커서를 왼쪽으로 한 칸 이동
k: 커서를 위로 한 칸 이동
ctrl + F Page down: 다음 화면으로 이동
^ Home: 현재 행의 처음으로 이동
gg: 제일 첫 행으로 이동
숫자G: 해당 숫자의 행으로 이동
j: 커서를 아래로 한 칸 이동
l: 커서를 오른쪽으로 한 칸 이동
Ctrl + B page up: 이전 화면으로 이동
$ End: 현재 행의 마지막으로 이동
G: 제일 끝 행으로 이동
:숫자 Enter: 해당 숫자의 행으로 이동
-> 명령모드 /단어 : 해당 단어로 커서가 옮겨진다.
: 기본적인 편집 기능 위에 잘라내기나 붙이기 정도의 기능이 제공되는 편집기
- vi를 편하게 쓰지해서 나온 것이다.
: X윈도 모드에서만 사용가능한 GUI버전 편집기
: 사용자가 많은 부분을 설정하고 변경할 수 있는 편집기
- 사용자가 많은 부분을 설정하고 변경할 수 있는 편집기
• vim과 같이 기능이 강력하지만 단축키가 많고 Lisp라는 언어를 알아야 함
/etc/passwd : 계정정보
: 시스템에 존재하는 모든 사용자 정보가 저장되어 있는 파일
- 수정 root(관리자)만, 읽기는 누구나 가능하다.
root : X : 0 : 0 : root : /root : /bin/bash 사용자명:암호:사용자ID:사용자가 소속된 그룹ID:추가정보:홈디렉터리:기본셸정보
/etc/group : 그룹정보
: 시스템에 존재하는 모든 그룹 정보다 저장되어 있는 파일
- 수정 root(관리자)만, 읽기는 누구나 가능하다.
root : X : 0 : 그룹이름:그룹비밀번호:그룹ID :그룹에속한사용자이름
/etc/shadow : 비밀번호 정보
: 리눅스의 계정의 패스워드 정보를 담고 있는 파일
- root 계정 이외의 계정은 읽을 수 없고 접근 불가능
사용자명:해싱알고리즘:salt값:해싱된비밀번호:마지막변경날짜:최소사용일수:최대사용일수:만료전경고일수:비밀번호만료후유예기간:계정의만료기간
- 해싱알고리즘 : 비밀번호 암호화 방식 (SHA-256, SHA512 방식)
- salt값 : 소금을 친다! 각 해쉬에 첨가할 랜덤값으로 비밀번호 생성 시 salt값을 첨가
- 해싱된비밀번호 : 해싱알고리즘 + salt 값을 통해 암호화된 비밀번호.
- 마지막변경날짜 : 1970년 1월 1일 기준으로 비밀번호를 변경한 후 지난 날짜를 일수로 표시
- 최소사용일수 : 패스워드의 최소 사용기간 설정으로 패스워드를 변경한 이후 최소 이 기간은 사용해야한다는 것을 의미
- 최대사용일수 : 마지막 패스워드 변경 이후 만료일수
- 만료전경고일수 : 패스워드 만료 이전에 경고할 일수
- 비밀번호만료후유예기간 : 패스워드가 만료된 이후에 계정이 잠기기 전까지 비활성 일수. 해당 비활성 기간동안에 패스워드를 변경해야 계정이 잠기지 않음
- 계정의만료기간 계정 만료일 : 1970년 1월 1일 기준으로 일수로 표시
adduser
: 새로운 사용자를 추가함.
#adduser [사용자명]
- 홈디렉터리들이 다 모이게 된다.
useradd
: 홈디렉토리생성x, bash등 환경설정 x, 데몬 서비스 등을 위해 존재함
useradd는 이름만 만들어지고 집이 없다. 껍데기다.
passwd
: 사용자의 비밀번호를 변경함
#passwd [사용자명]
less /etc/passwd
- root계정이라서 비밀번호 변경이 가능하다.
su testusertestuser계정으로 잠깐 이동한다.
exit로 해당 계정에서 나갈 수 있다.
usermod
: 사용자의 속성을 변경
usermod -l [변경 할 계정명] [원래계정명]
--shell: 사용자의 기본 셸을 변경usermod --shell /bin/cshuser1
--groups: 사용자의 보조 그룹 설정usermod --groups ubuntu user1
-l: 사용자의 계정명을 변경usermod -l newUser oriUser
deluser / userdel
: 사용자를 삭제. userdel은 홈 디렉토리 및 환경 설정 삭제x
deluser은 환경설정까지 삭제가 된다.#userdel [사용자명] #userdel -r [사용자명](=> 사용자를 삭제하면서 홈 디렉터리까지 삭제)
groups
: 사용자가 소속된 그룹을 출력
#groups #groups [사용자명]
addgroup / groupadd
: 새로운 그룹 생성. groupadd는 자동화 및 스크립팅을 위해서 사용
#groupadd [옵션] [그룹명]
--gid [gid]: 그룹을 생성하며 그룹 ID를 지정groupadd --gid 2222 group1
groupmod
: 그룹의 속성을 변경
#groupmod [옵션] [그룹명]
-g [gid]: 지정한 gid로 그룹의 ID를 변경groupmod -g 1111 group1
-n [새이름] [기존이름]: 지정한 name으로 그룹명을 변경한다.groupmod -n group2 group1
delgroup / groupdel
: 그룹을 삭제 (해당 그룹을 주 그룹으로 지정한 사용자가 없어야 함)
#groupdel [그룹명]
gpasswd
: 그룹의 암호를 설정하거나 그룹 관리를 수행
#gpasswd [옵션] [사용자명] [그룹명]
< example >
gpasswd [그룹명]: 그룹의 암호를 설정gpasswd group1
-A [사용자명] [그룹명]: 사용자를 그룹의 관리자로 지정(Admin) gpasswd -A user1 group1
-a [사용자명] [그룹명]: 사용자를 그룹의 사용자로 추가(add) gpasswd -a user1 group1
-d [사용자명] [그룹명]: 사용자를 그룹의 사용자에서 제거(delete) gpasswd -d user1 group1
-r [그룹명]: 그룹의 암호를 제거gpasswd -r group1
-> 그룹 추가 : groupadd
-> 생성한 그룹명 변경 : groupmod -n ...
-> 그룹 삭제 : groupdel
-> 그룹에 사용자 추가 : gpasswd -a
-> 그룹에서 사용자 삭제 : gpasswod -d
chage
: 사용자의 암호 변경 주기를 설정
#change [옵션] [일자] [유저명]
< example >
-l [유저명]: 사용자에 설정된 사항 확인 ->chage -l user1
-m [일자] [유저명]: 사용자에 설정한 암호를 사용해야 하는 최소 일자
chage -m 2 user1(변경 후 최소 2일은 사용해야 함)
-M [일자] [유저명]: 사용자에 설정한 암호를 사용해야 하는 최대 일자
chage -M 10 user1(변경 후 최대 10일 사용가능)
-E [날짜] [유저명]: 사용자에 설정한 암호가 만료되는 날짜chage -E 2025/10/10 user1(2025/10/10까지만 사용가능)
-W [일자] [유저명]: 사용자에 설정한 암호가 만료되기 전에 경고하는 기간
chage -W 10 user1(암호가 만료되기 10일전부터 경고메세지가 나옴. 기본값은 7)
-> 사용자 암호 변경 주기 변경 후 조회
chage -l japan: 조회
< 응용 문제 >
# adduser korea # passwd korea -> test1 # addgroup japan # gpasswd -a korea japan # usermod -l japan korea # addgroup koreait # gpasswd -a japan koreait # gpasswd koreait -> linux # chage -m 30 japan # chage -M 90 japan # chage -W 10 japan (chage -l japan : 확인) # groupdel japan # groupdel koreait