linux 如何指定nologin用戶執行命令


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登陸。

 

http://devops234.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM