ユーザーを特定のディレクトリに制限する

user1032531

ボブが/var/www/main/opensftp経由でディレクトリ内のファイルにのみアクセスできるようにしたいと思います

を編集して/etc/ssh/sshd_configに変更Subsystem sftp /usr/libexec/openssh/sftp-serverSubsystem sftp internal-sftp、以下も追加しました。

Match Group allow_sftp
    ChrootDirectory /var/www/main/open
    ForceCommand internal-sftp
    AllowTcpForwarding no

次に、ボブを追加しました。

useradd bob -d /var/www/main/open
passwd bob 
groupadd allow_sftp
usermod -G allow_sftp bob 
usermod -s /bin/false bob 

次に、FileZillaを使用して、Bobの資格情報を使用してサーバーにアクセスしました。ボブの新しいホームディレクトリ/var/www/main/open開きましたが、サーバー上のすべてのディレクトリにアクセスできました。

ボブをディレクトリ内のファイルのみに制限するにはどうすればよい/var/www/main/openですか?

編集。コメントへの回答を追加

[root@devserver ~]# cat /etc/centos-release
CentOS release 6.5 (Final)
[root@devserver ~]# sshd -V
sshd: illegal option -- V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]
[root@devserver ~]# sshd -d -d -d -d -p 9999
sshd re-exec requires execution with an absolute path
[root@devserver ~]#

編集2

[root@devserver ~]# /usr/sbin/sshd -d -d -d -d -p 9999
debug2: load_server_config: filename /etc/ssh/sshd_config
debug2: load_server_config: done config len = 694
debug2: parse_server_config: config /etc/ssh/sshd_config len 694
debug3: /etc/ssh/sshd_config:21 setting Protocol 2
debug3: /etc/ssh/sshd_config:36 setting SyslogFacility AUTHPRIV
debug3: /etc/ssh/sshd_config:42 setting PermitRootLogin no
debug3: /etc/ssh/sshd_config:66 setting PasswordAuthentication yes
debug3: /etc/ssh/sshd_config:70 setting ChallengeResponseAuthentication no
debug3: /etc/ssh/sshd_config:81 setting GSSAPIAuthentication yes
debug3: /etc/ssh/sshd_config:83 setting GSSAPICleanupCredentials yes
debug3: /etc/ssh/sshd_config:97 setting UsePAM yes
debug3: /etc/ssh/sshd_config:100 setting AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
debug3: /etc/ssh/sshd_config:101 setting AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
debug3: /etc/ssh/sshd_config:102 setting AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
debug3: /etc/ssh/sshd_config:103 setting AcceptEnv XMODIFIERS
debug3: /etc/ssh/sshd_config:109 setting X11Forwarding yes
debug3: /etc/ssh/sshd_config:133 setting Subsystem sftp internal-sftp
debug3: checking syntax for 'Match Group allow_sftp'
debug1: sshd version OpenSSH_5.3p1
debug3: Not a RSA1 key file /etc/ssh/ssh_host_rsa_key.
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug3: Not a RSA1 key file /etc/ssh/ssh_host_dsa_key.
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: rexec_argv[2]='-d'
debug1: rexec_argv[3]='-d'
debug1: rexec_argv[4]='-d'
debug1: rexec_argv[5]='-p'
debug1: rexec_argv[6]='9999'
debug3: oom_adjust_setup
Set /proc/self/oom_score_adj from 0 to -1000
debug2: fd 3 setting O_NONBLOCK
debug1: Bind to port 9999 on 0.0.0.0.
Server listening on 0.0.0.0 port 9999.
debug2: fd 4 setting O_NONBLOCK
debug1: Bind to port 9999 on ::.
Server listening on :: port 9999.
Lqueryvg

まだ必要なとおりに機能していない場合でも、あなたが尋ねた質問は基本的に答えられていると思います。

chroot環境がディレクトリで機能するには、/var/www/main/openすべてのパス要素がrootによって所有され、rootによってのみ書き込み可能である必要があります。例えば

drwxr-xr-x. 6 root root 4.0K Apr  4 00:57 /var/www/

また、これらはシンボリックリンクではなく実際のディレクトリである必要があります。これはすべて、(たとえば)パスに沿ってディレクトリの1つを名前変更し、それを自分のものに置き換えることによって、chrootされた環境を改ざんするのを防ぐためのものです。

chrootディレクトリのコンポーネントに十分に制限された所有権または権限がない場合、次の形式のエラーが表示されます。

bad ownership or modes for chroot directory component "/a/b/"

次のようにデバッグします。

非標準ポートで実行しているデバッグモードでsshdを起動します。この方法の利点は、sshd構成を変更したり、標準ポート22で実行されているsshdを停止/開始したりする必要がないことです。また、デバッグメッセージが同じウィンドウに表示されるため、外部メッセージファイルを検索する必要があります。

/usr/sbin/sshd -d -d -d -d -p 9999

次のように「テスト」sshdに接続します。

sftp -oPort=9999 bob@localhost

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

ユーザーのSFTPをホームディレクトリのみに制限する

SSHユーザーを1つのディレクトリのみに制限する

通常のユーザーに特定のディレクトリに制限された特権を付与し、sudoなしでファイルを実行する方法

sftp ユーザーをホーム ディレクトリに制限し、アクセスを許可する

ユーザーのディレクトリへのアクセスを制限する

SFTPユーザーアクセスを指定されたディレクトリに制限する

ログインしたユーザー専用のディレクトリを制限する方法:Codeigniter

vsftpdは、ユーザーをホームディレクトリに制限します

Linuxシェルはsftpユーザーをホームディレクトリに制限しますか?

vsftpdは、ユーザーをホームディレクトリに制限します

slurmの特定のディレクトリでユーザーにジョブを送信するように強制する方法

特定のディレクトリのACLからユーザーを削除する

特定のディレクトリにあるsftpユーザーへの読み取り専用権限

ユーザーにアプリの特定のディレクトリを取得する方法

正しい権限を維持しながら、あるユーザーから別のユーザーにディレクトリを移動する

FTPユーザーに特定のディレクトリのみを表示する方法

chmod 700は他のユーザーからディレクトリを隠しますか、それともディレクトリ内のファイルを表示するように制限しますか?

djangoのユーザーに基づいてモデルの特定のフィールドを制限する方法

LDAPからのsshログインを/ homeディレクトリを持つユーザーに制限します

ディレクティブをAngularの特定のホスト(コンポーネント)に制限する

Apache管理ディレクトリ内の1人のユーザーのみの権限を変更する

多くのディレクトリに対する効果的なユーザー権限の取得

ユーザー用に複数のディレクトリを作成する

UbuntuのApacheにユーザーディレクトリを追加する方法

あるユーザーのディレクトリから別のユーザーのディレクトリに.bashrcファイルをコピーする

仮想ディレクトリのユーザー権限をテストする方法は?

AngularJS:カスタムcontenteditableディレクティブでのユーザー入力を制限する

Google Apps ScriptWebアプリを特定のユーザーのみに制限する

特定のユーザーへのアクセス許可を制限するハードディスクをマウントします

TOP 一覧

  1. 1

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    CSSのみを使用して三角形のアニメーションを作成する方法

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Excel - count multiple words per cell in a range of cells

  9. 9

    PictureBoxで画像のブレンドを無効にする

  10. 10

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  11. 11

    スタート画面にシャットダウンタイルを追加するにはどうすればよいですか?

  12. 12

    Python / SciPyのピーク検出アルゴリズム

  13. 13

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  14. 14

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  15. 15

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  16. 16

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  17. 17

    QGISとPostGIS(マップポイント(米国の地図上にraduisを使用した緯度と経度)

  18. 18

    MLでのデータ前処理の背後にある直感

  19. 19

    ターミナルから「入力ソースの変更」ショートカットを設定する

  20. 20

    パンダは異なる名前の列に追加します

  21. 21

    同じクラスの異なるバージョンを使用したクラスローディング:java.lang.LinkageError:名前の重複クラス定義を試行しました

ホットタグ

アーカイブ