做爲一個程序員,在網站沒有運維的狀況下,也要有可以搭建應用的能力,因爲不是專業的運維因此考慮的問題可能不夠全面,只顧着把應用搭起來,權限管理很是地鬆,認爲只要登錄 root
能夠運行命令就好了,這樣的話會有不少後患的,有的時候只是未爆發出來,當爆發出來就已經晚了。程序員
如下是我對一臺新服務器的權限的實例,歡迎你們拍磚。vim
1、技術人員經過本身的普通用戶權限進入系統,而後若是要運行須要 root
執行的就用 sudo
去執行就好,若是有多人要登陸,則每人配一個賬號。安全
2、服務器上應該禁止密碼登陸,由於密碼登陸有必定的漏洞,有的技術人員設的密碼跟沒搞過計算機同樣來個 123456
,這個密碼就至關因而個後門了。服務器
3、因爲每一個人都有了賬號,那麼更理所固然的要把 root
用戶禁止登陸,經過經驗得知,若是不由止,有的人還要登 root
,緣由可能有如下三點app
sudo
去運行一個 root
權限才執行的命令很麻煩4、修改默認 ssh
端口運維
$ useradd bob $ mkdir -p /home/bob $ chown -R bob.bob /home/bob $ gpasswd -a bob sudo // 給用戶有 sudo 的權限 $ passwd bob 設置一個密碼,這個是做爲當用戶想要 sudo 去執行 root 執行的時候使用的
本地 ssh-keygen
生成一串密鑰ssh
本地 $ ssh-keygen /Users/bob/.ssh/some-app-server_id_rsa 本地 $ ssh-copy-id -i .ssh/some-app-server_rsa bob@remote-server-address
配置ssh 客戶端,方便之後鏈接服務器。網站
本地 $ vim ~/.ssh/config Host some-app-server Hostname remote-server-address User bob Port 19422 IdentityFile ~/.ssh/some-app-server_id_rsa
之後鏈接服務器就能夠直接 $ ssh some-app-server
就能夠用你的權限登陸進去了。命令行
$ vi /etc/ssh/sshd_config PasswordAuthentication no //禁止使用基於口令認證的方式登錄 PubkeyAuthentication yes //容許使用基於密鑰認證的方式登錄 Port 19422 // 把 ssh 端口改爲 19422 這個別固定,你能夠隨便用,本地要鏈接服務器,本地的端口得保持一致。 PermitRootLogin no // 不容許 root 遠程登陸 重戶服務器 $ reboot 使配置生效
本人再推薦一個 zsh
和 oh-my-zsh
有了這個,命令行就智能了好多,操做起來很是地方便,有興趣的本身去找找文檔。code
會同樣東西不是本事,從不會到會的,纔是真本事