久しぶりに Linuxのお話です。
サーバーが存在し、ファイルのやり取りだけの制限したユーザーを作る手順メモです。SSHログインは禁止し、SFTPのみ許可。ディレクトリも指定以外はアクセス出来ないようにします。FTPではありません。SFTPです。
CentOS6です
まずはrootでLinuxへログインし、SFTP用のグループとユーザーを作ります。
# groupadd {GroupName}
# useradd -g{GroupName} {UserName}
ユーザーのログイン後ディレクトリを「/」ルートにします
# usermod -d / {UserName}
SFTPでアクセス許可するディレクトリを作ります。
mkdirの次の2行は非常に重要です。必ずディレクトリのオーナーをrootにして、パーミッションを755にします。
# mkdir /sftp/hogehoge
# chown root:root /sftp/
# chmod 755 /sftp/
次に{UserName}がSFTPログインした際にchrootするディレクトリを作ります。ここはオーナーをSFTPログインするユーザーにします。
# chown {GroupName}:{UserName} /sftp/hogehoge
# chmod 755 /sftp/hogehoge
SSHDの設定ファイルを変更します。
# vi /etc/ssh/sshd_config
以下をコメント化し、internal-sftp に変更します
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
ファイルの末尾に以下を加えます
Match group {GroupName}
ChrootDirectory /stfp/
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
sshdを再起動します。
# service sshd restart
これで {UserName} でログインして、/sftp/hogehoge 以下で一連のファイル操作が出来ればOKです。
コメント