Map Caps lock as additional Ctrl

Ubuntu (Maybe debian(Maybe linux))

or this:

Run setxkbmap -option ctrl:nocaps for temporarily setup.

Windows

OSX

GOTO preference.

Nginx, PHP-fpm, userdir

동아리에서 실습 서버를 구축하는데 아이들이 각자 웹페이지를 만들 수 있도록 userdir를 설정하고 싶었다.
userdir을 설정하면 계정마다 ~/public_html 디렉터리 밑에 파일들을 만들어 두면 server-name/~username 같은 URL로 접속할 수 있게 해 주어서 학교에서 자주 쓰인다.

아파치에서는 userdir 모듈을 로드하고 PHP도 주석 하나만 풀면 되는데 Nginx에서는 좀 어려웠다. 아무리 설정파일들을 찾아 봐도 PHP는 실행이 안 되었다. 그러다가 되는 설정을 찾았고 역시나 location 구문을 두 번 적고 중복되는 부분도 참 많다. Nginx에서 이 부분은 얼른 개선해 주면 좋겠는데 일부러 안 하는 듯 하다.

SSH 프록시 설정

SSH를 쓰다 보면 프록시를 타야 할 경우가 가끔 생긴다. 공유기 밑에 여러 호스트가 물려 있다든지 최종 목적지가 특정한 IP로부터의 접속만 허용한다든가 하는 이유로 말이다.
그런 경우엔 방법이 몇 가지 존재하는데 프록시로 쓸 호스트를 A, 최종 목적지 호스트를 X라고 하자.

1. A에 접속한 후 거기에서 X에 접속

1.1 이걸 한 번에

2. 프록시 설정

1의 방법은 좀 문제가 있는데 SSH를 여러 번 타면 괜히 암호화를 여러 번 거치게 된다. scp도 쓰기에 굉장히 불편하고.
그래서 ~/.ssh/config를 수정해서 아예 프록시 설정을 만들어버리자.

ControlMaster, ControlPath 부분은 굳이 적지 않아도 되는 부분이지만 X 호스트에 여러 커넥션을 만들 때 굳이 A에 커넥션을 여러 개 만들지 않게 하는 옵션이다. 이 옵션을 쓰려면 ControlPath에 해당하는 디렉터리를 수동으로 만들어 줘야 한다. 디렉터리가 없다면 스스로 만들어 주지 않고 에러를 뱉는다.

ProxyCommand 옵션은 말 그대로 프록시를 만드는 커맨드를 적는 옵션인데 %p는 X에 접속할 때의 포트를 뜻하는 이스케이프 시퀀스이고 나머지는 그냥 평범하게 netcat을 이용해서 커넥션을 여는 것이다.
-W 옵션을 이용하여 nc 없이도 커넥션을 열 수 있다.

2.1 보너스

가끔 포트포워딩이 전혀 동작하지 않는 환경에서 SSH를 열어 둬야 할 때가 있는데 이 때는 Tor를 이용하면 편하다(Tor가 그러라고 있는 건 아니지만..). 참고
SSH를 Tor의 Hidden service로 열어 두고 ssh 설정에 이 ProxyCommand를 쓰면 된다.