compcache에 대해

Ubuntu 9.10을 램 4기가로 쓰면서 스왑을 1bit도 주지않았다

그런데 스왑(swapon -s)을 보면 항상
Filename Type Size Used Priority
/dev/ramzswap0                          partition 515272 0 100
이런 ramzswap0 가 잡혀있었고
딱히 사용도 안하는데다가 무슨역할을 하는지 나와있는 한글문서(중요하다)도 전혀 없어서 그냥 사용했었는데
램 4g -> 2g 로 줄이게됨에따라 램부족현상이 잦아 스왑관리의 필요성을 느꼈다.
결론적으로 /dev/ramzswap0 는 compcache라는 커널 모듈에 의해 생기며
이게 하는 역할은 cache를 압축하여 저장함으로써 램을 절약 시킬수있다 라고 한다.
(발영어 + 구번에 의한 지식습득이므로 정확하지 않을수도잇다)
compcache에 대한 한글포스팅은 내가 처음인거같다ㅋㅋ(처음은 여러의미로 중요하다)
(뭐 섹폴은 이미 다 알고있었을테지만…)
더 자세한것은
사이즈를 수정해보려고 /etc/initramfs-tools/initramfs.conf 를 건드려 보았으나 수정이 되지 않았다….
(update-initramfs 도 했지만..)

sticky bit

sticky bit

8진수로 1000 이며
대표적으로 설정된 디렉토리는 /tmp 이다
이 비트가 설정되어있으면 해당 권한을가진 사용자외에는 삭제가 불가능하다
예를들어
root 유저로 777권한의 디렉토리를 만들면
그 안에 A유저가 디렉토리를 생성할수있다(쓰기권한이 있으니까)
근데 중요한건 B유저가 A유저가 만들어놓은 디렉토리(파일)를 삭제할수있다(B역시 쓰기권한이있다!)
하지만 sticky bit를 설정한 1777 로 만들면
A가 만든 디렉토리는 A 와 root 만이 지울수있게된다 (읽는거는 B도 가능하다(A가 권한을 줫을경우))

Linux MD5 passwd hash analysis

이전 포스트에서 shadow 파일에대해 살펴봤는데

openssl로 다음과같이 shadow에 MD5로 생성되는 같은 단락(?)을 만들수 있다
 openssl passwd -1 -salt salt testpasswd
$1$salt$GjASc4pDEk5p9FgnhQbfW/
salt 값이 어떻게 들어가는지 알아보기위해 openssl 라이브러리의 apps/passwd.c 를 살펴보았다. 살펴볼 함수는
static char *md5crypt(const char *passwd, const char *magic, const char *salt)
으로 인자로 패스워드, 매직값(1,apr1) , salt 값 을 받음을 알수있다.
먼저 “[PASSWD][SALT][PASSWD]” 로 MD5 로 해싱을 하고
“[PASSWD]$[MAGIC]$[SALT]”이랑 위 해시값이랑 적절하게 섞어서 그걸또 1000번 더 해싱하던데
자세한건 직접 소스 보는게 좋을꺼같다. (볼일도 없을거같지만)
으으 존더리퍼 만세 …

Linux passwd and shadow and group 에 대한 고찰 ?!

passwd  권한 644 (root:root)
root:x:0:0:root:/root:/bin/bash
test:x:1001:1002:,,,:/home/test:/bin/bash
[ID]:[PASSWD]:[UID]:[GID]:[GECOS]:[USERDIR]:[USERSHELL]
오래된 리눅스 or 유닉스는 PASSWD 칸이 직접 매겨져있다.
요즘은 PASSWD만 따로 shadow 파일로 만들어서 쓰는데
뭐 옛날에는 해싱을 못풀어서 패스워드파일이 공개되도 별 문제 없었다는데
이젠 개나소나 다푸니까 그거 자체도 보호해야된다 싶어서 일반유저는 읽을수도 없다나 뭐라나…
예를들어 test아이디는 암호가 shadow파일에 있으며 UID는 1001이며 GID는 1002이다 홈디렉토리는 /home/test 이며 쉘은 /bin/bash 를 쓴다  정도?
GECOS는 사용자 정보를 저장하는데
Full Name: Only
Room Number []: 105
Work Phone []: 010
Home Phone []: 055
뭐 이런거? 위대로 쓰니까 GECOS 에 Only,105,010,055 이렇게 들어가있네
passwd 파일을 변경시킬수있는 명령어들로는
adduser – 유저 생성시
deluser – 유저 제거시
usermod – 유저 변경시
chfn – GECOS 변경시
기타등등 (만들기나름이겠지뭐)
shadow  권한 640 (root:shadow)
root:!:14606:0:99999:7:::
test:$6$j9YC72KG$ysrTy/UpuPez62gWPp/P0.glzzGm9JnpKmQ3TDn1ab..uT8TvHEpv9.IISjdjhQut4CXgA.RieQtVAPtiLq0w.:14643:0:99999:7:::
 – 아이디
 – 해시된 패스워드
 – 마지막 패스워드 바꾼날짜
 – 패스워드 변경까지 남은기간 (최소)
 – 패스워드 변경까지 남은기간 (최대)
 – 패스워드 만료전 경고기간
 – 패스워드 만료후 사용 가능한 기간
 – 계정 만료일
 – 사용치 않음
패스워드를 중점적으로 관리하기위해 따로 떨어져나온 파일이다 랄까 ..
해시된 패스워드에 대해 자세히 쓰자면
$6$j9YC72KG$ysrTy/UpuPez62gWPp/P0.glzzGm9JnpKmQ3TDn1ab..uT8TvHEpv9.IISjdjhQut4CXgA.RieQtVAPtiLq0w
으잌 매우길다 ㅋㅋ ($는 토큰이다)
첫번째는 해시방법 0-DES, 1-MD5, 2-Blowfish, 5-SHA-256, 6-SHA512  (6이므로 SHA512로 되어있음을 알수있다)
두번째는 SALT – 사전파일크랙을 방지하기위해 암호문에 추가하는 문자열.
세번째는 해시된 문자열 (MD5라고해서 MD5형식이 아니다… 위 해시방법을 Base 로 조금 다른 해시방법)
passwd 명령어를통해 조작할수있다.
group  권한 644 (root:root)
root:x:0:root,test
test:x:1002:
[GROUP_NAME]:[GPASSWD]:[GID]:[USER_LIST]
이런형태이며
USER_LIST 에는 여러명의 유저가 들어갈수있으며 , 콤마로 구분된다.
변경할수있는 명령어들은
groupadd  groupdel  groupmod  이런거 ?!
gshadow도 있는데 잘 안쓰이며 위 shadow와 비슷하므로 넘어간다