做为一个程序员,在网站没有运维的状况下,也要有可以搭建应用的能力,因为不是专业的运维因此考虑的问题可能不够全面,只顾着把应用搭起来,权限管理很是地松,认为只要登录 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
会同样东西不是本事,从不会到会的,才是真本事