STNS

Simple TOML Name Service

アドバンスドガイド

SSHログイン時にホームディレクトリを作成する

sshログインした際に、ユーザーのホームディレクトリは作成されません。/etc/pam.d/sshdに設定を行うことでホームディレクトリを自動で作成することが出来ます。

$ echo 'session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022' >> /etc/pam.d/sshd

Webサービスにおいて、アプリケーションをデプロイする際に、デプロイユーザーを作成し、デプロイする運用が多くあると思います。大体のケースにおいて、デプロイユーザーの~/.ssh/authorized_keysにデプロイするユーザーの公開鍵を羅列して運用することが多いでしょう。STNSのlink_users機能を利用すると同様のことがシンプルに実現できます。

[users.deploy]
id = 1
group_id = 1
link_users = ["example1","example2"]

[users.example1]
id = 2
group_id = 1
keys = ["ssh-rsa aaa"]

[users.example2]
id = 3
group_id = 1
keys = ["ssh-rsa bbb"]

上記の定義を行うと、deployというユーザー名でexampl1example2がログイン可能となります。裏の動きとしてはdeployというユーザー名でSSHログインを行う際に、example1とexample2の公開鍵であるssh-rsa aaaおよびssh-rsa bbbを返却しています。

サーバのパーミッション制御を行う際に、部署単位で行いたい場合があります。例えばA課で読み取り書き込み権限を与え、A課が所属するB部では読み取り権限のみ与えると行ったケースです。STNSではこういったケースにも対応する事ができます。

[groups.department]
users = ["user1"]
link_groups = ["division"]

[groups.division]
users = ["user2"]

この例ではdepartmentグループにuser1が所属しており、divisionグループにはuser2が所属しています。またdepartmentにはlink_groupsdivisionを定義しております。 これによって、departmentにはdivisionも所属しているという状態になり、idコマンドを発行すると下記のようになります。

$ id user2
uid=1001(user1) gid=1002(division) groups=1001(department),1002(division)

これによりuser2はdepartmentに所属するdivisionのユーザーということを表現できます。

LDAP インターフェース

起動オプションを切り替えることでLDAPプロトコルに対応できます。

$ stns --protocol ldap

AWS S3からの設定読み込み

AWS S3から設定ファイルを読み込むことができます。

$ stns --config s3://bucketname/config.toml

This theme is a fork of Solo.