主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Linux ユーザーを rsync のみに制限するには

最終更新日 2013-01-26 23:19:10 (1年以上前の記事です)

rsync を ssh 経由でバックアップなどに用いたりすることは良くあるけど、それだけの為に Linux ユーザーを作成してシェルを与えるのは嫌な場合が多い。そんな時は、 ssh の PubkeyAuthentication と組み合わせて、特定のユーザーは rsync のみを実行できるように制限する事ができる。その設定をした時のメモ。

ちにみにここで紹介する方法は、 su などでそのユーザーになったり、 ssh の PasswordAuthentication が有効になっていてパスワードでログインできたりする場合は意味がなくなるので注意。

まずリモートサーバー上でユーザーを作成する際は普通にシェルを与える。 useradd の場合は

# useradd -s /bin/bash ... user_name

もし既存のユーザーを使用するなら

# usermod -s /bin/bash user_name

次に必要な rsync をとりあえず実行してみる。この際の ssh コマンドに -v を付けて、詳細なメッセージも表示するようにする。

$ rsync -avz -e'ssh -v' rsyncuser@www.enjoitech.com:/target/to/backup ./
OpenSSH_xxx, OpenSSL xxx
debug1: Reading configuration data xxx

... snip ...

debug1: Sending command: rsync --server --sender -vlogDtprz . /target/to/backup
...

この結果の中の Sending command: の行に注目して、これをリモートサーバー側の rsync 用ユーザーの authorized_keys の中に追加してやる。

$ vi .ssh/authorized_keys
command="rsync --server --sender -vlogDtprz . /target/to/backup" ssh-rsa AAAAB3Nza ... key ... pWrlObAdjzB8= ma@milk

これで終了。
ここまでできたら該当のユーザーに ssh で接続して、シェルが返ってこない事を確認。そして rsync はしっかり動く事も確認する。

最終更新日 2013-01-26 23:19:10

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google