일반 운영 관리
사용자 관리
일반 사용자 관리
- su 명령어
- 다른 사용자로 전환하는 명령어
- 주요 옵션
-
[-] : 전환하는 사용자의 초기화 파일을 실행
# su -root
: root의 환경변수를 적용하고 전환 -
[-c] : 계정 변환 없이 특정 명령어만 실행 (sudo 명령어와 같은 기능)
# su -c 'cat /etc/passwd' -root
: root 권한으로 해당 명령을 실행 -
- su 명령어로 사용자 전환 후의 위치는 동일
- root 계정관리
- root 계정의 UID 값은 0이다
- root 이외의 UID가 0인 사용자가 없도록 해야한다
- TMOUT 환경변수를 사용해 일정시간 미사용시 자동으로 로그아웃 되도록 설정하여 보안을 강화한다
- 일반 사용자에게 특정 명령어에 대한 root 권한이 필요할 때는 su 명령어보다는 sudo 명령어를 ㅣ용하도록 한다.
사용자 계정 관리
- 계정 관리 관련 파일
- /etc/passwd 파일
- 파일 내용 구성
[user_account] : [user_password] : [UID] : [GID] : [comment] : [home_directory] : [login_shell]
- user_account : 사용자 계정
- user_password : /etc/shadow 파일에 암호돠되어 저장되어 있다
- UID : User ID. 보통 100번 이하는 시스템이 사용, 0qjsdms tltmxpa rhksflwkfmf skxksosek
- GID : Group ID
- comment
- home_directory : 로그인 성공 후에 사용자가 위치할 홈 디렉토리의 절대경로
- login_shell : 로그인 셸의 절대경로
- 파일 내용 구성
- /etc/shadow 파일
- 파일 내용 구성
`[user_id] : [encryption_pw] :[last_change] : [minilife] : [maxlife] : [warn] : [inactive] : [expires]
- user_id : 사용자 계정
- encryption_pw : 일방향 해시 알고리즘을 암호화한 패스워드
- last_change : 마지막으로 패스워드를 변경한 날
- minilife : 최소 패스워드 변경 일수 (패스워드를 변경할 수 없는 기간)
- maxlife : 최대 패스워드 변경 일수 (패스워드 변경 없이 사용할 수 있는 일수)
- warn : 경고 일수 (maxlife 필드에 지정한 일수가 얼마 남지 않았음을 알림)
- inactive : 최대 비활성 일수
- expires : 계정이 만료되는 날
- enctyption_pw 필드의 기호 뜻
- : 패스워드 잠긴 상태. 별도의 인증방식을 사용하여 로그인 !! : 패스워드 잠긴 상태. 모든 로그인이 불가능 빈 값 : 패스워드가 설정되지 않은 상태
- 파일 내용 구성
- /etc/login.def 파일
- 사용자 계정의 설정과 기본 값을 정의한 파일
- 기본 메일 디렉토리, 패스워드 에이징, 사용자 계정의 UID/GID값 범위 등의 기본값을 설정할 수 있음
-
/etc/skel 디렉토리
- 사용자 계정 생성 시 공통으로 배포할 파일이나 디렉토리를 지정하는 디렉토리
-
/etc/default/useradd 파일
- useradd 명령어로 계정 생성 시 기본 값을 지정한 파일
- /etc/passwd 파일
그룹 계정 관리
- 그룹 관리 관련 파일
- /etc/group 파일
- 파일 내용 구성 : 그룹 명 : 그룹 패스워드 : GID : 그룹 멤버
- /etc/passwd 파일에는 기본 그룹의 GID가 저장되고, /etc/group 파일에는 2차 그룹의 정보가 저장
- /etc/gshadow 파일
- 파일 내용 구성 : 그룹 명 : 암호화 된 그룹 패스워드 : 관리자 : 그룹 멤버
- /etc/group 파일
관련 명령어
- useradd 명령어
- 사용자 계정을 생성하는 명령어
- 주요 옵션
- [-u] : UID 지정
- [-o] : UID의 중복을 허용
- [-g] : 기본 그룹의 GID 지정
- [-G] : 2차 그룹의 GID 지정
- [-d] : 홈 디렉토리 지정
- [-s] : 기본 쉘을 지정
- [-c] : 코멘트 지정
- [-D] : 기본 값을 설정하거나 출력 (/etc/default/useradd 파일 내용)
- [-e] : 유효 기간 지정 (/etc/shadow 파일의 expires 항목)
-
[-f] : 비활성 일수 지정 (/etc/shadow 파일의 inactive 항목)
# useradd -u 500 -G 10 -s /bin/bash -e 2018-12-31 testuser
: testuser사용자의 UID는 500, GID가 10인 2차 그룹, 기본 쉘은 bash, 유효기간은 2018-12-31까지로 설정하여 생성
-
옵션 없이 계정 생성할 경우 패스워드를 설정하지 않았기 때문에 /etc/shadow 파일에 패스워드 항목이
!!
로 지정되어 있다 (패스워드가 잠겨 있다는 기호) - usermod 명령어
- 사용자 계정의 정보를 변경하는 명령어
- 주요 옵션
- useradd 명령어와 옵션이 동일
- [-l] : 게정 이름 변경
# useradd -l usertest testuser
testuser 사용자의 이름을 usertest로 변경
- userdel 명령어
- 사용자 계정을 삭제하는 명령어
- [-r] 옵션 : 홈 디렉토리 제거
- chage 명령어
- 패스워드 에이징에 관한 설정을 하는 명령어
- 주요 옵션
- [-m] : /etc/shadow 파일의 minilife 항목 설정 (passwd -n)
- [-M] : /etc/shadow 파일의 maxlife 항목 설정 (passwd -x)
- [-W] : /etc/shadow 파일의 warn 항목 설정 (passwd -w)
- [-l] : /etc/shadow 파일의 inactive 항목 설정 (usermod -f)
- [-E] : /etc/shadow 파일의 expires 항목 설정 (usermod -e)
- passwd 명령어
- 사용자 계정의 패스워드 변경/관리하는 명령어
- 주요 옵션
- [-n] : /etc/shadow 파일의 minilife 항목 설정
- [-x] : /etc shadow 파일의 maxlife 항목 설정
- [-w] : /etc/shadow 파일의 warn 항목 설정
- [-l] : 계정 잠금
- [-u] : 계정 잠금 해제
- groupadd 명령어
- 그룹을 생성하는 명령어
- 주요 옵션
- [-g] : GID 지정
- [-d] : GID의 중복을 허용
- groupmod 명령어
- 그룹의 정보를 변경하는 명령어
- 주요 옵션
- groupadd 명령어와 옵션이 동일
- [-n] : 그룹 이름 변경
-
groupdel 명령어
-
그룹을 삭제하는 명령어
- gpasswd 명령어
- 그룹의 패스워드를 변경하거나 그룹에 계정을 추가/삭제하는 명령어
- 주요 옵션
-
[-a] : 사용자 계정을 그룹에 추가
#gpasswd리 -a testuser testgroup
: testgroup 그룹에 testuser 사용자를 추가 - [-d] : 사용자 계정을 그룹에서 삭제
- [-r] : 그룹 암호를 삭제
-
[-A] : 그룹의 관리자를 지정
# gpasswd -A testuser testgroup
: testgroup 그룹의 관리자를 testuser 사용자를 관리자로 설정
-
- newgrp 명령어
- 계정의 소속 그룹을 변경하는 명령어
# newgrp grp01
: grp01로 그룹을 변경 - 사용자 정보 확인 명령어
- who 명령어 : 현재 시스템을 사용하는 사용자의 정보를 출력하는 명령어
- [-q] : 사용자의 이름만 출력
- [-H] : 출력 항목의 제목도 함께 출력
- [-b] : 마지막으로 재시작한 날짜와 시간을 출력
- [-r] : 현재 런레벨을 출력
- w 명령어 : 현재 시스템을 사용하느 사용자의 정보와 작업 정보를 출력하는 명령어
- whoami 명령어 : 현재 작업하고 있는 자신의 계정을 출력
- id 명령어 : 현재 작업하고 있는 자신의 계정명, 그룹명, UID, GID를 출력하는 명령어
- users 명령어 : 현재 로그인 되어 있는 사용자의 계정을 출력
- gropus 명령어 : 사용자 계정이 속한 그룹을 출력
- lslogins 명령어 : 시스템 내에 있는 사용자 계정에 대한 정보를 출력
- who 명령어 : 현재 시스템을 사용하는 사용자의 정보를 출력하는 명령어
- 무결성 검사 명령어
- pwck 명령어 : /etc/passwd 파일과 /etc/shadow 파일 내용의 무결성을 검사하는 명령어
- grpck 명령어 : /etc/group 파일과 /etc/gshadow 파일 내용의 무결성을 검사하는 명령어
파일 시스템 관리
파일 및 디렉토리 관리
-
ls -l 명령어ㅓ 수행시 각 필드 항목 |파일 종류|파일 권한|하드링크 수|소유자|소유 그룹|크기|마지막 수정 시간|파일 명| |—|—|—|—|—|—|—| |d|rwxr-xr-x|3|fedora|fedora|4096|7월 26 21:41|linuxmaster|
- 파일의 종류
ls -l
명령어 사용 시 첫번째 필드의 첫번째 비트- 일반 파일 : “-“로 표기
- 디렉토리 파일 : “d”로 표기
- 심벌릭링크 파일 : “l”로 표기
- ln 명령어 : 링크 파일 생성 명령어
- 옵션 없이 수행 시 하드링크 파일 생성, [-s] 옵션 사용 시 심벌릭링크 파일 생성
- 하드링크 : inode number가 같음. 복사개념
-
심벌릭링크 : inode number가 다름. 바로가기 개념
# ln -s file.txt file.txt.sl
: file.txt의 심벌릭링크 파일로 file.txt.sl을 생성
- 블록 장치 파일 (/dev/hda, /dev/fd0 등) : “b”로 표기
-
문자 디바이스 파일 (입출력 장치) : “c”로 표기
- 파일의 권한
- “ls -l” 명령어 사용 시 첫번째 필드에서 첫번째 비트를 제외한 9개 비트
- 소유자 / 그룹 / 기타 사용자 순으로 표기
- 특수 접근 권한
- SetUID : 이 권한이 있는 파일을 실행하는 동안에는 파일 소유자의 권한으로 실행되도록 함
- SetGID : 이 권한이 있는 파일을 실행하는 동안에는 파일 소유 그룹의 권한으로 실행되도록 함
- Sticky bits : 이 권한이 있는 디렉토리에는 누구나 파일을 생성할 수 있다 (삭제는 소유자와 root만 가능)
- umask 명령어
-
기본 접근 권한을 출력/변경하는 명령어
# uask 022
: 그룹, 기타 사용자에게는 쓰기 권한을 부여하지 않도록 기본 접근 권한 설정 -
일반 파일의 최대 접근권한은 666이고, 디렉토리의 최대 접근권한은 777이다.
-
- umask가 022일 때 파일을 생성한 직후의 권한은 644이고, 디렉토리를 새엇한 직후의 권한은755이다
- 권한/소유권 변경 관련 명령어
- chown 명령어
- 파일과 디렉토리의 소유자와 소유 그룹을 변경하는 명령어
- [-R] : 서브 디렉토리의 소유자와 소유 글부도 같이 변경
# chown fedora2 /linuxmaster/fedora.txt
: fedora.txt 파일의 소유자를 fedora2로 변경# chown fedor2:grp01 /linuxmaster/fedora.txt
: fedora.txt 파일의 소유자를 fedora2로, 소유 그룹을 grp01로 변경
- chgrp 명령어 : 파일과 디렉토리의 소유 그룹을 변경하는 명령어
- chmod 명령어
- 파일과 디렉토리의 접근권한을 변경하는 명령어
- [-R] : 서브 디렉토리의 접근권한도 모두 변경
# chmod 644 perm, tmp
: perm, tmp 파일의 접근권한을 644 (rw-r–r–)로 변경# chmode go-rwx perm.tmp
: perm.tmp 파일의 접근권하에서 그룹과 기타 사용자의 권한을 모두 제거
- chown 명령어
- 파일 속성 관련 명령어
- 파일 속성 기호
- a : 해당 파일에 추가만 가능
- c : 자동으로 압추된 상태로 저장
- d : dump로 백업이 되지 않음
- i : 해당 파일에 대한 병경/삭제 등을 할 수 없음
- u : 해당 파일이 삭제될 경우 그 내용이 저장되며 데이터 복구가 가능
-
lsattr 명령어
- 디렉토리/파일의 속성을 출력하는 명령어
- chatter 명령어
-
디렉토리/파일의 속성을 변경하는 명령어
# chatter +i attr.tmp
: attr.tmp 파일에 i속성을 추가
-
- 파일 속성 기호
파일 시스템 복구
- /etc/fstab파일
-
파일 시스템의 마운트 설정 정보를 가지고 있는 파일
-
파일 구조
| 장치 이름 | 마운트 포인트 | 파일 시스템 종류 | 옵션 | 덤프 설정 | 파일 점검 옵션 | | ———————– | ————- | —————- | ——– | ——— | ————– | | /dev/mapper/fedora-root | / | ext4 | defaults | 1 | 1 |
- 장치 이름에는 장치 파일명 외에도 UUID나 라벨명으로 설정 가능
- 옵션 필드 종류
- defaults : 기본 값. rw, nouser, auto, exec, suid 속성을 포함
- auto : 부팅시 자동으로 마운트 (↔ nouauto)
- exec : 실행 파일이 실행되는 것을 허용 (↔ noexec)
- suid : SUID/SGID의 사용 허용 (↔ nosuid)
- ro : 읽기 전용
- rw : 읽기/쓰기 허용
- user : 일반 사용자도 마운트 가능
- nouser : 일반 사용자의 마운트 불가능 (root만 가능)
- usrquota : 사용자별로 디스크 쿼터 설정 허용
- grpquota : 그룹별로 디스크 쿼터 설정 허용
- 덤프 설정
- 1 : dump 등의 데이터 백업 명령어 사용으로 파일 시스템의 내용 덤프 가능
- 0 : 파일 시스템의 내용을 덤프 불가능
- 파일 점검 옵션
- 0 : 부팅 시 fsck 명령어로 파일 시스템 점검 미수행
- 1 : 루트 파일 시스템에 대한 설정. 부팅 시 파일 시스템 점검 수행
- 2 : 루트 파일 시스템 이외의 파일 시스템 점검 수행
-
- mount 명령어
- 파일 시스템을 마운트하는 명령어
- 형식 : `# mount [옵션][장치 이름][마운트 포인트]
- 주요 옵션
- [-t] : 파일 시스템 종류를 지정
# mount -t iso9660 /dev/cdrom /mnt/cdrom
: CD-ROM을 /mnt/cdrom 디렉토리에 마운트 - [-f] : 마운트가 가능한지 확인만 수행
- [-o] : 마운트 옵션을 지정
# mount -t ext4 -o ro,user /dev/sdb/mnt
: /dev/sdb 장치를 /mnt에 마운트 읽기 전용, 일반 사용자들도 마운트할 수 있도록 허용# mount -t iso9660 -o loop /linuxmaster/temp.iso /mnt/iso
: temp/iso ISO 이미지를 /mnt/iso에 마운트
- [-t] : 파일 시스템 종류를 지정
- 언마운트는
unmount
명령어를 사용 - CD-ROM 장치 언마운트 후 CD를 꺼낼 때
eject
명령어를 사용
- fdisk 명령어
- 디스크의 파티션 생성/삭제, 정보 출력 등 파티션을 관리하는 명령어
- 주요 옵션
- [-l] : 파티션 테이블 출력
- 주요 내부 명령어
- d : 파티션을 삭제
- l : 사용 가능한 파티션 시스템 종류를 출력
주요 시스템 종류 : 82(linux swap), 83(linux), 8e(linux LVM)
- n : 새로운 파티션 생성
- p : 파티션 테이블 출력
- t : 파티션의 시스템 종류를 변경
- w : 파티션 정보를 디스크에 저장하고 종료
- 파일 시스템 생성(포맷) 명령어
- mkfs 명령어
- [-t] : 파일 시스템 종류 지정 (default : ext2)
mkfs -t ext4 /dev/sdb1
: /dev/sdb1 파일시스템을 ext4로 생성 - mkfs.ext2 / mkfs.ext3 / mkfs.ext4 명령어도 제공
- [-t] : 파일 시스템 종류 지정 (default : ext2)
- mke2fs 명령어
- [-t] : 파일 시스템 종류 지정 (default : ext2)
- [-c] : 배드블록을 체크
- [-b] : 블록 크기를 바이트 수로 지정
- [-j] : ext3 형식으로 생성 (journaling)
- 기본 설정 값은 /etc/mke2fs.conf 파일에서 정의
- mkfs 명령어
- LVM (Logical Volume Manager)
- 독립적으로 구성된 디스크 파티션을 하나로 연결하여 한 파티션처럼 사용할 수 있도록 해주는 관리도구
- 관련 용어
- PV (Physical Volume) : 실제 하드디스크의 파티션을 의미
- VG (Volume Group) : 여러 개의 PV를 그룹으로 묶은 것을 의미
- LV (Logical Volume) : VG를 다시 적절한 크기로 나눈 파티션을 의미
- PE (Physical Extent) : PV가 가진 일정한 블록을 의미
- LE (Logical Extent) : LV가 가진 일정한 블록을 의미
- 주요 명령어 (LVM 생성 시 사용 순)
- 해당 파티션의 종류 변경
- fdisk -> t -> 기존 83(linux)를 8e(linux LVM)로 변경
- PV 생성
- pvcreate 명령어
- pvscan 명령어 : PV 상태를 확인
- VG 생성 : vgcreate 명령어
- VG 활성화
- vgchange -a y : 활성화
- vgchange -a n : 비활성화
- vgdisplay -v : VG 상태 확인
- LV 생성
- lvcreate 명령어
- lvscan 명령어 : LV 상태 확인
- LV에 파일 시스템 생성 : mkfs /mke2fs 명령어 사용
- LV 마운트 : mount 명령어 사용
- 해당 파티션의 종류 변경
- 파일 시스템 점검/복구 관련 명령어
- fsck 명령어
- 파일 시스템을 검사/복구하는 명령어
- [-f] : 강제 검사
- [-b] : 지정한 백업 슈퍼블록을 사용하여 복구
- fsck.ext2 / fsck.ext3 / fsck.ext4 명령어도 제공
- e2fsck 명령어
- 파일 시스템을 점검하기 전에 해당 파일 시스템을 umount 후 진행
- [-j ext3/ext4] : ext3나 ext4 파일 시스템을 검사할 때 지정
- badblocks 명령어
- 지정한 장치의 배드 블록을 검사하는 명령어
- [-v] : 검사 결과 자세히 출력
- [-o] : 검사 결과를 지정한 출력 파일에 저장
- tune2fs 명령어
- ext2 파일 시스템을 설정(튜닝)하는 명령어
- [-i] : ext2 파일 시스템을 ext3 파일 시스템으로 바꿈
- [-l] : 파일 시스템 슈퍼 블록 내용을 출력
- fsck 명령어
- 새로운 디스크 추가 과정
- 새로운 디스크 설치
- 파티션 생성 :
fdisk
명령어 - 파일 시스템 생성 :
mkfs
/mkefs
명령어 - 마운트할 디렉토리(마운트 포인트) 생성
- 파일 시스템 마운트 :
mount
명령어
관련 명령어
- ls 명령어
- 주요 옵션
- [-a] : 숨겨진 파일을 포함한 모든 파일의 목록을 출력
- [-d] : 지정한 디렉토리 자체의 정보를 출력
- [-i] : inode 번호를 출력
- [-l] : 파일의 상세한 정보를 출력
- [-A] : .(현재 디렉토리), ..(이전 디렉토리)를 제외하고 출력
- [-F] : 파일의 종류를 함께 출력 (*:실행파일, /:디렉토리, @:심벌릭 링크)
- [-L] : 심벌릭 링크 파일의 원본 파일 정보를 함께 출력
- [-R] : 하위 디렉토리들의 파일 목록까지 함께 출력
- grep 명령어와 조합
- 디렉토리만 출력
# ls -al | grep "^d"
- 일반 파일만 출력
# ls -al | grep "^-"
# ls -al | grep -v "^[a-zA-Z]"
- 특정 문자열이 들어간 파일 검색
# ls -al | grep linux
- 디렉토리만 출력
- 주요 옵션
- 디스크 사용량 출력 명령어
- df 명령어
- 파일 시스템별 디스크 사용량을 확인하는 명령어
- [-a] : 모든 파일시스템의 디스크 사용량을 출력
- [-h] : 디스크 사용량을 알기 쉬운 단위로 출력
- [-t] : 지정한 파일 시스템에 해당하는 디스크 사용량을 출력
- [-T] : 파일 시스템의 종류도 함께 출력
- du 명령어
- 디렉토리나 사용자 별로 디스크 사용량을 확인하는 명령어
- 형식 :
# du [옵션][디렉토리]
- [-s] : 특정 디렉토리의 전체 사용량을 출력
- [-h] : 디스크 사용량을 알기 쉬운 단위로 출력
- [-d NUM] : (–max-depth=NUM) 현재 디렉토리 기준으로 하위 NUM단계 아래의 디렉토리까지의 디스크 사용량 출력
- 옵션 없이 사용 시 현재 디렉토리의 디스크 사용량을 출력
- df 명령어
- 디스크 사용량(quota) 관련 명령어
- 쿼터 설정 전에 /etc/fstab 파일의 옵션 필드에 쿼터 관련 설정을 해줘야 한다
- quotacheck 명령어
- 쿼터 파일을 생성/확인/수정을 위해 파일 시스템을 검사하는 명령어
- [-a] : 전체 파일 시스템 검사
- [-u] : 사용자 쿼터 확인
- [-g] : 그룹 쿼터 확인
- [-m] : 파일 시스템을 다시 마운트하지 않는다
- [-v] : 자세하게 출력
# quotacheck -avugm
- quotaon 명령어
- 파일 시스템의 쿼터 기능을 활성화ㅓ하는 명령어
- [-a] : 전체 파일 시스템의 쿼터를 활성화
- [-u] : 사용자 쿼터 활성화
- [-g] : 그룹 쿼터 활성화
- [-v] : 자세하게 출력
# quotaon -augv
- edquota 명령어
- 쿼터를 설정하는 명령어 (vi 형식)
- [-u] : 사용자 쿼터 설정
# edquota -u fedora
: fedora 유저의 쿼터 설정 - [-g] : 그룹 쿼터 설정
- [-p] : 쿼터 설정 복사
# edquota -p fedora fedora2
: fedora 유저의 쿼터 설정 내용을 fedora2 유저에게 적용
- setquota 명령어
- 쿼터를 설정하는 명령어 (커맨드 라인에서 옵션으로 설정하는 형식)
- 형식 : `# setquota [옵션][이름][block soft limit][block hard limit][inode soft limit][inode hard limit][장치명]
# setquota -u fedora 1000 1100 0 0 /
- quota 명령어
- 쿼터 정보를 출력하늠 명령어
- [-u], [-g] 옵션 포함
# quota -u fedora
: fedora 유저의 쿼터 설정 내용 출력
- repquota 명령어
- 쿼터 정보를 요약하여 출력하는 명령어
- [-a], [-u], [-g] 옵션 포함
- [-v] : 사용량이 없는 쿼터의 정보 출력
- 파일 시스템 ACL(Access Control List) 관련 명령어
- getfacl 명령어
- 접근 권한을 확인하는 명령어
- setfacl 명령어
- 접근 권한을 설정하는 명령어
- [-m] : 권한을 수정
- [-x] : 권한을 삭제
- [-R] : 하위 디렉토리의 권한까지 변경
- getfacl 명령어
- 스왑 영역 관련 옵션
- mkswap 명령어
- 스왑 영역을 생성하는 명령어
- [-c] : 스왑 영역을 만들기 전에 먼저 배드블록을 검사
- swapon /swapoff 명령어
- 스왑 영역을 활성화/비활성화 하는 명령어
- dd 명령어
- 블록 단위로 파일을 복사/변환하는 명령어
- [if=FILE] : 지정한 파일을 입력으로 받는다
- [of=FILE] : 지정한 파일을 출력으로 설정
- [bs=BYTES] : 한 번에 읽어 들이거나(read) 출력(write)할 바이트 수 지정
- [count=BLOCKS] : 지정한 블록 수만큼 복사
# dd if=/dev/zero of=/swapfile bs=1024 count=1000
1024바이트씩 1000번을 /dev/zero에 읽어서 /swapfile에 기록
- 스왑 파일 생성 절차
- dd 명령어로 파일 생성
- mkswap 명령어로 스왑 파일 생성
- sync 명령어로 현재 메모리에 있는 데이터를 디스크에 저장
- swapon 명령어로 스왑 영역 활성화
- mkswap 명령어
- parted 명령어
- 파티션 생성, 삭제, 크기 변경 등의 파티션 관리를 위한 명령어