www用戶安全做法
在linux中建立網站時,我們一般分配一個www之類的用戶給網站應用程序。
如果我們使用root或者具有管理員權限的賬號在網站目錄下去創建文件時,會遇到各種權限問題。
這時我們可以切換到www用戶,這類用戶一般是nologin,不允許登錄。
如果我們su www或者sudo www,切換到www用戶時,會出錯。
網上解決辦法時修改/etc/passwd文件 nologin改為bin/bash,這樣www用戶可以登錄服務器,
比較危險。可以通過以下辦法使用www用戶執行命令
方法1. 為了安全,使用nologin賬號來運行程序,
su -s /bin/bash -c "ls" www
這條命令到底做了什么呢?su -s 是指定shell,這里www用戶是nologin用戶,是沒有默認的shell的,這里指定使用/bin/bash, -c 后面接需要運行的命令, 后面www是用www用戶來運行
方法2:
sudo -u www command 這樣也可以使用www用戶來執行命令
非root用戶su到其他賬戶,需要其他賬戶的密碼,所以需要給www加上密碼,root賬戶: passwd www 。
centos7.4
指定nologin的用戶
root可以su
su -s /bin/bash www
其他用戶su
su -s /bin/bash www
然而在centos7.7 中,這個已經不行了。
centos7.7
指定nologin的用戶
root可以su
su -s /bin/bash www
不能被其他用戶su
所以還是打開www的shell
www:x:1001:1001::/home/www:/bin/bash
然后設置 sshd
在 /etc/ssh/sshd_config 最后加入 DenyUsers 代表禁止www使用ssh。
DenyUsers www
這樣www 用戶永遠不能通過ssh登陸。
