우선 mask란 무엇일까? 전통적인 Permission으로 권한 관리할 때의 umask가 있다. umask 란 ? 파일을 생성할 때 초기의 퍼미션을 결정해주기 위해 사용하는 mask값이다. 여기서 mask라는 것은 가린다는 의미이다. 파일에 지나치게 많은 권한들이 부여될 경우에 보안상 위험하다. 따라서 umask값을 통해서 적절한 권한을 설정할 수 있도록 도와주는 역할을 한다. 즉, 필요하지 않은 권한들을 빼주는 역할을 한다. -> 그러나 POSIX ACL에서의 mask는 umask와 오히려 반대 개념으로 이해할 수 있다!! POSIX ACL에서의 mask 란 ? posix acl를 가지고 최대한 부여할 수 있는 권한을 나타내는 의미의 mask값이다. setfacl 명령어로 POSIX ACL값을 설정하는..
chage -M 예시) chage -M 30 user 패스워드를 사용할 수 있는 최대 기간을 지정하는 명령어 (Maximum number of days between password change) 기간은 보통 일 단위 이다. chage -W 패스워드가 사용 만료되었을 때 바로 로그인이 안되면 보안상으로는 안전하겠지만 사용할 때는 불편할 것이다. 따라서 바로 만료시키지 않고 일정 기간 내에 정정할 수 있게 하는 명령어이다. warning days를 지정하여 비밀번호를 바꾸라고 권장한다. chage -I (Inactive) 패스워드가 만료되고 나서 일정 기간 이내에 로그인 했을 때는 패스워드만 변경하면 바로 사용할 수 있게 함. 변경하지 않으면 이용할 수 없게 함 (inactive) chage -l (lis..
https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 암호해석 가능한 것은 두가지 경우가 있다 현재 인덱스에 해당하는 숫자를 한 숫자로 볼것인지 or 한칸 앞의 숫자와 합해서 두자리숫자로 볼것인지이다. dp[i] 에는 i 번째 숫자까지의 해석이 x개가 있다면 x개 값을 저장한다. 문제에서도 아주 큰 값이 나올 수 있다고 광고를 하고 있으니 dp가 좋은 해결방법이라고 생각했다 i) 현재 확인중인 인덱스에 해당하는 숫자를 한자리 수로 해석 2 5 1 1 4 라는 암호가 ..
su 명령어로 사용자를 전환할 수 있다. su 명령어에도 옵션이 몇개 있는데 이를 정리해보았다. 1. su -l , su - su - l user_name su - user_name -l 옵션을 주면, 전환하고자 하는 사용자의 쉘 환경으로 새롭게 쉘을 초기화 한다음 사용자 전환을 한다. su - user_name 과 동일한 결과이다. - 다음에 띄어쓰기를 주의하자 ㅎㅎ 또한 su - 명령어 뒤에 user_name을 생략했을 때는 일반적으로 root 사용자로 전환이 된다 !! 2. su su 옵션 없이 su 명령어를 실행하면 현재 사용자의 shell 환경을 그대로 사용하는 채로 사용자를 전환하는 것이다. 작업 디렉토리 또한 여전히 유지한 채로 전환된다. 예시) [user@localhost ~]$ su [r..
보통 전통적으로 리눅스에서 사용하는 퍼미션 (permision)은 우리에게 익숙한 drwxrwxr-x 이러한 형태로 확인이 된다. 그런데 전통적인 퍼미션으로는 others 에 해당하는 사용자에게 권한을 세부적으로 주는 것에 한계가 있다. 이를 해결하기 위한 것이 posix ACL이다. 1. 파일에 posix acl 를 설정하는 명령어 setfacl [OPTION] FILE 명령어) setfacl -m u:user01:rw userfile3 특정 유저 (=user01)에게 userfile3 라는 파일에 대해 read write를 할 수 있는 권한을 부여. 주의해야 할 점은, POSIX ACL로 권한을 설정한 이후에 일반 퍼미션 (chmod 같은 명령어) 을 주면 충돌이 일어날 수도 있다. rmission에..
https://www.acmicpc.net/problem/7570 7570번: 줄 세우기 입력은 2 개의 줄로 이루어져 있다. 첫 줄에는 어린이 수를 나타내는 정수가 주어진다. 둘째 줄에는 처음에 줄서있는 어린이들의 번호가 차례대로 주어진다. 주어진 번호들 사이에는 공백이 하 www.acmicpc.net 가장 긴 증가하는 수열의 길이를 찾은 후 전체 길이 n에서 빼준다. n = int(input()) data = list(map(int, input().split())) count = 1 # 길이가 1 인 수열로 취급 max_len = 0 position = [0] * (n+1) for i in range(1, len(data)): position[data[i]] = i # index를 저장한다. I#ND..
우선 리눅스는 멀티유저 운영체제이다! 여러명의 유저가 사용할 수 있도록 지원한다. 따라서 사용자를 생성, 수정, 삭제할 수 있다. 리눅스의 시스템 설정 파일은 /etc 디렉토리 하위에 있다. 그리고 /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow 4개의 파일에 사용자와 그룹의 정보가 저장되고 있다. 시스템에 등록된 사용자 정보 확인하기 1. /etc/passwd /etc/passwd 에는 시스템에 등록된 사용자 정보가 저장된다. 이눅스는 멀티유저 운영체제이다! 여러명의 유저가 사용할 수 있도록 지원한다. 내부를 살펴보면, user:x:1000:1000:user:/home/user:/bin/bash 과 같이 사용자 계정에 대한 등록 정보를 확인할 수 있다. : 는..
Multitasking : 동시에 실행되는 것처럼 보이지만, 사실상 CPU에서는 매 순간 하나의 작업만이 실행되고 있다. 하나의 프로그램이 끝나기 전에 다른 프로그램이 실행되는 것 Multi programming : 메모리에 여러 프로그램이 동시에 올라가 있음. 메모리 측면을 강조 Time sharing : CPU 를 좀 더 강조한 측면. 시간을 쪼개서 여러가지 프로그램을 실행한다. Multiprocess : 실행중인 프로그램을 프로세스라고 하며, 여러 프로그램이 동시에 실행된다는 의미 Multiprocessor : processor라는 것은 보통 CPU를 말한다. CPU가 여러개 있는 컴퓨터를 의미한다.