Linux用户以及ssh安全相关设置
Linux用户相关操作
摘要
最近重保, 需要进行网络安全防护.
部分同事处理过程总是顺序有一些不太对的情况.
同时发现自对Linux用户设置也存在很多不清不楚的地方
所以趁着周末学习和总结一下.
用户操作
# 新增用户, 这里想加入root用户组. 仅是测试,可以自定义其他的用户组
useradd -d /home/zhaobsh -g root zhaobsh
# 查看用户的组信息
groups zhaobsh
# 或者是通过这种方式来处理
cat /etc/passwd |egrep 'root|zhaobsh'
# 注意第四例就是用户组信息, 0 一般指代root用户组.
# 设置密码
passwd zhaobsh
/etc/passwd的相关信息

文件权限以及其他
chmod 777 * -R
第一个 7 指代当前用户
第二个 7 指代当前用户组
第三个 7 指代其他用户
所以一般 777 的授权危险很大, 会导致低权限用户也有执行命令的权限
一般非常不建议如此设置.
用户以及组删除
# 删除用户, 但是这个命令并不会删除用户的home目录
userdel zhaobsh
# 添加组
groupadd zhaobsh
# 删除组
groupdel zhaobsh
添加sudo权限
需要注入, 如果不允许root用户访问的话, 必须使用非特权用户.
但是特权用户登录之后需要进行 特权操作时必须先进行sudo权限的设置.
主要方式有两种, 推荐第一种
第一种:
使用root用户, 或者是具有sudo权限的用户
sudo visudo
可以添加一行信息
# 需要注意, 这样设置的话 zhaobsh用户可以特权执行任何命令, 并且不需要输入密码
# 不太建议如此设置, 但是如果非核心系统,如果已经ssh登录自己的用户进来了, 输入密码一般有点多余了.
zhaobsh ALL=(ALL) NOPASSWD: ALL
第二种:
先修改 /etc/sudoers 的文件权限.
注意 这个文件的默认权限是 440 建议修改为 740, 保证root用户可以操作.
然后在最下面也一样添加哪条信息
zhaobsh ALL=(ALL) NOPASSWD: ALL
然后在修改会原来的权限
chmod 440 /etc/sudoers
# 注意一定要修改回原来的权限,不然会丢失登录权限.
注意事项
必须在禁用root用户之前设置 sudo权限, 不然你会哭.
重要事情说三遍.
注意, 一般情况下sudo 如果需要输入密码, 有效期一般为 15min
如果设置了NOPASSWD: ALL 的话 则不需要输入密码
这里需要注意的一些情况是:
第一:
su 和 su - 的区别
su 仅是切换用户, 但是不会切环境变量, 一般不推荐
su - 会切换到要切换的用户的环境变量, 更加优秀一下.
第二:
sudo -i 和 sudo su 等的区别:
sudo -i 直接运行sudo命令加-i参数 要求执行该命令的用户必须在sudoers中才可以
sudo su 运行sudo命令给su命令提权,运行su命令。 要求执行该命令的用户必须在sudoers中才可以
sudo -i 运行结果 PWD=/root
sudo su 运行结果 PWD=/home/用户名(当前用户主目录)
这一段的来源:https://blog.csdn.net/qq_43842093/article/details/124913229
需要注意这两个命令会立即切为 root用户
禁止root用户的远程访问
为了安全期间, 很多时候会禁止root用户的远程登录.
不允许root用户进行远程登录避免出现安全隐患.
方式也比较简单, 可以在 /etc/ssh/sshd_config里面进行先关设置
需要注意. /etc/ssh 下面有两个config文件
ssh_config 是ssh客户端的配置文件
sshd_config 是ssh服务端的配置文件
linux中 daemon 指代守护进程.
可以通过如下命令来禁止root用户的远程登录
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
注意 sed 是一个非常好的流处理工具. 在不方面操作时处理起来非常搞笑.
删除 密码登录验证的的选项, 并且修改为不允许密码登录验证
sed -i '/PasswordAuthentication/d' /etc/ssh/sshd_config
echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config
关于ssh防火墙的处理
firewall 其实不是通过端口来将ssh服务进行暴露的.
还是通过服务名将ssh进行暴露,
这种方式有一个好处是, 修改了ssh服务的端口不需要重置firewalld的配置
但是缺点是容易找不对方向, 导致firewalld处理ssh服务实现.
这里简单说明一下:
firewall-cmd -h |grep list
# 可以查看firewalld-cmd的查看相关命令的帮助
# 查看firewall-cmd 例外的服务
firewall-cmd --list-services
# 将例外的服务永久移除
firewall-cmd --remove-service cockpit --permanent
# 需要注意 list 是复数形式,但是remove 是单数形式. 注意我这里是用cockpit进行测试的
# 重置firewalld的服务
firewall-cmd --reload
# 再次查看是否包含例外服务
firewall-cmd --list-services
Linux用户以及ssh安全相关设置的更多相关文章
- 生物信息Linux用户创建与配额设置
创建一个新用户,并配置使用. create_usr.sh: #/usr/bin/bash user=$1 password="123" useradd ${user} -g met ...
- 教你如何配置linux用户实现禁止ssh登陆机器但可用sftp登录!
构想和目标最近有个这样的诉求:基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控,如直接修改代码.系统配置,并且也直接连上mysql.因此希望能限制开发人 ...
- linux下开启SSH,并且允许root用户远程登录,允许无密码登录
参考:http://blog.csdn.net/jia0511/article/details/8237698 1. 允许root用户远程登录 修改ssh服务配置文件 sudo vi /etc/ssh ...
- ssh公钥认证原理及设置root外的其他用户登录ssh
1)创建其他用户 useradd [-d 登录目录] [-G ssh][用户名] 一定要将用户添加到ssh组不然无法没有权限登录ssh 2)设置ssh不允许root登录 vi /etc/ssh/ss ...
- linux系统禁止root用户通过ssh登录及ssh的访问控制
Linux系统默认情况下,是可以通过ssh以root权限登录的.但出于安全考虑,这样的权限是不合适的,因为黑客可能通过暴力破解你的root密码,然后进入你的系统,oh,damn it..... 同样是 ...
- Linux给普通用户增加ssh权限
//1,创建用户 useradd name //2,修改密码 passwd name //3,修改ssh配置文件,在最后一行添加AllowUsers name vi /etc/ssh/sshd_con ...
- Linux—用户新建目录和文件的默认权限设置:umask详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 我们有没有思考过一个问题,在登录Linux系统后,我们创建的目录或者文件的权限,为什么每次创建都是统一的?我们做以下实验:新建一 ...
- Linux ssh安全设置
本文摘要 SSH服务器配置文件是/etc/ssh/sshd_conf.在你对它进行每一次改动后都需要重新启动SSH服务,以便让改动生效. SSH服务器配置文件是/etc/ssh/sshd_ ...
- linux远程ssh一键设置服务器时间
cmd="sudo date -s \"$1\""; ssh mrdTomcat@*.*.*.* "$cmd" 是不是遇到过很多问题 ssh ...
- linux 下的ssh免密登陆设置
一,原理 说明: A为linux服务器a B为linux服务器b 每台linux都有ssh的服务端和客户端,linux下的ssh命令就是一个客户端 我们常用ssh协议来进行登陆或者是文件的拷贝,都需要 ...
随机推荐
- 15年了,我们到底怎样才能用好 Serverless?
摘要:Serverless能够给企业客户和开发者带来非常直观的收益,包括成本节约和效率提升. 作者:冯嘉 一.Serverless发展历程及现状 1.1.Serverless概念 通常意义上来讲,Se ...
- 实例讲解将Graph Explorer搬上JupyterLab
摘要:基于 Graph Explorer 在 Jupyter 上进行图探索,可以大大降低编码成本,丰富 JupyterLab 的数据表现力. 本文分享自华为云社区<将 Graph Explore ...
- 你知道,java项目中是如何获取文件地址的吗?
摘要:在java项目中我们经常会读取配置文件,但是文件的路径在获取时我们是怎么得到的?因为我总是忘记获取文件地址的方法,就在此记录一下 本文分享自华为云社区<[Java]Java项目的绝对地址和 ...
- Axure 绘制表格添加删除
1.添加按钮:白底黑框,80X30,文本和命名均为"添加"; 2.数据表格(表头):1行5列,灰底黑框的表格作为表头,从左到右每个格子的文字分别为:姓名.性别.年龄.电话和操作: ...
- Codeforces Round 908 (Div. 2)
总结 T1 题目大意: A,B两人玩游戏,游戏规则如下: 整场游戏有多轮,每轮游戏先胜 \(X\) 局的人获胜,每场游戏先胜 \(Y\) 局的人获胜. 你在场边观看了比赛,但是你忘记了 \(x\) 和 ...
- 如何使用Java在Excel中添加动态数组公式?
本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 动态数组公式是 Excel 引入的一项重要功能,它将 Excel 分为两种风 ...
- PDF转图片-itextpdf-java源码
提供PDF 文件转图片的工具类. 电子签章过程中存在着在网页上对签署文件进行预览.指定签署位置.文件签署等操作,由 于图片在浏览器上的兼容性和友好性优于PDF 文件,所以一般在网页上进行电子签章时,会 ...
- 如临现场的视觉感染力,NBA决赛直播还能这样看?
在6月16日结束的NBA总决赛中,勇士4-2击败凯尔特人,问鼎总冠军!今年的NBA总决赛吸引了众多关注,互联网各大平台的赛事直播气氛也异常热烈. 平台如何既能展现专业的赛事解说,又能与球迷观众深入互动 ...
- 判断客户端是PC还是移动端问题的解决方案
今天在帮 莲的Live 2D 做浏览器适配的时候学会的一段代码 利用 Javascript 进行判断 function isPC() { //是否为PC端 var userAgentInfo = na ...
- HHKB Programming Contest 2020 补题记录(D题投影,E题预处理节省时间)
补题链接:Here A - Keyboard 签到,S 为 Y 则输出大写 T,不然则原样输出 T int main() { ios_base::sync_with_stdio(false), cin ...