记录自己服务器用户设置

前端之家收集整理的这篇文章主要介绍了记录自己服务器用户设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

git地址:https://github.com/wanguowan/notetext-blog/blob/master/esc_add_user.md

服务器用户设置

双十一剁手,在阿里买了一台ecs服务器,系统 Ubuntu 14.04 64位,购买的时候默认root用户,创建了root密码。

进入新服务器,考虑安全性,准备完成以下服务器配置目标:

  • 创建自己的用户
  • 能使用sudo权限
  • 禁用root ssh登录
  • 使用rsa public key免密码登录

创建自己的用户

1. 创建用户

  • 命令
# useradd -d /home/wan -m wan
  • 参数说明
-d,--home HOME_DIR
    The new user will be created using HOME_DIR as the value for the user's login directory. -m,--create-home Create the user's home directory if it does not exist.

创建完成后,查看/home下,ls -l查看了一下目录权限,所有者和所属组都是wan

# ls -al
total 12
drwxr-xr-x  3 root root 4096 Nov 13 13:41 .
drwxr-xr-x 22 root root 4096 Nov 11 01:41 ..
drwxr-xr-x  2 wan  wan  4096 Nov 13 13:41 wan

2. 设置密码

  • 命令
# passwd wan
Enter new UNIX password:
Retype new UNIX password:

打开一个新窗口,使用新用户登录登录成功,可是界面有点问题

Welcome to aliyun Elastic Compute Service!

$

考虑应该是shell设置问题

3. 修改默认shell

查看一下当前使用shell

$ echo $SHELL
/bin/sh

使用的sh,平时自己用的最多的是bash,考虑修改成bash。

  • 命令
$ chsh -s /bin/bash
Password:
  • 参数说明
chsh - change login shell

-s,--shell SHELL
    The name of the user's new login shell.

这里也可以使用root用户修改/etc/passwd文件,在自己用户后面添加对应shell

# vi /etc/passwd

添加如下:
wan:x:1000:1000::/home/wan:/bin/bash

退出重新登录

Welcome to aliyun Elastic Compute Service!

Last login: Sun Nov 13 14:06:46 2016
wan@hostname:~$ 
wan@hostname:~$ echo $SHELL
/bin/bash

使用sudo权限

通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被称为受限制的su;另外sudo 是需要授权许可的,所以也被称为授权许可的su;

sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;

方式1(添加到sudo组)

修改/etc/group文件,查找sudo开头的记录行,在该行后添加自己用户名,多个用户名之间用英文逗号隔开,如下:

# vi /etc/group

添加如下:
sudo:x:27:wan

修改完成后重新登录wan用户

Last login: Sun Nov 13 14:18:24 2016
wan@hostname:~$ id
uid=1000(wan) gid=1000(wan) groups=1000(wan),27(sudo)

添加成功,如果想直接修改所属组,可以使用usermod命令,命令如下:

root@hostname:/# usermod -g sudo wan

usermod 与直接修改文件区别:usermod是修改用户所属组;直接修改文件,则是将用户添加到sudo组中

测试sudo命令

wan@hostname:~$ sudo su
[sudo] password for wan:
root@hostname:/home/wan#

但是中间需要输入自己的用户名,因为服务器是自己玩的,所以安全级别不要这么高,所以设置sudo不需要输入密码

设置sudo组不需要密码

修改/etc/sudoers,添加sudo不需要密码

# visudo

修改效果如下
%sudo   ALL=(ALL:ALL) NOPASSWD: ALL

ctrl+x退出

方式2 添加用户到sudo配置文件

修改/etc/sudoers,添加wan用户配置,并设置不需要使用密码

# visudo

在user privilege中添加如下
wan    ALL=(ALL:ALL) NOPASSWD: ALL

禁用root ssh登录

修改ssh配置文件 /etc/ssh/sshd_config,设置PermitRootLogin为no

# vi /etc/ssh/sshd_config

PermitRootLogin no

重启ssh服务

# service ssh restart

退出root用户,测试配置是否生效

ssh root@host
root@host's password:
Permission denied,please try again.

使用rsa public key免密码登录

1. 设置ssh支持RSA认证登录登录

# vi /etc/ssh/sshd_config

取消下面两行注释(前面的#号)

RSAAuthentication yes
PubkeyAuthentication yes

重启ssh服务

# service ssh restart

2. 设置自己的公钥

如果在自己电脑上有公钥的话,则直接上传就好啦,公钥位置 ~/.ssh/id_rsa.pub.如果没有,根据自己系统不同,网上有对应生成密钥方法,这里提供参考命令

ssh-keygen –t rsa –P ''

拷贝本地pub key到远端服务器(也可以手工打开文件,复制粘贴),服务器上无~/.ssh目录的话,可自己创建

scp ~/.ssh/id_rsa.pub wan@host:~/.ssh

上传公钥添加到授权公钥列表中

$ cat cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

如果authorized_keys是首次生成,需要设置其权限为600

$ chmod 600 ~/.ssh/authorized_keys

测试是否可以免密码登录

ssh wan@host
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-86-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Welcome to aliyun Elastic Compute Service!

Last login: Sun Nov 13 15:44:07 2016 
wan@hostname:~$

服务器账号设置完成,后续会自己安装PHP,@R_301_196@,redis,MysqL等搭建一个简单的应用服务器

原文链接:https://www.f2er.com/ubuntu/356091.html

猜你在找的Ubuntu相关文章