No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 532 | 533 | 534 |...| 1361 | 1362 | 1363 || Next»

チョーク折れまくり

どうも講義室のチョークがぽきぽき折れまくって困る.力のかけ過ぎな気もするのだけど,こんなに折れやすかったっけ? と悩むくらいに折れまくる.

湿気てる?

BrainFuck で golf る

30バイトの BrainFuck プログラムで意味のある単語を出力したいけれど難しいねという問題.大学の略称3文字でも 40バイトくらい必要なので悩ましい.

とりあえず,Unicode 対応の BrainFuck とかあれば漢字一文字で意味のある出力ができるかもなぁと思った今日このごろ.

そして自分でインタプリタを書き始めるも putwchar の使い方がよくわからず失敗する.つーか,locale 周りが全く分かってない.

年齢++;

めでたし?

LDAP で ssh の公開鍵管理

ホームディレクトリを共有しないマシン達で ssh の公開鍵だけでも共有したいなと.何やら LDAP に置けるらしいのでやってみた.

とりあえず,LDAP サーバでスキーマ追加.sshPublicKey を持ち得る ldapPublicKey というオブジェクトクラスを定義する.

cat > openssh-lpk.ldif <<'EOF'
dn: cn=openssh-lpk,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openssh-lpk
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
  DESC 'MANDATORY: OpenSSH Public key'
  EQUALITY octetStringMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
  DESC 'MANDATORY: OpenSSH LPK objectclass'
  MAY ( sshPublicKey $ uid )
  )
EOF
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f openssh-lpk.ldif

次に,ssh サーバにスクリプトを置いて LDAP から鍵を取れるようにする(ドメインとかはテキトウな値を書いている).

cat > get_pubkey_LDAP <<'EOF'
#!/bin/bash
if test ${EUID:-${UID}} != 0; then
    echo "run as root"
    exit 0
fi
if test "x$1" = "x"
then
  echo "usage: $0 UID"
  exit
fi
uid=$1
dcs="dc=fuga,dc=hoge,dc=jp"
ldapsearch -x -H ldapi:/// -b $dcs -LLL -D cn=admin,$dcs -w admin_pass_here "(& (objectClass=posixAccount) (uid=${uid}))" "sshPublicKey" | sed -e '1d;s/^ //' | sed -e 'H;$!d;g;s/\n//g' | sed -e 's/sshPublicKey: /\n/g' | sed -e '1d'
EOF
chmod 700 get_pubkey_LDAP
sudo cp get_pubkey_LDAP /etc/ssh/get_pubkey_LDAP

そして /etc/ssh/sshd_config にこのスクリプトを使うように追記:

AuthorizedKeysCommand /etc/ssh/get_pubkey_LDAP
AuthorizedKeysCommandUser root

もともと ~/.ssh/authorized_keys が有効なら,これで authorized_keys と LDAP と両方見に行ってくれる.

あとはユーザアカウント毎に鍵を LDAP に入れる.そのためにまずアカウントを ldapPublicKey クラスに入れる:

username="your_account_name"
dcs="dc=fuga,dc=hoge,dc=jp"
cat << << EOF | ldapadd -x -H ldapi:/// -D cn=admin,$dcs -w admin_pass_here
dn: uid=$username,ou=people,$dcs
changetype: modify
add: objectClass
objectClass: ldapPublicKey
EOF

そしてユーザの鍵を追加する:

username="your_account_name"
dcs="dc=fuga,dc=hoge,dc=jp"
pubkey=$( cat $YOUR_PUBLIC_KEY )
cat << EOF | ldapadd -x -H ldapi:/// -D cn=admin,$dcs -w admin_pass_here
dn: uid=$username,ou=people,$dcs
changetype: modify
add: sshPublicKey
sshPublicKey: $pubkey
EOF

なお,LDAP に鍵は複数個登録可能.あとは ssh サーバに置くスクリプトが複数の鍵に対応してればいい(と思う).

作業が捗る

日曜の大学は静かでいいなと.平日休んで土日に出勤しても良いような気もするのだけど,実際問題としてどうなんだろう?

就業規則で休日がどう定義されているかと裁量労働制の適用時にどういう扱いなのかか.でも振替の処理があるから特定の期間で日数だけあってれば問題ないような.そのうち給与まわりの部署にでも問い合わせて見ようかね.

まあ,毎日講義があったら無理だけど.

Facebook テロ

Facebook が「知り合いかも」とかいうデスクトップ通知が出てくるのだけど,夜に来た通知に乗ってる顔写真が怖いとビビる.写真は適切に設定しなければならないなと思う今日このごろ.

«Prev || 1 | 2 | 3 |...| 532 | 533 | 534 |...| 1361 | 1362 | 1363 || Next»
Search
Feeds

Page Top