محدود کردن دسترسی یوزر به یک پوشه خاص

اگه بخایم یک یوزر بسازیم که وقتی با sftp وصل شد فقط به یک پوشه خاص بتونه دسترسی داشته باشه از این روش استفاده میکنیم.

ابتدا یک گروه می سازیم

Groupadd sftp

اسم گروه هر چیزی می تونید بذارید.

بعد باید یه پوشه بسازیم که یوزر محدود به این پوشه بشه فقط و جای دیگه دسترسی نداشته باشه

پوشه فرضی اینجا sftpusers  هست توی مسیر اصلی. هر جایی خواستید میتونید بسازید یا پوشه ای از قبل وجود داشته باشه.

mkdir -p /sftpusers

و بعد مالکیت پوشه رو به یوزر روت منتقل میکنیم

chown root:root /sftpusers

 

حالا یه یوزر می سازیم بدون دسترسی به ssh

adduser test -g sftp -s /sbin/nologin

حالا پسورد ست میکنیم براش

Passwd test

اگه قبلا یوزر ساخته شده باشه از این دستور استفاده میکنیم تا نتونه با ssh  وصل بشه

usermod -s /sbin/nologin -g sftp  test2

test2  اسم یوزر فرضی هست.

حالا فرض میکنیم توی پوشه که تعیین کردیم 3 تا فولدر هست

Folder1

Folder2

Folder3

می خایم دسترسی به شماره 3 رو محدود کنیم براش

chmod 700 /sftpusers/Folder3

با این دستور سطح دسترسی فقط برای یوزر روت میشه و بقیه یوزرها تا زمانی که بهشون دسترسی ندین نمیتونن واردش بشن

حالا باید  ssh_config  رو ویرایش کنیم

هم با دستور nano  میشه هم با winscp

nano /etc/ssh/sshd_config

من واسه راحتی از winscp استفاده کردم

این دستورات رو باید در انتهای اون کپی کنید

Subsystem sftp  internal-sftp

Match Group sftpgroup

ChrootDirectory /sftpusers/

ForceCommand internal-sftp

X11Forwarding no

AllowTcpForwarding no

 

فقط توجه کنید که subsystem از قبل احتمالا اونجا باشه اگه بود جلوش علامت  #  بذارید تا غیر فعال بشه. شکل کلی باید شبیه عکس زیر باشه

scp

 

بعد از تنظیمات یکبار سرویس ssh رو ریست باید کنید service sshd restart

 

دیدگاه خود را به ما بگویید.