Logo address

factotum のパッチの充て方

TLS において factotum がユーザ web のプロセスを処理できるようにするためには、
	/sys/src/cmd/auth/factotum/util.c
の中の以下のコードに
	case Kuser:
		if(strcmp(fss->sysuser, owner) != 0){
			werrstr("%q can't use %q's keys", fss->sysuser, owner);
			return failure(fss, nil);
		}
		break;
次のように2つの行を追加する必要がある。
	case Kuser:
		if(strcmp(fss->sysuser, "web") == 0)
			break;
		if(strcmp(fss->sysuser, owner) != 0){
			werrstr("%q can't use %q's keys", fss->sysuser, owner);
			return failure(fss, nil);
		}
		break;
この下で factotum をコンパイルした後に、(カーネルがこれを使用しているので)
カーネルの再コンパイルが必要になる。
	cpu% cd /sys/src/9/pc
	cpu% ramfs
	cpu% bind -bc /tmp .
	cpu% mk 'CONF=pccpu' install
	...
	cpu%
これは {9pccpu} を再コンパイルする例である。