56 西 Debian
西 Debian
2012 2 26
56 西 Debian 2012 2
1 Introduction
Debian JP
西 Debian 勉強 Debian GNU/Linux のさ (新し Debian 特有
Debian です
的との三えてす。
ML 掲示なく顔をる事報交
期的れる
料の
れでしいお楽下さ
1
西Debian
1 Introduction 1
2 近の Debian 関係ベン 3
3 前課 4
4 Autofs pam chroot で作マルザー 7
5 emacs24 問題使える t-code.deb た話 13
6 Debian Policy 関係ての 16
7 後の 18
2
56 西 Debian 強会 2012 2
2 Debian
Debian JP
2.1 55 西 Debian
55 目の西 Debian 1 28 29 間の宿と催さた。
した apt のミラーサーバにースージ含まれていないとう思わぬ状況になましたが、いつも勉強会会
とは Hack
2.2 85 Debian
85 目のリア Debian 2 18
加者たよです KDE debhelper た。
2.3 0 Debian
じく 2 18 Debian した
0 回目とな今回の勉強会では Debian バの量産方法 DKMS とパケージ作成、キーサインパーテなどが行
れたす。
後も Debian いで
3
56 西 Debian 強会 2012 2
3
Debian JP
回は課題しま.
前課 1 chroot
1. らな人、 chroot につて調とをてく
2. PAM の設たこあり?
定をはそも記くだ
前課 2 DebianPolicy 7 ださ
加者んの以下りで.
3.1 kozo2
1.
2. いで
3. みま
3.2 西
1.
PAM pam-auth-update libpam-ldap libpam-tmpdir 使設定ましオー
ウン LDAP と組合わホーウンのに使
3.3
1. Yes.
Linux From Scratch Gentoo Linux に使てい
Debian もあしたによ使ます
近は chroot が進した jail(8) lxc とかてい
2. りま (
3.4
1. PC 上で なる root directory 提供
4
せん
2. All right
3.5
1.
が、忘れ
2.
3.6
1. chroot 使ことます
Debian ースにシステムにおい Linux Kernel Android 拡張し、 chroot Debian Android
切り
Andorid Android init プロを全 kill chroot Debian
2. PAM 設定 Debian GNOME USB どの動マ
autofs では nautilus で行ていたこりま
3.7
1.
ませ表をにしす。
2. てお
3.8 gdevmjc
1. chroot
PAM pam limits, pam chroot, pam ldap などたこりま pa wheel 追加
ありオーンタマス NFS
bind プをしま
2. い、えずしま
3.9 0xBCD1BC92
1. Yes
chroot PAM ートンタ定をとが
2. Debian Policy 7
3.10
1. Yes
2. autofs Yes PAM
3.
5
3.11 Y.YATSUO
1. いえ
:
ートてプがそにアできうに
使われ:
Debian はクなビ境を
chroot 環境かす
2. んで
3.12 lurdan
1. yes
2. no
3. yes
3.13
1.
野市 Xubuntu 中で LDAP てホムをントるの pam mount 使使
か話調べよのまげに
2. 本語でもすか (´ ω;` )
http://www.debian.or.jp/community/devel/debian-policy-ja/policy.ja.html/ch-relationships.
html
3.14
1. git-buildpackage cowbuilder git-builder shell script 使
2. 。某所ではサーバ御本尊の $HOME NFS クライアントに提供していて、 LDAP 後に autofs
mount
3. んです。
6
56 西 Debian 強会 2012 2
4 Autofs pam chroot
城国
4.1
さん職場などの組織内ではイル共有ーバーやメール受信サバーなど、組内で情報を共有するたのサ
ーをいるある思い
のユのホ覗け不都る。
ステ見せ良いない
ど、の制ーザグイるこ躇すとはすか?
場合 chroot れる
られーザ chroot ザー
加すに新 chroot れだのデスクスもす。
ころが、 一工夫すると一つ chroot 環境を複数のーザー間で共しながらーザー間 chroot 環境は分離さ
るこきる、う話がです
4.2
のたな道 autofs pam chroot れに紹介おき
4.2.1 pam chroot
PAM Pluggable Authentication Modules
*
1
はな Sun Microsystems
ライとしールれた設定イル呼出 API ます pam chroot
の中ユーンの chroot
す。マンンスルし
$ sudo aptitude install libpam-chroot
4.2.2 Autofs
Autofs 、オ Sun Microsystems NFS automount
NFS ーム Linux autofs
*
1
pam(5) pam はなく、 PAM(7) PAM す。
7
NFS に限らず、他のフイルシステムもオンデマンドでマウントしてくれます。次のコマンドでインストールしま
$ sudo aptitude install autofs5
4.3
てが場合 chroot
放りできログ chroot
、そどう構を使考えてゆ
4.3.1 ウン
chroot ユーー」どのよう指定るかまず題にりまが、ユーーのルー設定使う
定が便利になりますので、お勧めします。ここでは chroot させるユーザーは staff グループに属することにします。
root 管理ウン admin )は staff プにない注意
4.3.2 イン
に、 グイン処理のいずれかの段階でーザーのプロセス chroot 境に放り込むわけですからどのようにロ
ンすかを定しおく必要があますいわ、システム内足を踏み入れ玄関を把しておく、とうわ
。筆いつ的な口をみま
VGA
リアソー
ssh, sftp
rlogin, rcp, rsh
telnet
ftp
X (xdm, gdm,. . . )
su, sudo
うでんに、この数 chroot が必
4.3.3 chroot 理をせる
chroot する操作は、結 chroot システムコールを呼び出す処理に帰着するわけですが、ログインを司るアプリケー
サーバープロラムそのものが、 chroot 対応してる場合もありますそうでない場合は PAM 認証の処
をす pam chroot chroot
定さ chroot させーバは、
OpenSSH 4.8
ProFTPD
vsftpd
ありますので、これらはサーバーの機能を活用し、他の経路でのログインで pam chroot chroot せることにし
す。
8
4.4
4.4.1 chroot
/jail/chroot ディ
chroot hiroshi
/jail/chroot/hiroshi の下 chroot することになります。まずは、 chroot 先として必要なデレクトリを作
す。
mkdir /jail/chroot
OpenSSH の設
/etc/ssh/sshd config 追記す。
Match Group staff
ChrootDirectory /jail/chroot/%u
ProFTPD
般ユザー FTP 自分ホーアクスでればまた
ProFTPD 、ユザー /dev/ スペアクスさせん
のでのホ閉じしまにし
ProFTPD 設定 /etc/proftpd/proftpd.conf
DefaultRoot ~ staff,!root
ようおき
pam chroot
VGA のコソーやシアルンソルのグイを担する /bin/login, r
*
2
telnet など
ログるプ chroot
PAM PAM pam chroot chroot に設す。
/etc/pam.d/login , /etc/pam.d/rlogin, /etc/pam.d/rexec, /etc/pam.d/rsh /etc/pam.d/other
設定しま
session required pam_chroot.so use_groups
た、 /etc/security/chroot.conf 行をます
@staff /jail/chroot/%u
なお、筆者の調べた範囲では krb5-telnetd ケージで提供される telnet ーバーデーモンや krb5-rsh-server
ケー供さ rlogin ーモ PAM に対おら chroot できせん Kerberos
利用場合 PAM telnetd heimdal-servers ケー使うと chroot
xdm, gdm Debian squeeze xdm xdm gdm gdm
gdm3 ケージで提供されます。筆者の環境では gdm3 xdm 用意していますので、/etc/pam.d/gdm3,
*
2
rlogin, rsh, rexec, rmt, . . .
9
/etc/pam.d/xdm
session required pam_chroot.so use_groups
X ーバ X ントため $XAUTHORITY
chroot 前後 chroot 変わ X
ーと X 問題する性はす。
4.4.2 Chroot を構 autofs 設定
に、/jail/chroot 下に各ユーザー毎 chroot 境を構築するため autofs の設定を紹介しま。編する
定フイルマスイル
*
3
/etc/auto.master イル
*
4
/etc/auto.jailstaff
二つす。
/etc/autofs.master
/jail/chroot auto.jailstaff
/etc/autofs.jailstaff
* / -ro :/jail/root \
/home/staff/& -rw :/home/staff/& \
/dev -rw :/dev \
/etc -ro :/etc \
/bin -ro :/bin \
/usr -ro :/usr \
/lib -ro :/lib \
/var -rw :/var \
/proc -fstype=proc proc \
/tmp -fstype=tmpfs,rw tmp \
/dev/pts -fstype=devpts,rw devpts
定で mkdir /jail/root autofs しま
# /etc/init.d/autofs start
/etc, /bin, /usr, /lib レク dchroot schroot 構築ンの Debian
ものことます
4.5
4.5.1 OpenSSH ChrootDirectory を使ない
OpenSSH PAM るの pam chroot 使ともきる 4.4.1 pam chroot
使 chroot させ法をた。 4.4.1 の方分離効な chroot
うロがでで、安全だか
方、特権分離の機能を無効にしなくてはいけませんが pam chroot 使うこともできるので、ここでトリビアとし
紹介きま
pam chroot chroot ねるーザで、 pam chroot chroot コー
を呼処理段階 sshd root いてないいけいの OpenSSH 権分」とばれ機能
効に要がす。
の設が、/etc/ssh/sshd config
*
3
くは man auto.master 照。
*
4
くは man 5 autofs を参照。
10
UsePAM no
行を
UsePAM yes
変更 PAM す。特権利かなり、明禁止合は
UsePrivilegeSeparation yes
行を
UsePrivilegeSeparation no
ますその上で /etc/pam.d/sshd 4.4.1 掲げ設定を追して chroot pam chroot るよ
にし
4.5.2 rssh
rsh の書間違ではありせん rssh う、 scp sftp アカントログンシして用す目的
があ rssh chroot ユーンシ rssh
rssh chroot SSH しかないーザは、のシルを使と良
う。
4.5.3 wu-ftpd, vsftpd
Ftp のいつかプ単法で chroot ありす。とも
wu-ftp d ftp の実た記/etc/passwd にあホー
スの定に於い “/home/./foo” よう “/./ という区り子あると、 ftp ログインにそ chroot
ます最近 Wu-ftpd を使う人もほんどないと思ます、新くて人気ある ftp ーバーの装の vsftpd
この引きおり定す “/./ chroot ます
4.6
Autofs の間接マプフイルにフイルシステムのマピングの定義を追加することで、いろいろなことができそ
す。
Apache httpd userdir public html autofs の別場所ウンる。
Git ベアトリ autofs ーの chroot 配下ウンて、 ssh://· · · スでよう
、共ジト供す
Subversion autofs ユー chroot ssh+svn://· · ·/
できにす
4.7
ユーのロインる環 chroot 環境閉じめるめの Debian GNU/Linux の設の問を取
上げ chroot 環境るた autofs であとをまし
Debian の文化で pbuilder schroot ど、一人占有する PC OS 環境を構するため chroot
構を使 chroot 発想使かと
いま
係すのソ皆様致し
11
本章の著作権は、著者である久保博 <h-kubo@geisya.or.jp> にあります
*
5
。また、本章の利用許諾の条件は GNU
General Public License Version 2
GNU General Public License Version 2 はイ トをして http://www.gnu.org/licenses/old-
licenses/gpl-2.0.html URL
*
5
Copyright
c
2012 Hiroshi Kubo all rights reserved.
12
56 西 Debian 強会 2012 2
5 emacs24使
t-code.deb
西 孝三
54 回関西 Debian 勉強会で t-code バグレポをしてみた」という題で発表しました。前回の発表で Debian
テム使 t-code レポ Debian ジのみ、
ころていした回は問題動作ケーを作ると、とえずする
(わゆレオ) うな行えかを 4 点にお伝す。
1. (グを) 在の Debian ケーースの取、ビ法の
2. グ修むソードき換ルドレオ
3. レオ
4. (正が場合)Debian
5.1 Debian
ず既存の Debian ケージのースード取得、ビドすることでケー作成法の認をします。
ージスコ取得うに apt-get ドに source ンをけパケーしま
kozo2@debian:~/sandbox$ apt-get source t-code
kozo2@debian:~/sandbox$ ls
t-code-2.3.1 t-code_2.3.1-3.dsc
t-code_2.3.1-3.diff.gz t-code_2.3.1.orig.tar.gz
れで取得。今かくです*.dsc, *.diff.gz, *.orig.tar.gz
は説明せ t-code-2.3.1 へ移動し、まずこのソース用いてビドをいパケー (.deb イル) 成し
す。 debuild コマを用
kozo2@debian:~/sandbox$ cd t-code-2.3.1/
kozo2@debian:~/sandbox/t-code-2.3.1$ ls
acinclude.m4 ChangeLog.old COPYING install-sh mazegaki skkinput3
aclocal.m4 config.guess debian kinput2 missing
AUTHORS config.sub doc lisp mkinstalldirs
bushu-util configure etc Makefile.am NEWS
ChangeLog configure.in INSTALL Makefile.in README
kozo2@debian:~/sandbox/t-code-2.3.1$ debuild -us -uc
debuild コマンドのオプシ -us -uc は署名はせずに単 package build する時に用います。これで一つ上の
directory .deb イルきま
kozo2@debian:~/sandbox/t-code-2.3.1$ ls ..
t-code-2.3.1 t-code_2.3.1-3_amd64.build t-code_2.3.1-3.diff.gz t-code_2.3.1.orig.tar.gz
t-code_2.3.1-3_all.deb t-code_2.3.1-3_amd64.changes t-code_2.3.1-3.dsc
13
5.2
にバのあるソースコードをしいソースコドに置き換え、ビルドできるかどうか試してます。新しいソー
ード http://code.google.com/p/tcode/から得し
kozo2@debian:~/sandbox/t-code-2.3.1$ cd ..
kozo2@debian:~/sandbox$ svn co http://tcode.googlecode.com/svn/trunk/ tcode-read-only
き換要なスココピるこ書き
kozo2@debian:~/sandbox$ cp tcode-read-only/tc/bushu-util/* t-code-2.3.1/bushu-util/
kozo2@debian:~/sandbox$ cp tcode-read-only/tc/etc/* t-code-2.3.1/etc/
kozo2@debian:~/sandbox$ cp tcode-read-only/tc/lisp/* t-code-2.3.1/lisp/
kozo2@debian:~/sandbox$ cp tcode-read-only/tc/mazegaki/* t-code-2.3.1/mazegaki/
れでが通しま (ます)
kozo2@debian:~/sandbox$ cd t-code-2.3.1
kozo2@debian:~/sandbox$ debuild -us -uc
りあ置きソーードしたこれスト動作して
5.3
程作成した用いるソースコードに変更をえた Debian ージイントーし、動作に問題がいか認し
。イール dpkg コマ-i オプストたい.deb
kozo2@debian:~/sandbox$ sudo dpkg -i t-code_2.3.1-3_all.deb
Selecting previously unselected package t-code.
(Reading database ... 97587 files and directories currently installed.)
Unpacking t-code (from t-code_2.3.1-3_all.deb) ...
Setting up t-code (2:2.3.1-3) ...
install/t-code: Handling install for emacsen flavor emacs23
Processing triggers for install-info ...
kozo2@debian:~/sandbox$
いよ t-code 題な emacs 起動 t-code 習プ
グラ eelll を試 emacs が下、何があがわす。
Debugger entered--Lisp error: (error ‘‘ /usr/share/tc/EELLLTXT 存在しません’’)
signal(error (‘‘ /usr/share/tc/EELLLTXT が存在しませ’’))
error(‘‘イル %s 存在しません’’ ‘‘/usr/share/tc/EELLLTXT’’)
tcode-set-work-buffer(‘‘ *eelll: text*’’ ‘‘EELLLTXT’’)
eelll-completing-read()
call-interactively(eelll t nil)
execute-extended-command(nil)
call-interactively(execute-extended-command nil nil)
5.4 Debian
先程の問題は t-code が用いる交ぜ書き、部首合成変換用データがインストールされているデレクトリを指定する
emacs tcode-site-data-directory るも。こ tcode-site-data-directory を指し直
ージ directory debian/emacsen-startup に下設定しビ直し
14
;;; 50t-code.el --- Debian t-code startup file -*-mode: emacs-lisp;-*-
;;; Code:
(let ((lispdir (concat ‘‘/usr/share/’’ (symbol-name flavor) ‘‘/site-lisp/t-code’’)))
(when (and (featurep ’mule) (file-exists-p (concat lispdir ‘‘/tc.elc’’)))
(if (fboundp ’debian-pkg-add-load-path-item)
(debian-pkg-add-load-path-item lispdir)
(setq load-path (cons lispdir load-path)))
;;
(require ’tc-setup)
(defconst tcode-site-data-directory ‘‘/usr/share/t-code/’’)
;;
))
;;; 50t-code.el ends here
kozo2@debian:~/sandbox/t-code-2.3.1$ debuild -us -uc
kozo2@debian:~/sandbox/t-code-2.3.1$ sudo aptitude purge t-code
kozo2@debian:~/sandbox/t-code-2.3.1$ sudo dpkg -i ../t-code_2.3.1-3_all.deb
emacs23 24 emacs t-code 使
と思 emacsen-startup elisp Debian
/etc/emacs/site-start.d/50t-code.el にコれま
5.5
かがでしたでうか今回とりえず Debian ケージを作るとい目的ソースコードは変更を上書きし
けですが本来は差の変更なを記録す必要があためまだだやらねならないとはありす。 upstream
t-code てい t-code Debian ージたこ
。そはま回の西 Debian で発せてばと
15
56 西 Debian 強会 2012 2
6 Debian Policy
量も多くてなかなか読辛いのが Debian Policy。敬遠している方もいと思います。とはいえ ポリー」と大
な名いてすが局の書かる内
方にのルガイストス」
集めのでケーの開していとも、依存に不なも感じとが
れば答えずで
いうわけで、勉強会で連続コマとして少しずつ読んでみることにします。いろいろ含めて、おおよ 1 年か
終了るこになと思います。当し人はまだ担当してない人から次の担者を名します。指され
、まれて章か不同な部んでい。
て、むの関係シーいてれて 7
存関とい Depends れる 前提して前に要」すが dpkg
その」をるこきま
て、文はとし
*
6
み終におてい
は四としリーンのな形さんてき酸をて頂思い
6.1
6.1.1 debian/control
存関 debian/control 係のじた
す。
Depends: libqdbm14, libestraier
要が、カ区切て複挙すがで。こージン指ると
Depends: libqdbm14 (>> 1.8.77 ), libestraier
なりこの libqdbm14 1.8.77 は依たせ
類がかあて、どれれば、と合は (|) 使
Depends: emacs23 | emacs22 | emacs21
*
6
事前課題指定した点では、日本訳の存在り忘ていまし
16
書くでき
6.1.2 ナリ
イナ、そンスルすめにな情して関係使われ。ま
的なら。
Depends くてかなしま
Recommends くて動きけれきれ緒に使す。
Suggests 緒に使うと便ケー指定す。この
Enhances 緒に使うと便ケー指定。主定さ
Pre-Depends 常の Depends 段階依存のパ。非奨なで、使われ
合は雷がかもませ
方でやや関係してようがあ
Breaks 比較的最近追加されました。このパケージをインストールすることで動作しなくなるパケージを指定しま
。通自パケー成で使れる
Conflicts 全に立不ケー指定す。ムにうち 1 つしイントーませ
Replace 定しケー体、は一のパ
Provides (在す場合) し得定のしま
6.1.3 スパケー
ケー使では Depends
ージ関係そのスパ必要とし関係使れま
Build-Depends ルドため要な
Build-Conflicts ルドる時ストれていけ定し
Build-Depends-Indep build-indep ーゲトをドすに必しま
Build-Conflicts-Indep build-indep ーゲトをスト
6.2
間次が、は次うな定で
Depends Recommends Suggests
Provides
場でこれなさであ、抜ちで課題解度ト、いなする知れ
せん
6.3
回の yyatuo んに願います ()
17
56 西 Debian 強会 2012 2
7
Debian JP
7.1
回は 2012 3 25 福島ンタいま
表には未のでなさ表をしてす。
18
西Debian
Debian
2012 2 26 1
西 Debian
19