专栏首页一杯82年的JAVALinux实践 - 创建用户

Linux实践 - 创建用户

双十一来了,搞了台便宜的云服务器,又需要搞搞环境什么的,顺便做个笔记~吧。

目标

创建一个admin用户用于日常操作(root权限太高,不宜直接使用)。

创建新用户

adduser [用户名]

[root@VM_0_8_centos ~]# adduser admin

设置密码

passwd [用户名]

系统对密码有一定要求,不能太简单,不然。。。

[root@VM_0_8_centos ~]# passwd admin
更改用户 admin 的密码 。
新的 密码:
无效的密码:密码未通过字典检查 - 它没有包含足够的不同字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码:密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码:密码未通过字典检查 - 它基于字典单词
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 已经超出服务重试的最多次数
[root@VM_0_8_centos ~]#
[root@VM_0_8_centos ~]#
[root@VM_0_8_centos ~]#
[root@VM_0_8_centos ~]# passwd admin
更改用户 admin 的密码 。
新的 密码:
[root@VM_0_8_centos ~]# passwd admin
更改用户 admin 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@VM_0_8_centos ~]#

用新用户登录

用刚创建的用户登陆一下试试。

PS: 记不住ip,所以在个人电脑的hosts文件中设置了个别名,因为用的腾讯云服务器,就叫qqcloud。

➜  hexo ssh admin@qqcloud
The authenticity of host 'qqcloud (马赛克)' can't be established.
ECDSA key fingerprint is SHA256:马赛克.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'qqcloud' (ECDSA) to the list of known hosts.
admin@qqcloud's password:
Last failed login: ThuOct2419:00:16 CST 2019 from 马赛克 on ssh:notty
There were 286 failed login attempts since the last successful login.
[admin@VM_0_8_centos ~]$

有句话引起我的注意:

There were 286 failed login attempts since the last successful login.

就这一会已经被尝试登录286次了,想必是一些恶意的程序在乱扫乱试,难怪不让我用简单密码。

sudo

sudo [root用户专属命令]

虽然root用户不适合日常使用,但偶尔还是需要它的力量,比如改改hosts。这些敏感指令需要root权限,当使用非root权限用户登录时想执行这些命令,只需要在 命令前面加上sudo。

[admin@VM_0_8_centos ~]$ sudo vim /etc/hosts

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] admin 的密码:
admin 不在 sudoers 文件中。此事将被报告。
[admin@VM_0_8_centos ~]$

新用户没有sudo权限。而且,虽然我的机器默认是中文似乎有点low,但其实看这些提示挺方便的。

授权sudo给新用户

vim /etc/sudoers

打开配置文件后找到root用户的配置,照着样子把admin也加上。保存时提示文件为只读,强行保存就行了(wq!)。

vim用法

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
admin   ALL=(ALL)       ALL

#sudo时不需要输入密码
#admin   ALL=(ALL)       NOPASSWD:ALL

免密登录

自己的电脑登录自己的云服务器,还要锤子密码。

先在云服务器上初始化,命令:

ssh-keygen

需要输入的地方直接回车即可。

[admin@VM_0_8_centos ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Created directory '/home/admin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/home/admin/.ssh/id_rsa.
Your public key has been saved in/home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:马赛克 admin@VM_0_8_centos
The key's randomart image is:
+---[RSA 2048]----+
|     马赛克       |
|      马赛克      |
|     马赛克 ++o   |
|      马赛克      |
|     马赛克       |
|  马赛克马赛克     |
|  马赛克马赛克     |
|   马赛克马赛克    |
|   马赛克马赛克    |
+----[SHA256]-----+

生成目录: /home/admin/.ssh

[admin@VM_0_8_centos .ssh]$ pwd
/home/admin/.ssh
[admin@VM_0_8_centos .ssh]$ ll
总用量 8
-rw------- 1 admin admin 167910月 2500:23 id_rsa
-rw-r--r-- 1 admin admin  40110月 2500:23 id_rsa.pub
[admin@VM_0_8_centos .ssh]$
  • id_rsa 秘钥,需要保密
  • id_rsa.pub 公钥,暴露给别人

因为需要这台服务器对某些机器信任,让它们不需要输入密码也能进来,所以需要维护一个被信任用户的列表,列表里面是被信任用户的唯一标识,也就是对方的公钥。

在/home/admin/.ssh目录下创建一个文件authorized_keys,然后把希望被信任的电脑的公钥输入进去,多个换行隔开即可。

还差点,需要把authorized_keys的权限设为600,否则不生效。

chmod 600 authorized_keys

- END -

本文分享自微信公众号 - 一杯82年的JAVA(acupjava),作者:acupt

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从0.5到1写个rpc框架 - 4:request filter

    在写mvc项目时,经常会用到filter,可以给一个请求做前置或者后置处理。如下:

    acupt
  • 从TCP的三次握手和四次挥手说起

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

    acupt
  • JAVA中的String真的不可变吗

    我们都知道,String是不可变对象,即一旦创建,那么就不能改变它的状态。对此,我们来分析一波。

    acupt
  • 远程访问openstack 数据库

    tanmx
  • 深度神经网络(DNN)模型与前向传播算法

        深度神经网络(Deep Neural Networks, 以下简称DNN)是深度学习的基础,而要理解DNN,首先我们要理解DNN模型,下面我们就对DNN...

    刘建平Pinard
  • 如何设计合理的难度曲线?《茶杯头》BOSS战剖析

    作者: ryan,腾讯互动娱乐,游戏运营 本文来源: 腾讯游戏学院 ? 《茶杯头》是TGA2017的最佳独立游戏,作为一款以BOSS战为主的横版卷轴类游戏,其...

    腾讯大讲堂
  • 波音新型无人潜艇可在水下执行任务长达数月

    2016年3月,波音公司公布了其最新的“回音旅行者(Echo Voyager)”潜艇,并称之为水下无人运载工具中的“游戏规则挑战者”。“回音旅行者”共有51英尺...

    人工智能快报
  • 深度学习-数学基础

    目前主要有两种度量模型深度的方式。第一种方式是基于评估架构所需执行的顺序指令的数目。假设我们将模型表示为给定输入后,计算对应输出的流程图,则可以将这张流程图中的...

    范中豪
  • zephir-(12)php函数和异常处理

    #zephir-php函数和异常处理# ? ##前言## 先在这里感谢各位zephir开源技术提供者 经过了一个多月的学习,zephir的文档译文和基础讲解也将...

    喵了个咪233
  • golang 自动下载所有依赖包

    大部分情况下大家下载 Go 项目都是使用go get命令,它除了会下载指定的项目代码,还会去下载这个项目所依赖的所有项目。

    landv

扫码关注云+社区

领取腾讯云代金券