惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
T
Tenable Blog
Project Zero
Project Zero
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
S
Schneier on Security
Scott Helme
Scott Helme
S
Securelist
Know Your Adversary
Know Your Adversary
Vercel News
Vercel News
IT之家
IT之家
V
V2EX
F
Fortinet All Blogs
Simon Willison's Weblog
Simon Willison's Weblog
K
Kaspersky official blog
博客园_首页
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
Spread Privacy
Spread Privacy
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
有赞技术团队
有赞技术团队
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
L
LINUX DO - 热门话题
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CXSECURITY Database RSS Feed - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
S
SegmentFault 最新的问题
AWS News Blog
AWS News Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost

追逐日落

SpringBoot中使用自定义注解和拦截器实现简单的权限控制 写给软件234,也给两年前的自己 如何高效检索信息:搜索引擎使用小技巧 远程连接终端——WindTerm安装使用教程
在Linux上创建新用户并配置SSH免密连接
云景 · 2024-03-10 · via 追逐日落

为什么要创建新用户?

  1. 权限控制:每个用户可以被赋予特定的权限,以限制其对系统资源的访问。创建新用户可以根据需要为其分配适当的权限,从而提高系统安全性,即使账户被窃取,也能将损失控制在限定的范围内。
  2. 隔离环境:通过创建新用户,可以隔离不同用户之间的环境,避免彼此之间的干扰和冲突。
  3. 跟踪活动:每个用户的活动都可以被追踪和记录,有助于监控系统的安全性和运行情况。

创建新用户的方法

1. 使用命令行创建新用户

在Linux系统中,可以使用useradd命令来创建新用户。

adduser也可以创建新用户,二者区别可以参考useradd 与adduser的区别

例如,本文以用户newuser为例,使用如下命令创建一个名为newuser的用户,

1
sudo useradd newuser

系统将提示您输入新用户的密码和其他信息。按照提示输入即可完成新用户的创建。

2. 设置用户密码

使用passwd命令来为新用户设置密码:

1
sudo passwd newuser

3. 授予新用户sudo权限(可选)

如果需要给新用户添加sudo权限,这里以Ubuntu 22.04LTS为例,可以使用下面其中一个方法:

(推荐)可直接将新用户添加到sudo用户组

使用以下命令将新创建的用户添加到sudo 组:

1
sudo adduser newuser sudo

撤销用户的 sudo 权限(例如 newuser),可以执行:

1
sudo deluser newuser sudo

(较为麻烦)修改sudoers文件

打开 /etc 目录下的 sudoers 文件,在 root ALL=(ALL) ALL 语句下添加 newuser ALL=(ALL) ALL

可以使用sftp工具直接更改后上传,也可以使用vim,下面是vim的操作方法:

1
2

sudo vim /etc/sudoers

按i在当前光标处进入编辑模式

使用方向键移动光标,在root ALL=(ALL) ALL语句下添加一行

1
newuser ALL=(ALL) ALL

按一下esc,即退出编辑模式;

输入英文状态下的冒号:

之后输入wq后回车,即保存并退出;

如果遇到提示E45:readonly'option is set (add to override)无法保存修改,输入:wq!即可。

如果修改错误需要丢弃修改,esc输入冒号后,输入q!回车,即不保存退出。

vim使用方法菜鸟教程Linux vi/vim

要验证用户是否已添加到 sudo 组中,请运行:

1
2
3
sudo -l -U <username>


输出以下内容代表有sudo权限

1
2
3
4
5
6
匹配 %2$s 上 %1$s 的默认条目:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

用户 newuser 可以在 xiaoxin-virtual-machine 上运行以下命令:
(ALL : ALL) ALL

4.客户端生成SSH密钥对

SSH密钥对由公钥和私钥组成,私钥保存在客户端,而公钥保存在服务器端。

相较于用户名和密码认证方式,使用SSH密钥对认证方式具有以下优势:

  • 安全性:使用SSH密钥对登录认证更为安全可靠。
    • SSH密钥对安全强度远高于常规用户口令,可以杜绝暴力破解威胁。
    • 无法通过公钥推导出私钥。
  • 便捷性:
    • 如果您将公钥配置在Linux实例中,那么,在本地或者另外一台实例中,您可以无需输入密码,直接使用私钥通过SSH命令或相关工具登录。
    • 支持远程登录大量Linux实例。如果您需要批量维护多台Linux实例,可以使用这种方式登录。

打开cmd,使用ssh-keygen命令在客户端生成SSH密钥对:

1
ssh-keygen -t rsa -C "填入邮箱"

按照提示,选择保存密钥的位置和设置密钥的密码。

打开保存密钥对的文件夹,用记事本打开.pub结尾的文件,ctrl+A全选,ctrl+C复制内容。

5. 将公钥复制到服务器

打开 /home/newuser/.ssh 目录下的authorized_keys 文件,如果不存在就新建对应目录和文件,将之前生成的公钥文件中的所有内容复制进去,保存。

vim命令

1
sudo vim /home/newuser/.ssh/authorized_keys

按i进入编辑模式,粘贴刚才复制的公钥内容
ECS :wq保存退出,或:wq!

6.修改服务器新用户目录权限以及所有权

  1. 为公钥文件和文件夹设置权限。

    1
    2
    chmod 600 /home/newuser/.ssh/authorized_keys
    chmod 700 /home/newuser/.ssh

    chmod命令可设置文件或文件夹的权限,三位数字为linux中的权限代码,介绍及教程:菜鸟教程 Linux chmod命令

  2. /home/newuser文件夹及其子文件夹、子文件所有权移交给git用户。

    ! 漏掉此步骤可能会导致登录新用户时提示/home下该用户目录不存在或者用户不存在导致无法登录

    1
    chown -R newuser:newuser /home/newuser

    chown命令可以变更目录或文件的所有者,-R参数是对子目录及其内的所有文件生效。

完成以上步骤后,就可以使用SSH免密连接登录到服务器了。在客户端命令行中使用以下命令登录到服务器,将your_server_ip替换成你的服务器IP地址:

1
ssh newuser@your_server_ip

系统将使用您生成的密钥对进行身份验证,若配置成功,无需输入密码即可登录到服务器。

删除用户

在上述步骤中,可以从“sudo”组中删除用户以取消其sudo权限。但是用户仍然存在于系统中。要从 Linux 系统中完全删除用户,请以 root 或 sudo 用户身份登录并运行:

1
sudo deluser <username>

如果要删除用户及其主目录,请运行:

1
sudo deluser -r <username>

若出现userdel: user xxxxx is currently used by process 10997

杀掉该进程即可

1
pkill 10997