

1. 재부팅을 시키는 명령어는?
reboot
2. 해당 명령어의 경로를 확인하는 명령어는?
which reboot
3. 현재 내 위치 확인
pwd
4. 실제 로그인한 사용자 확인 (who -m과 같음)
who am i
5. 명령어 기록 확인
history
6. UID, GID, 소속 그룹 확인
id
7. ls(1P) 매뉴얼 보기
man 1p ls
tree /alice를 수행한 결과
/
ㄴ alice/
ㄴ book/
ㄴ ant/
ㄴ video/
ㄴ bob/
ㄴ comic/
1. 상대경로로 comic 디렉토리로 이동 (현재: /alice/book)
cd ../../bob/comic
2. 메타문자로 원래 위치로 이동
cd -
3. 절대경로로 ant 디렉토리로 이동
cd /alice/book/ant
4. /tmp/로 이동 후에 /root/ 디렉토리로 다시 이동 /tmp/mtest 디렉토리 생성
cd /tmp/
cd
mkdir /tmp/mtest
5. /tmp/mtest 디렉토리 안에 za1~za10 파일과 zb01~zb10 파일과 zc001~zc100 파일을 만드시오.
cd /tmp/mtest
touch za{1..10}
touch zb{01..10}
touch zc{001..100}
6. 모든 파일을 삭제 하는데 za 파일은 [ ], zb 파일은 ?,
zc 파일은 *을 사용하시오.
rm za[1-9] za10
rm zb??
rm zc*
7. /media 디렉토리 안에 document 디렉토리를 만들고 그 안에 Music, Movie, Picture 디렉토리를 각각 만드시오.
그리고 music(00-20).mp3, movie(00-10).avi, picture(0-9).jpg 파일을 생성 후에 이름에 맞추어서 각각 넣으시오.
(document 디렉토리는 하위 디렉토리가 만들어질 때 같이 만들어지도록 하시오.)
mkdir -p /media/document/{Music,Movie,Picture}
touch music{00..20}.mp3
touch movie{00..10}.avi
touch picture{0..9}.jpg
mv music*.mp3 /media/document/Music
mv movie*.avi /media/document/Movie
mv picture*.jpg /media/document/Picture
1. ps -ef 결과를 pfile01에 저장
ps -ef > pfile01
2. ls -R / 결과 값에서 오류 출력 없이 실행
ls -R / 2>/dev/null
3. rpm -qa 중 sh 패턴만 추출
rpm -qa | grep sh
4. /media/document 디렉토리 및 하위 디렉토리의 파일 보기 (절대경로)
ls -R /media/document
5. 현재 위치를 /media/document로 변경
cd /media/document
6. Music 디렉토리를 이용해 /link_music이라는 링크파일 생성
ln -s /media/document/Music /link_music
7. Picture 디렉토리 /tmp/picture로 이동
mv /media/document/Picture /tmp/picture
8. Movie 디렉토리 /tmp/movie로 복사
cp -r /media/document/Movie /tmp/movie
9. 홈 디렉토리 내 document 제거 (확인 없이)
rm -rf ~/document
1. 전체 파일 시스템에서 소유주가 vagrant 사용자의 파일만 검색
find / -user vagrant -type f
2. 사용자의 홈 디렉토리 내 777 권한 파일을 755로 변경
find ~ -type f -perm 0777 -exec chmod 755 {} \;
3. /etc 내 심볼릭 링크 파일만 자세하게 출력 (출력시 확인하고 출력하게끔)
find /etc -type l -ok ls -l {} \;
4. /tmp에서 이름이 big으로 시작하는 파일을 찾아 상세정보 출력
find /tmp -type f -name 'big*' -ls
1. /etc/passwd에서 'nobody' 검색
grep 'nobody' /etc/passwd
2. /etc/login.defs에서 주석 제외 후 new라는 파일로 저장 (주석은 #로 시작)
grep -v '^#' /etc/login.defs > new
3. /root에 fileA, fileB, fileC 생성 후 세로 출력
cd /root
echo -e "fileA\nfileB\nfileC"
4. /etc에서 'root' 단어가 포함된 파일 검색
grep -rl 'root' /etc
5. grep '5..$' datafile 동작방식 설명
6. grep '5..' datafile 동작방식 설명
7. 대소문자 구분 없이 검색
grep -i '단어' 파일
8. /etc/passwd에서 bin 혹은 adm 라는 단어가 있는 줄을 찾는 방법
egrep 'bin|adm' /etc/passwd
1. 파일의 마지막 줄로 이동:
G
2. 줄 복사:
yy
3. 파일의 처음으로 이동:
gg 또는 1G
4. 첫줄에 복사한 내용을 붙여넣기:
P
5. 파일의 라인 넘버 보기:
:set number
6. vim /etc/passwd 를 실행한 결과에서 root 라는 단어를 검색
/root
1. sleep 1000 명령어를 백그라운드로 실행
sleep 1000 &
2. sleep 프로세스를 kill 명령어로 중지
pkill sleep
kill -19 pid
3. sleep 프로세스를 프로세스명으로 다시 작동
sleep 1000 &
pkill -18 sleep
4. sleep 강제 종료
killall -9 sleep
1. vagrant 홈 디렉토리 gzip 압축
tar zcvf vagrant_home.tar.gz /home/vagrant
2. /tmp에 압축 해제
tar zxvf vagrant_home.tar.gz -C /tmp
3. tar 아카이브 내용 보기
tar tvf vagrant_home.tar.gz
/etc/passwd: 사용자 기본 정보 (계정명, UID, GID, 홈, 쉘 등)
/etc/shadow: 암호 정보 (해시, 만료일, 변경일 등)
/etc/group: 그룹 정보 (그룹명, GID, 구성원)
/etc/default/useradd: 사용자 생성 기본값 설정 파일
/etc/login.defs: 추가 기본 설정 (홈 디렉토리 생성 여부 등)
계정명:암호(X):UID:GID:코멘트:홈디렉토리:로그인쉘
예) user01:x:1001:1001::/home/user01:/bin/bash
계정명:암호해시:최종변경일:min:max:warn:inactive:expire:
예) $6$SALT$HASHED_PASSWORD
$6$: SHA-512SALT: 난수값HASH: 입력+salt → 해시 결과useradd [옵션] 계정명
[option]
-u: UID 지정
-g: GID 지정 (기본 그룹)
-G: 보조 그룹 지정 (여러 개 가능)
-d: 홈 디렉토리 지정
-s: 로그인 쉘 지정 (ex: /sbin/nologin)
-c: 코멘트 지정
-m: 홈 디렉토리 생성
-b: 기본 홈 경로 변경
-D: 기본값 확인/수정
vim /etc/default/useradd
또는
useradd -D -b /home1 -s /bin/bash
usermod [옵션] 계정명
[option]
-u: UID 변경
-g: GID 변경
-G: 보조 그룹 지정 (덮어씀)
-aG: 보조 그룹 추가
-d: 홈 디렉토리 변경만
-md: 홈 디렉토리 이동까지
-s: 쉘 변경
-l: 계정명 변경
-L: 계정 잠금
-U: 계정 잠금 해제
userdel [옵션] 계정명
[option]
-r: 홈 디렉토리, 메일함까지 삭제
groupadd -g GID 그룹명
groupmod -g GID 그룹명
groupmod -n 새그룹명 기존그룹명
groupdel 그룹명
passwd 계정명
chage -l 계정명 # 현재 속성 보기
chage -m 10 -M 90 -W 7 계정명 # 최소 10일, 최대 90일, 7일 전 경고
chage -d 0 계정명 # 다음 로그인 시 비번 변경 요구
[option]
-m: 최소 사용일
-M: 최대 사용일
-W: 경고일
-I: 비활성일
-E: 만료일
-d: 최종 변경일
su: 사용자 전환 (환경 일부 유지)
su -: 전체 환경까지 포함한 전환
sudo: 일회성 root 권한 (자기 비번)
sudo -i: root 셸로 전환 (su - root 효과)
sudo를 쓰기 위해서는 wheel 그룹에 포함되어야 함/etc/sudoers에서 wheel 그룹 허용 확인사용자 생성 + 홈 생성: useradd -m user01
기본 홈 경로 변경: useradd -D -b /home1
홈 디렉토리 변경 + 이동: usermod -md /new/home user01
비번 강제 변경 요구: chage -d 0 user01
계정명 변경: usermod -l newname oldname
사용자 삭제 + 홈 제거: userdel -r user01
사용자: user01
UID: 1001
GID: 10
보조그룹: 없음
코멘트: 없음
홈 디렉토리: /home/user01
쉘: /bin/bash
useradd -g 10 user01
사용자: user02
UID: 2000
GID: 2000
보조그룹: wheel
코멘트: user
홈 디렉토리: /home/user
쉘: /bin/sh
useradd -u 2000 -G wheel -c user -d /home/user -s /bin/sh user02
사용자: user03
UID: 3000
GID: 1000
보조그룹: 없음
코멘트: 없음
홈 디렉토리: /home/user03
쉘: /bin/sh
useradd -u 3000 -g 1000 -s /bin/sh user03
사용자: user04
UID: 4000
GID: 4000
보조그룹: 10
코멘트: guser
홈 디렉토리: /home/user04
쉘: /bin/bash
1. 기본 shell /bin/sh로 변경 (vim 사용)
vim /etc/default/useradd
# SHELL=/bin/bash → SHELL=/bin/sh로 변경
:wq
2. 기본 홈 디렉토리 /home1으로 변경
mkdir /home1
useradd -D -b /home1
3. 테스트 사용자 생성 및 확인
useradd testuser01
tail -2 /etc/passwd
1. user01: GID, 보조그룹 변경
usermod -g 1000 -G wheel user01
2. user02: UID, 보조그룹 추가, 코멘트, 홈 이동, shell 변경
usermod -u 1002 -aG adm -c "user02" -md /home/user02 -s /bin/bash user02
3. user03: UID, 그룹, shell 수정
usermod -u 1003 -G 10 -s /bin/bash user03
4. user04: UID, 보조그룹 추가
usermod -u 1004 -aG 2000 user04
5. testuser01 → user05로 이름 및 환경 변경
usermod -l user05 -md /home/user05 -s /bin/bash testuser01
1. user01용 그룹 생성 (GID=1001) 후 지정
groupadd -g 1001 user01
usermod -g 1001 user01
2. user02 GID 변경
groupmod -g 1002 user02
3. user03용 그룹 생성 (GID=1003) 후 지정
groupadd -g 1003 user03
usermod -g 1003 user03
4. user04 그룹 GID 변경
groupmod -g 1004 user04
1. user01의 최소/최대/경고일 설정
chage -m 10 -M 100 -W 10 user01
2. user02는 로그인 시 반드시 비번 변경
chage -d 0 user02
rm -rf /home/user01
cp -r /etc/skel /home/user01
chown -R user01:user01 /home/user01
chmod 700 /home/user01
u+so+tchmod u+s 파일
chmod 4000 파일
chmod g+s 파일/디렉토리
chmod 2000 파일/디렉토리
chmod o+t 디렉토리
chmod 1000 디렉토리
1. 사용자 생성
useradd user01
useradd user02
useradd user03
2. 디렉토리 생성 및 권한 부여
mkdir /ptest
chmod 2777 /ptest # rwxrwsrwx
또는
chmod a=rwx,g+s /ptest
3. user01로 전환 → 파일 & 디렉토리 생성
su - user01
mkdir /ptest/dir01
touch /ptest/file01
dir01과 file01의 소유그룹이 /ptest의 그룹을 따라 root로 되어 있음setgid 디렉토리 효과4. root로 전환 → dir01 설정 변경
exit # root로 돌아옴
groupadd student
chown user01:student /ptest/dir01
chmod 1777 /ptest/dir01
chmod 1777 = rwxrwxrwt5. /ptest/file01에 setuid 권한 부여
chmod u+s /ptest/file01
user01 권한으로 작동함6. user02로 전환 → 하위 항목 생성
su - user02
mkdir /ptest/dir01/dir02
touch /ptest/dir01/file02
student로 상속되는 것을 확인 (setgid 효과)7. user03로 전환 → file02 삭제 시도
su - user03
rm /ptest/dir01/file02 # → 실패 (sticky bit)
dir01에 sticky bit가 설정되어 있기 때문8. 같은 user03로 /ptest/file01은 삭제 가능
rm /ptest/file01 # → 성공 (sticky bit 없음)
1. setgid 권한이 설정된 파일/디렉토리 찾기
방법 1: find
find / -perm -2000 -ls 2>/dev/null
방법 2: ls + grep
ls -lR / | grep '^......s'
ls -ld 디렉토리: 디렉토리 자체 권한 확인
stat 파일명: setuid/setgid/sticky 상태 확인 가능
chmod 4775 파일: setuid + 775 권한
chmod 1755 디렉토리: sticky bit + 일반 권한
