Linuxで特定のフォルダにのみアクセスできるユーザーを作成する

Linuxで特定のフォルダにのみアクセスできるユーザーを作成する

Linuxで特定のフォルダにのみアクセスできるユーザーを作成するには、パテを使用する必要があります。 useraddを使用してユーザーを作成しましたが、そのユーザーはデフォルトアカウントのすべてのフォルダにアクセスできます。

ベストアンサー1

SSH chroot Jailを設定する必要があります。

バラよりこれ指示。

〜のように@ロミオQ. リンクされたページの重要な部分をここに含めました。

ユーザー用のディレクトリを作成します。

# mkdir -p /home/test

このディレクトリには、ユーザーセッションをサポートするために必要なファイルとディレクトリを含める必要があります。これには、少なくともシェル(通常はsh)とプライマリ/ devノード(null、zero、stdin、stdout、stderr、ttyデバイスなど)が必要です。します。

# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

リスト内の2つの数字について学びます。主数字と二次数字があります。 mknodコマンドを使用して/ devを生成します(いいえ下に貼り付けコマンドをコピーします。これは単なる例なので、正しい数字を使用してください。)

# mkdir -p /home/test/dev/      
# cd /home/test/dev/
# mknod -m 666 null c 1 3
# mknod -m 666 tty c 5 0
# mknod -m 666 zero c 1 5
# mknod -m 666 random c 1 8`

権限設定:

# chown root:root /home/test
# chmod 0755 /home/test
# ls -ld /home/test

bin ディレクトリを作成し、ここに /bin/bash ファイルをコピーします。

# mkdir -p /home/test/bin
# cp /bin/bash /home/test/bin/

Bashとコピーに必要な共有ライブラリの決定それら(するいいえ次のコマンドをコピーしてlibディレクトリに貼り付けます(これは単なる例です)。

# ldd /bin/bash
# mkdir -p /home/test/lib64
# cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2}  /home/test/lib64/

useraddコマンドを使用してSSHユーザーを作成し、ユーザーのセキュリティパスワードを設定します。

# useradd tecmint
# passwd tecmint

chroot Jail汎用設定ディレクトリ/home/test/etcを作成し、更新されたアカウントファイル(/etc/passwdおよび/etc/group)をこのディレクトリにコピーします。

# mkdir /home/test/etc
# cp -vf /etc/{passwd,group} /home/test/etc/

sshd_config ファイルを開き、ファイルに次の行を追加します。

# vi /etc/ssh/sshd_config
    #define username to apply chroot jail to
    Match User tecmint
    #specify chroot jail
    ChrootDirectory /home/test

ファイルを保存して終了したら、SSHDを再起動します。

 # systemctl restart sshd

chroot Jail設定が期待どおりに機能するかどうかをテストします。これで、ユーザーはbashと(pwd、History、echoなど)組み込みコマンドのみを実行できます。

 # ssh [email protected]

SSHユーザーのホームディレクトリを作成します。

# mkdir -p /home/test/home/tecmint
# chown -R tecmint:tecmint /home/test/home/tecmint
# chmod -R 0700 /home/test/home/tecmint

ls、date、mkdirなどの複数のユーザーコマンドをbinディレクトリにインストールします。

# cp /bin/ls /home/test/bin/
# cp /bin/date /home/test/bin/
# cp /bin/mkdir /home/test/bin/

上記のコマンドの共有ライブラリを確認し、ルートが指定されたJailライブラリディレクトリに移動します。

# ldd /bin/ls
# cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/

これは終わりです。。ただし、SFTP接続のみを許可する必要がある場合は、/etc/ssh/sshd_configファイルに次の行を追加してください。

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

ファイルを保存して終了します。その後、SSHDサービスを再起動します。

# systemctl restart sshd

おすすめ記事