web-dev-qa-db-ja.com

ファイル/フォルダを作成および削除する権限を許可しながら、ユーザーをホームディレクトリに投獄します

クライアントに自分のサーバー(Ubuntu 10.10)上のサイトのルートディレクトリへのSFTPアクセスを許可して、クライアントが自分のWebサイトを管理できるようにしようとしています。

私はユーザーをディレクトリに投獄し、SFTPアクセスを与えることに成功しました。サブディレクトリ(所有するディレクトリ)でのみ新しいファイルを作成および削除できます。これは、サイトのルートの親ディレクトリへのアクセスを許可する必要があることを意味します。

これまでのところ、私はこの チュートリアル の指示に従っています:

addgroup filetransfer
usermod -G filetransfer username
chown root:root /home/username
chmod 755 /home/username
cd /home/username
mkdir docs public_html
chown username:username *

ファイルを作成および削除する機能を許可しながら、サイトのルート(public_htmlなど)に制限するにはどうすればよいですか。私が読んだすべてのチュートリアルは、ルートがユーザーのホームディレクトリの所有者である必要があることを示唆しています。これにより、ユーザーはそのディレクトリ内への書き込みアクセスを防ぐことができます。

私は自分のサーバーを管理するのは比較的新しいので、アドバイスは非常にありがたいです。

どうもありがとう。

6
limitlessloop

これを達成するために何をしたかを正確に伝える必要があります。まだ使用していない場合は、chrootを使用してみてください(ここでのアドバイス: http://www.unixwiz.net/techtips/chroot-practices.html )。

特定の問題については、ルートフォルダーへの書き込み権限をユーザーに提供する必要があります。それらを所有者として設定し、書き込み権限が設定されていることを確認してください。なぜこれがそんなに悪い考えになるのかわかりません:

# chown someuser /user/root/folder
# chmod u+w /user/root/folder

または、所有者としてrootを維持したい場合は、グループでそれを行うことができます。

# addgroup somegroup
# adduser someuser somegroup
# chgrp somegroup /user/root/folder
# chmod g+w /user/root/folder

[〜#〜]編集[〜#〜]

提供されたリンクにコメントが記載されているように、chrootが正しく機能するには、rootが関連するディレクトリの所有者である必要があるようです。しかし、グループの変更を妨げるものは何もないようです。したがって、このチュートリアルの命名に従うと、これでうまくいく可能性があります。

# chown root:filetransfer /home/username
# chmod 775 /home/username

権限が755ではなく775になっていることに注目してください。これにより、ファイル転送グループに属するすべてのユーザーに書き込み権限が付与されます。

編集2

いいえ、それだけでは十分ではありません。多分これは実行可能ではありません。

1

Ubuntuシステムの場合-

私はこれらの引数でこのコマンドを使用しました:

Sudo useradd -d /home/node -m node

そして、このユーザー名とsftpでsshにテストしました-私はこのユーザー名を正常にジェイルしました、そしてbin/Shellスケルトンがそのユーザー名に与えられますが、機能が制限されています。

これは、ほんの数日前に出会った最もシンプルで最良のソリューションです。

0
Faron