IT 일기 썸네일형 리스트형 SELinux 설정하기 with SELinux Boolean SELinux 는 Linux의 보안을 강화해 주는 보안 강화 커널이고 zero-day 공격 및 buffer overflow 등 어플리케이션 취약점으로 인한 해킹을 방지해 주는 핵심 구성요소이다. 특정 서비스가 SELinux 때문에 동작하지 않는다면 SELinux 를 끄기 보다는 해당 서비스가 SELinux 하에서 잘 동작하도록 설정을 수정하는걸 권장한다. 접근 통제 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것을 의미함 접근 통제에서는 **시스템 자원을 객체(Object)**라고 하며 자원에 접근하는 **사용자나 프로세스는 주체(Subject)**라고 정의함 즉, /etc/passwd 파일은 객체이고 이 파일에 접근해서 암호를.. 더보기 nfs 구성 nfs 네트워크에 파일을 저장하는 메커니즘 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 접근할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처럼 처리하도록 허용하는 분산 파일 시스템 즉, 다른 컴퓨터의 파일 시스템을 자기 것처럼 사용할 수 있음nfs 활용성 사설망 내부에 nfs-server를 생성 후 같은 네트워크의 client들이 접근해 공통으로 사용하는 데이터를 사용한다 (ex : docker image, os image, rpm package …) nfs 구성도 nfs-server 구성옵션 설명 ro 읽기 전용 (default) rw 읽기 쓰기 root_squash client의 root 권한 무시, server nobody 권한으로 매핑시킴 (default) no_root_squash cl.. 더보기 iscsi 구성 - with multipath ISCSI (Internet Small Computer System Interface) 컴퓨터 환경에서 데이터 스토리지 시설을 이어주는 IP 기반의 스토리지 네트워킹 표준 IP 망을 통해 SCSI 명령을 전달함으로 인트라넷을 거쳐 데이터 전송을 쉽게 하고 먼 거리에 걸쳐 스토리지를 관리하는데 쓰임 근거리, 원거리, 인터넷 망을 통해 데이터를 전송하는 데 쓰이며 위치에 영향을 받지 않음 이런 ISCSI를 이용해 SAN을 구축함 SAN (Storage Area Network) 여러 서버 또는 컴퓨터에서 액세스할 수 있는 스토리지 디바이스 네트워크로, 스토리지 공간의 공유 풀을 제공함 네트워크의 각 컴퓨터는 컴퓨터에 직접 연결된 로컬 디스크처럼 SAN 스토리지에 액세스할 수 있음 ISCSI 용어 Target .. 더보기 Dart를 빠르게 알아보자 - class! #2 1. Abstract Class! abstract class Human { void walk(); } enum House { gyu, hyun } class Player extends Human { House name; int power = 130; final String neverChange; Player({required this.name, required this.power, required this.neverChange}); Player.createGyuFamily({required House name, required int power}) : this.name = name, this.power = power, this.neverChange = 'man'; Player.clone(Player pl.. 더보기 Dart를 빠르게 알아보자 - class! #1 1. Class! class Player { String name = "gyugyu"; int power = 130; final String neverChange = "man"; void sayHello() { print("Hi my name is $name and i'm $neverChange"); } } void main() { var player = Player(); print(player.name); player.name = "hun"; print(player.name); player.sayHello(); } class [class 명]의 형식으로 기본 class를 생성할 수 있다. class의 property들은 타입을 명시해야 한다. (var를 사용할 수 없는건 아니지만 타입 명시를 권고함) .. 더보기 Dart를 빠르게 알아보자 - function! 1. Defining Fuction! (fat arrow syntax) void hihi(String name) { print("hihi my name is $name"); } String hihi2(String name) => "hihi my name is $name 22"; void main() { hihi("hyun!"); print(hihi2("hyun22!")); } C와 유사한 형식의 함수 꼴을 사용한다. return 타입을 함수명 앞에서 정의한다. 단순히 return만 하는 함수인 경우 위와 같이 => 을 사용해 한줄로 정의할 수 있다. 2. named parameter! String hihi2({String? name, required int age, String country = "kor.. 더보기 Dart를 빠르게 알아보자 - Data Type! 1. Basic Data Types! void main() { String name = "gyu"; bool isTrue = true; int age = 25; double money = 12.1; } 기본적인 Data type은 String, bool, int, double 등이 있다(다른 언어와 같음). 그리고 각 Data type은 class로 이루어져 있으므로 name. 을 통해 해당 타입의 메소드를 확인하고 사용할 수 있다! 2. List! void main() { var giveMefive = true; var numbers = [ 1, 2, 3, if (giveMefive) 5, ]; numbers.add(1); numbers.length; numbers.first; numbers.last;.. 더보기 Dart를 빠르게 알아보자 - 변수 개발 환경: VScode에서 dart, flutter를 추가해줌. 1. Hello world! void main() { print("Hello world"); } 2. 변수 선언! void main() { var name = "gyugyu"; print(name); String name2 = "hunger"; print(name2); } => 두 변수 선언 방법이 존재하고 둘은 다르지 않음. type-safe한 변수 선언을 지원하며 var name에서 자동으로 name의 타입이 String인걸 찾아줌. 단, 저 name에 이제 다른 타입은 넣을 수 없음 3. dynamic type! void main() { var name; name = "nico"; name = 12; print(name); name .. 더보기 이전 1 2 3 4 5 다음