sftp配置多用戶權限
工作需要,用戶上傳文件到目錄下,用ftp不太安全,選擇sftp。讓用戶在自己的home目錄下活動,不能ssh到機器進行操作。
下面開始干活。 查看ssh版本 ssh -V,我的系統是CentOS6.4 ssh版本是5.3(大於4.8)的沒有問題。
0, 創建用戶目錄root權限下創建用戶和屬組都是root
mkdir -p /opt/sftp/dir1/{upload,public}
1,創建 groupadd sftp
2. 創建 user -s /sbin/nologin -G sftp davis
user -s /sbin/nologin -G sftp davis1
3, 創建 davis 密碼
passwd davis or echo davis:123456|chpasswd
passwd davis1
4, 修改sshd_config文件
#Subsystem sftp /usr/libexec/openssh/sftp-server(注釋掉)
添加下面行
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /opt/sftp/dir1
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
重啟sshd /etc/init.d/sshd restart
5, 給目錄附屬權限
chown davis:sftp /opt/sftp/dir1/upload
chown davis1:sftp /opt/sftp/dir1/public
chmod 700 /opt/sftp/dir1/upload
chmod 700 /opt/sftp/dir1/public
6, 將upload 給davis用戶
usermod -d /upload davis
usermod -d /public davis1
7, 測試 ssh davis@localhost 和 sftp davis@localhost or sftp -oPort=2000 davis@localhost(ssh端口更換為2000)
sftp登陸davis帳號,對應的是/upload,而davis1 登陸後則對應的是/public
注意:
要實現Chroot功能,目錄權限的設置非常重要。否則無法登錄,給出的錯誤提示讓人無從下手。
目錄權限設置
ChrootDirectory設置的目錄權限及其所有的上級文件夾權限,屬主和屬組必須是root;
ChrootDirectory設置的目錄權限及其所有的上級文件夾權限,只有屬主能擁有寫權限,也就是說權限最大設置只能是755
ChrootDirectory %h 如果選擇了這種模式,用戶的home目錄必須是root:root 權限,否則就會報錯。
記錄一下,以備以後使用,同時也提供給有需要的朋友。