배열 기초

 

 

배열이란? 배열은 연관된 값들의 집합이다. 배열은 여러 개의 값을 담을 수 있어, 여러 개의 값을 다룰 때 매우 유용하다.

배열에는 키(key)와 값(value)으로 이루어진다. 배열의 각 키는 오직 한 개의 원소와 연결되고, 배열의 값은 문자열, 숫자, 참, 거짓, 배열 등이 될 수 있다.

 

 

 인덱스 배열

$tmp_arr = ['노랑', '빨강', '파랑'];

$tmp_arr2 = array('노랑', '빨강', '파랑');

 

예제처럼 대괄호 안에 값만 들어가 있는 배열을 인덱스 배열이라고 한다. 인덱스 배열은 대괄호 []와 array()로 만들 수 있다.

 

 연관 배열

연관 배열은 키와 값을 조합하여 만드는데, 이때 키는 중복해서 지정할 수 없다.

 

$tmp_arr = ['yellow' => '노랑', 'red' =>'빨강'];

$tmp_arr2 = [0 => '파랑', 1 => '초록'];

 

마찬가지로 연관 배열도 array()로 동일하게 만들 수 있다.

$tmp_arr = array('yellow' => '노랑', 'red' =>'빨강');

$tmp_arr2 = array(0 => '파랑', 1 => '초록');

 

 []로 배열 원소 추가하기

[]나 array()로 배열을 생성할 때 키/값 쌍을 모두 쓸 필요 없이 값만 나열하면 자동으로 숫자 키를 할당한다. 

 

$tmp_arr[] = '노랑';  //$tmp_arr[0] 지정

$tmp_arr[] = '빨강';  //$tmp_arr[1] 지정

 

 배열의 출력 확인

연관 배열과 인덱스 배열을 출력 확인하기 위해서는 echo()가 아닌 print_r() 또는 var_dump()를 사용한다.

배열 값의 개수를 확인하기 위해서는 count() 함수를 사용하면 된다.

 

 

 배열에 값 추가 

배열에 값을 인덱스 번호나 빈 배열로 순서대로 추가하는 방법도 있지만 array_push() 함수를 이용해 값을 추가할 수 있다.

 

$arr = array();

array_push($arr, 'apple', 'banana'); 

// array_push(변수명, 배열에 들어갈 값, 배열에 들어갈 값);

 

 

 list() 함수를 이용하여 변수에 대입

list() 함수는 각 배열의 값을 변수에 대입시키는 함수이다. 예제처럼 배열 $fruit 의 값이 각 변수에 들어간다. echo() 함수로 $second를 출력해보면, 'water melon' 배열의 두 번째 값이 출력된다.

 

list() 함수

 

 

 

리눅스란? 

리눅스는 윈도우, 유닉스와 같은 운영체제의 한 종류로 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기 위한 시스템 소프트웨어이다. 

 

 

 

리눅스 권한 설정 명령어

 

 

권한 관리 명령어 : chmod, unmask
  • 접근 권한은 8진수 또는 r(읽기 권한, 4), w(쓰기 권한, 2), x(실행 권한, 1) 문자로 표현 가능하다.
  • 8진수로 표현할 때는 권한의 합으로 표시한다.
  • 8진수 3자리(3bit)로 소유자, 그룹 소유자, 기타 사용자를 위한 파일 모드를 설정한다.

 


접근 권한 변경 명령어 : chmod [옵션] 파일명 
  • 기존 파일 또는 디렉토리에 대한 접근 권한을 변경할 때 사용, 파일 모드의 변경은 파일 소유자나 슈퍼유저만 가능하다.

  • 주요 옵션 : -R 하위 디렉토리와 파일의 권한까지 변경한다.

#chmod -R 777 testfile
  • 사용자(대상) : u, g, o, a (all의 약자, u,g,o의 조합),
  • 수행할 명령(연산) : +, -, =(지정, 기존의 속성 값은 사라짐)
  • 설정할 퍼미션(접근권한) : r, w, x 
#chmod +x testifle   // 모든 사용자에게 실행 권한 추가(아무 문자를 사용하지 않으면 all로 추정)
#chmod 0755 testfile 

//최고 권한은 777 각각 유저, 그룹, 아더

 


특수권한 : setuid(4), setgid(2), sticky bit(1)

 

setuid 비트

  • setuid 비트를 실행 파일에 적용하면 실 사용자에서 프로그램 소유자의 ID로 유효사용자가 변경된다.
  • 슈퍼유저 root만 접근할 수 있는 파일이나 명령에 대해, 일반 사용자로 접근하는 것이 기능상 필요한 경우(실행 순간만 권한을 빌려오는 개념)
  • setuid 비트 설정 방법 : 8진수(4000)나 기호(u+s)를 이용하여 setuid 비트를 설정할 수 있다.(setuid 비트 설정 제거 u-s)
#chmod 4744 setuid_test1

#chmod u+s setuid_test2

 

setgid 비트

  • setgid 비트처럼 유효 그룹 ID를 사용자의 실제 그룹 ID에서 파일 소유자의 그룹 ID로 변경한다.

  • setgid 비트 설정 방법 : 8진수(2xxx)나 기호(g+s)를 이용하여 setgid 비트를 설정할 수 있다. (setgid 비트 설정 제거 g-s)

  • setgid 비트가 설정되어 있으면 그룹 소유자 접근 권한의 실행 권한 자리에 실행 권한이 있으면 소문자 s로 실행권한이 없으면 대문자 S로 표시된다.

#chmod 2755 setgid_dir1

#chmod g+s setgid_dir2

 

sticky비트

  • sticky 비트는 8진수 1000
  • sticky 비트는 특정 디렉토리를 누구나 자유롭게 사용할 수 있게 하기 위함이다.(공용 디렉토리에 사용) 단, sticky 비트가 디렉토리에 적용되면 디렉도리 소유자나 파일 소유자 또는 슈퍼유저가 아닌 사용자들은 파일을 삭제하거나 이름을 변경하지 못하도록 막음, 파일 또는 디렉토리 생성은 누구나 할 수 있다.
  • sticky 비트를 공유모드라고도 한다.
  • 8진수(1xxx)나 기호(o+t 또는 u+t)를 이용하여 sticky 비트를 설정할 수 있다.(sticky 비트 설정 게저 o-t 또는 u-t)
  • sticky 비트가 설정되어 있으면 기타 사용자 접근 권한의 실행 권한 자리에 실행 권한이 있으며 소문자 t로 실행 권한이 없으면 대문자 T로 표시된다.

 

※ 관련글

 

 

+ Recent posts