*SetGID
- 프로세스가 실행한 사용자의 그룹소유자가 아닌 파일의 그룹소유자 권한으로 실행된다.
- SetGID가 디렉토리에 설정되어 있는 경우,디렉토리에서 만들어지는 파일이 모두 해당 디렉토리의
  소유권을 갖는다.

 

- SetGID
- 기호모드 (g+s)
- 숫자모드 (2000)

--------------------------------------------------------------------------------------------------------------------------

*StickBit
- 모든 사용자가 생성/수정/삭제가 능한 디렉토리에 적용하며, StickyBit 설정 후에는 해당 파일의 소유자만
  해당 파일을 삭제할 수 있다.
- 삭제만 못하게 만듬.

- StickyBit 설정 방법
- 기호모드 (o+t)
- 숫자모드 (1000)

--------------------------------------------------------------------------------------------------------------------------

*umask - 새로운 파일/디렉토리 생성 시 기본 허가권을 결정하는 기준이 되는 값 (0022)
 디렉토리의 기본 허가권 777
 파일의 기본 허가권 666
 해당 값에서 UMASK 값을 빼고 남은 값으로 기본 허가권이 결정된다.

  디렉토리  파일
기본값  777  666

UMASK  022  022
결정된 허가권 755  644
기호모드  RWX R-X R-X RW- R-- R--

#umask  //현재 설정된 umask 값 확인
#umask [Value] //UMASK 값 변경

- UMASK 값이 높으면 허가권은 낮아진다.

 

*속성 (Attribution)
- 특정 파일이나 디렉토리에 속성을 설정하여 권한과는 다른 개념의 파일을 관리 할 수 있다.

lsattr - 특정 파일에 속성을 확인하고자 할 때 사용
#lsattr -d [디렉토리] //디렉토리 속성 확인
#lsattr -R [디렉토리] //하위 파일까지 확인

 

chattr - 특정 파일에 속성을 변경하고자 할 때 사용

 

속성의 종류

i  속성 (Immutable)
 - 해당파일의 변경, 삭제, 이름변경 뿐 아니라 파일추가, 링크 파일도
  생성 할 수 없다.

a 속성 (Append Only)
 - 해당 파일의 기존 내용에서 추가만 가능하며, 그 외에는 i속성과
  동일하다.

e 속성
 - ext4 포맷을 ext3 포맷으로 변형시켜 주는 것

--------------------------------------------------------------------------------------------------------------------------
#chattr [옵션] [기호+속성] [파일/디렉토리명]

기호
+ 지정한 속성을 추가
- 지정한 속성을 제거
= 기존 속성을 초기화 한 후 지정한 속성만 부여

옵션
-R : 디렉토리내의 서브디렉토리 및 파일을 포함하여 일괄 적용

--------------------------------------------------------------------------------------------------------------------------

*ACL (Access Control List / 접근 제어 목록)
- 디렉토리 및 파일에 특정 사용자/그룹에 ACL이라고 하는 권한을 부여하는 기능이다.

getfacl - 파일과 디렉토리에 ACL 설정 확인
          - ACL이 설정되어 있으면 앞쪽 권한 끝에 + 표시가 생김
#getfacl [옵션] [파일/디렉토리명]
 - d 기본 정보에 대해 확인
 - R 하위 디렉토리 및 파일의 내용 확인

setfacl - 파일과 디렉토리에 ACl 설정
#setfacl [옵션] [규칙] [파일/디렉토리명]

 --------------------------------------------------------------------------------------------------------------------------

[옵션]
 -m (modify) 권한을 수정할 때 사용
 -x 권한을 삭제할 때 사용
 -R 하위 디렉토리 및 파일의 권한을 변경
 -b 권한 및 mask 등 지정한 권한을 전부 제거

  [규칙]
  [u|User]:[Uid|Username]:[rwx|7] - 사용자에 대한 ACL 설정
  [g|grop]:[GID|Groupname]:[rwx|7] - 그룹에 대한 ACL 설정
  [o|other]:[rwx|7] - 기타 사용자에 대한 ACL 설정

 

ex1) #setfacl -m user:I-USER1:rwx S-LV01
=ex2) #setfacl -m u:I-USER1:7 S-LV01

*Default ACL
- 디렉토리는 디폴트 ACL을 설정할 수 있으며, 해당 디렉토리 내에서 생성되는 파일이나 하위 디렉토리의
 기본 ACL이 된다.

ex1)
#setfacl -m default:user::rwx,default:group::rwx,default:other:rwx S-LV03
=ex2)
 #setfacl -m d:u::7, d:g::7, o:7 S-LV03
- 해당 디렉토리내에 생성되는 디렉토리에 대해서 rwx rwx rwx 허가권 설정

*ACL MASK
- 추가되는 허가권을 제어하는 값
  ACL 마스크를 r-- 설정하면, 일치하는 모든 ACL은 자신이 갖고 있는 허가권(rw-)이 효력을 잃게 되어
  r--로 설정이된다.
- 설정된 MASK 값이 우선시 된다. 기존 설정 무효화.

설정된 ACL : rwx rwx rwx
ACL MASK : r-- rw- rwx
적용된 ACL : r-- rw- rwx

--------------------------------------------------------------------------------------------------------------------------

* 프로세스 관리
- 시스템 초기화 프로세스
init - 부팅 시 가장 먼저 실행되는 시스템 초기화 프로세스

프로세스 (Process)
- 커널의 관리 하에 현재 시스템에서 동작중인 프로그램이다.
- 커널은 프로세스 관리를 위해 각 프로세스에게 PCB를 할당한다.
- init을 제외한 모든 프로세스는 부모-자식 관계를 가지고 있다.

PCB (Process Control Block)
- 고유번호 (PID, Process IDentification Nmber)
 커널이 할당하는 프로세스마다 부여되는 고유의 번호
- 우선순위 (Priority)
 운영체제가 스케줄링 하기 위한 정보
- 현재상태 (Current State)
 할당받은 자원 및 프로세스의 상태를 나타내는 정보
- 할당받은 자원의 포인터
- 문맥 저장 영역 (Context Save Area)

--------------------------------------------------------------------------------------------------------------------------

프로세스 종류
1. 데몬 (daemon) 프로세스
  커널에 의해서 실행되고 특정 서비스를 제공한다.

2.부모 (parent) 프로세스
  부모 프로세스는 다른 프로세스를 만들며, init을 제외한 모든 프로세스는
  부모 프로세스를 가지고 있다.
3.자식 (child) 프로세스
  부모 프로세스에 의해서 만들어지는 프로세스이다.
  자식 프로세스는 종료 시 부모 프로세스에게 결과를 전달하고 종료된다.
 

4.고아 (orphan) 프로세스
  자식 프로세스 보다 먼저 부모프로세스가 종료되었을때 해당 자식 프로세스는
  고아 프로세스가되어 init 프로세스가 부모 프로세스가 된다.
 

5.좀비 (Zombie, defunct)
  자식 프로세스의 종료 신호를 부모프로세스가 처리하지 못할 경우, 자식 프로세스는
  좀비 프로세스가 된다.

 

*ps (Processor Status) - 시스템에 동작중인 프로세스 확인
 -e 모든 프로세스 대한 리스트 출력
 -f full format 으로 출력

 -a 다른 사용자들의 프로세스도 출력
 -u 사용자 이름, 시간 등 자세한 정보를 출력
 -x 지금 사용되고 이는 모든 프로세스 출력

 

#ps -ef
UID - 프로세스를 실행 시킨 프로세스의 소유자를 의미
PID - 실행된 프로세스에 부여된 숫자를 의미
PPID - Parents Process ID, 프로세스를 생성한 부모 프로세스의 PID
C - 프로세스 스케줄링을 위한 CPU 사용량, 현재는 사용되지 않는 필드
STIME - 프로세스가 시작된 시간
TTY (Teletype) - 프로세스가 연결된 제어 터미널을 표시 '?' 는 터미널에 연결 되어 있지 않음을 나타낸다.
TIME - 프로세스에 의해 사용된 CPU 사용 시간
CMD - 실행된 프로세스 명 (실행된 명령어)

*kill - 프로세스 종료 명령 (프로세스 신호를 전달하는 명령어)
#kill -[시그널번호/시그널명] [PID]
#kill -l : 시그널 종류 확인

 

*자주 사용하는 시그널
2) SIGINT - 프로세스 종료 (인터럽트)
9) SIGKILL - 프로세스강제 종료
15) SIGTERM - 프로세스 종료
18) SIGCONT - 프로세스 재시작
19) SIGSTOP - 프로세스 정지

ex) #kill -9 [해당 명령어의 PID번호]

 

*프로세스 동작 형태

포어 그라운드 (Foreground Process)
 - 프롬프트에서 입력한 대부분의 명령어는 포어 그라운드 동작
 - 명령어의 실행 과정이나 결과를 화면에 출력
 - 포어 그라운드로 실행되는 프로세스가 종료되길 기다렸다가 종료되면 다시 프롬프트 보여주어
   명령대기 상태로 변환

백 그라운드 (Background Process)
 - 프로세스의 종료 여부에 관계 없이 즉시 명령 대기 상태가 되어
   다른 명령을 실행 할 수 있다.
 - 백그라운드로 실행 시키기 위해 '&'를 붙여 사용
 - 장시간 실행되어야 하는 작업, 프로세스에 주로 사용
 ex) 명령어 &
 작업 번호와 PID 번호를 출력하면서 백그라운드 동작

#sleep [숫자] - 해당 숫자만큼 대기  //빠져나가려면 Ctrl+c
#kill -9 [sleep PID]    //프로세스 강제 종료
#ps -ef | grep sleep   //종료 확인

#jobs - 백그라운드에서 동작하는 프로세스를 확인
#bg - 포어그라운드 작업을 백그라운드로 변경
 #bg %[작업번호]
fg - 백그라운드 작업을 포어 그라운드로 변경
 #fg%[작업번호]

*root 패스워드 분실 시 변경 방법

1. 재부팅
2. grub timeout 카운트가 없어지기 전에 아무 키 입력하여 grub 부팅 메뉴로 진입
3. 부팅 메뉴 수정 (e)
4. 커널이미지(2번째) 옵션 수정 (e)
5. 옵션란에 single 혹은 1 입력 후 Enter
6. b (Booting) 키를 눌러 부팅 시작

*grub 부팅 메뉴에 패스워드 설정 (쉽게 싱글모드(복구모드)로 진입하지 못하게 설정)
1. #grub 입력
2. > 엽에 md5crypt 입력
3. password: 패스워드 입력
4. Encrypted: 내용 복사 $1$Wh4x8/$ohwxcTVSOTnKtcvK0WWDx.
5. quit 입력 - 원래 프롬프트로 나오기
6. #vi /boot/grub/grub.conf 열기
7. boot 밑에(10번행) password --md5 $1$Wh4x8/$ohwxcTVSOTnKtcvK0WWDx. 입력

8. 재부팅
9. grub timeout 카운트가 없어지기 전에 아무 키 입력하여 grub 부팅 메뉴로 진입
10. p 키를 눌러 password 입력 후에부팅 옵션 수정 가능

 

★top★

*프로세스 스케쥴링 데몬
at & cron

cron
- 기능 crontab 파일을 관리
#crontab [옵션]
 -e 사용자의 crontab 편집
 -l crontab 파일의 내용을 출력
 -r crontab 삭제
 -u 사용자 지정

ex) #crontab -u [계정명] -e  // 해당 계정의 crontab 수정
     #crontab -e   // 현재 로그인한 계정의 crontab 수정

crontab 파일의 형식
- crontab 파일은 사용자 별로 생성되며, 해당 파일에 반복할 작업의 내용이 있다.
- 여러개의 작업도 저장할 수 있으며, 한 행에 하나의 작업을 설정한다.

#cat /etc/crontab  // 크론탭 설정 파일 및 형식에 대한 정보를 담고있는 파일

 분 시 일 월 요일 작업 내용
 0~59 0~23 1~31 1~12 0~6 반복할 내용

- 일요일(0), 월요일(1), 토요일(6), 각 항목은 공백으로 구분한다.
- 항목의 갑이 asterisk(*)일 경우 해당 항목의 모든 값을 의미한다.
- ' - ' (hyphen) 두 숫자 사이 포함된 범위 ex) 1-5 (1,2,3,4,5)
- ' , ' (comma)로 구분하여 나열된 숫자 중 일치하는 경우를 뜻한다.
- ' / ' (slash)로 시간 간격을 지정 할 수 있다.

'운영체제 > Linux' 카테고리의 다른 글

리눅스4  (0) 2017.03.27
Linux 3 - vi 편집기 및 사용자 계정 생성 및 관리  (0) 2017.03.06
리눅스2  (0) 2017.03.06
리눅스 1  (0) 2017.03.06
리눅스6  (0) 2017.01.23

+ Recent posts

티스토리 친구하기