我們有時會遇到這樣的需求,限制一個Linux使用者,讓他只能在指定的目錄下進行新增、修改、刪除操作,並且只能使用sftp登入伺服器,不能用ssh操作。這些可以通過配置sftp服務實現。
建立新使用者www,禁止ssh登入,不建立家目錄
[root@local ~]# useradd -s /sbin/nologin -M www
[root@local ~]# passwd www
更改使用者 www 的密碼 。
新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
建立使用者的根目錄,使用者就只能在此目錄下活動
mkdir /var/www
設定目錄許可權,目錄的許可權設定有兩個要點:
目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是root
目錄開始一直往上到系統根目錄為止都不可以具有群組寫入許可權
[root@local ~]# chown root:root /var/www
[root@local ~]# chmod 755 /var/www
如果是777,www使用者就可以新建資料夾。如果是755,www使用者就不可以新建資料夾。
配置sshd_config
vim /etc/ssh/sshd_config
修改一下內容
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User www
ChrootDirectory /var/www
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
重啟sshd服務
systemctl restart sshd.service
建立目錄測試
[root@local ~]# mkdir /var/www/tpadmin
[root@local ~]# chown www:www /var/www/tpadmin
[root@local ~]# chmod 777 /var/www/tpadmin