私はSSHをインストールしましたが、Ubuntuにログインするために私のオリジナルのアカウントを使った場合、それはあまりにも多くの権限を持っていることがわかりました。
Ubuntuの特定のフォルダに対する権限のみを持つようにユーザーを制限したいです。そのようなユーザを設定するにはどうすればいいですか。
これは簡単です。自分のアクセスするために必要なホームディレクトリを設定して、新しいユーザーを作成します(このコマンドはSudo
またはrootシェルで実行する必要があります)。
adduser --home /restricted/directory restricted_user
これにより、ユーザーrestricted_user
、ディレクトリ/restricted/directory
が作成され、そのディレクトリに対するアクセス許可が設定され、ユーザーはそれに書き込むことができます。デフォルトでは他のディレクトリに書き込むことはできません。
ディレクトリがすでにある場合は、adduser
コマンドに--no-create-home
オプションを追加して実行し、手動で(同様にroot権限で)許可を設定できます。
chown restricted_user:restricted_user /restricted/directory
chmod 755 /restricted/directory
このユーザーが、世界で書き込み可能なディレクトリでもアクセスできないようにする必要がある場合は、2つの方法があります。
1)対話的なシェルセッションをユーザに提供したい場合は、(あなたの/restricted/directory
に)chroot jailを作成する際に このマニュアル に従うことを検討してください。
その後、以下をsshd_config
に追加してください。
Match user restricted_user
ChrootDirectory /restricted/directory
2)あなたが彼に接続の彼のエンドポイントとあなたのホストの間でファイルをコピーすることだけを必要とするならば、すべてははるかに簡単です。 sshd_config
の最後にこれらの行を追加してください。
Match user restricted_user
ForceCommand internal-sftp
ChrootDirectory /restricted/directory
Subsystem sftp internal-sftp
次に、先頭にハッシュ(Subsystem sftp /usr/lib/openssh/sftp-server
)記号を付けて#
をコメントアウトします。
SSHサーバを再起動した後(再起動時に対話型セッションを終了させないので、設定を誤っていても安全です。また、ログインできることを確認する前に実行中のセッションを閉じないでください)。意図した通り。
与えられたディレクトリ(例えば、上位ディレクトリなど)から移動することができず、使用するコマンドの制限された/選択されたセットを持つことができない制限付きユーザを作成する最も簡単な方法は、制限シェルを使用することです。参照:
まず、rbash
というシンボリックリンクを作成します(rootユーザーとして実行します)。
ln -s /bin/bash /bin/rbash
次に、この制限付きシェルで通常のユーザーを作成し、そのホームディレクトリを目的のフォルダに設定します。
useradd -s /bin/rbash -d /home/restricted_folder username
制限付きシェルがなくても、このユーザーをsudoerのリストまたは特別なグループに明示的に追加しないと、デフォルトで制限されます。
制限付きシェルでは、次の操作は許可されていないか、実行されません。
cdでディレクトリを変更する
shell、PATH、ENV、またはBASH_ENVの値を設定または設定解除する
/を含むコマンド名を指定する
の引数として/を含むファイル名を指定します。組み込みコマンド
組み込みハッシュ・コマンドの-pオプションの引数としてスラッシュを含むファイル名を指定する
起動時にシェル環境から関数定義をインポートする
起動時にシェル環境からSHELLOPTSの値を解析する
>、> |、<>、>&、&>、および>>リダイレクト演算子を使用した出力のリダイレクト
シェルを別のコマンドに置き換えるためのexec組み込みコマンドの使用
-fおよび-dオプションを指定した組み込みコマンドをenable組み込みコマンドに追加または削除する
Enable組み込みコマンドを使用して無効になっているシェル組み込みコマンドを使用可能にする
組み込みコマンドcommandに-pオプションを指定
set + rまたはset + o restrictedで制限モードをオフにします。
これらの制限はスタートアップファイルの後で強制されます
さらに/オプションで、使用するコマンドの制限付き/選択済みセットにユーザーを制限するには、そのユーザーに対して読み取り専用の.bash_profileを作成します。
PATH=$HOME/bin
そして、あなたが許可するどんなコマンドでも、そのユーザの〜/ binフォルダにシンボリックリンクします。
ln -s /bin/ls /home/restricted_folder/bin/ls
ln -s /bin/mkdir /home/restricted_folder/bin/mkdir
ln -s /bin/rm /home/restricted_folder/bin/rm
等.
HTH