Linux系统安全与应用
补充:重定向
类型 操作符 用途
重定向输入 < 从指定的文件读取数据,而不是从键盘输入
重定向输出 1> 将输出结果保存到指定的文件(覆盖原有内容)
追加 >> 将输出结果追加到指定的文件尾部
标准错误输出 2> 将错误信息保存到指定的文件(覆盖原有内容)
标准错误输出结果追加到指定的文件尾部 2>> 将错误信息追加到指定的文件中
混合输出 &> 将标准输出、标准错误的内容保存到同一个文件中
实例操作:

1.系统账号清理
1)将非登录用户shell设为/sbin/nologin

2)锁定长期不使用的账号
usermod -L 用户名
passwd -l 用户名
3)解锁用户账号
passwd -u 用户名
usermod -U 用户名

4)删除无用的账号
userdel -r [用户名]

5)锁定账号文件passwd、shadow
锁定:chattr +i /etc/passwd /etc/shadow
解锁:chattr -i /etc/passwd /etc/shadow
查看:lsattr /etc/passwd /etc/shadow

2.密码安全:
1.修改用户密码
1)echo 密码 | passwd --stdin 用户名
2)passwd 用户名

2.设置密码有效期:
1)对新建用户设置:vim /etc/login.defs
PASS_MAX_DAYS 30

2)chage命令
命令格式:
chage [选项] 用户名
常用选项 说明
-d 指定密码最后修改日期
-E 密码到期的日期,过了这天,此账号将不可用。0表示马.上过期, -1表示永不过期。
-h 显示帮助信息并退出
-l 密码过期后,锁定账号的天数
-i 列出用户以及密码的有效期
-m 密码可以更改的最小天数。为零代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-W 密码过期前,提前收到警告信息的天数。
例子:
对已创建的用户:chage -M 30 用户名
用户下次登录时修改密码:chage -d 0 用户名
历史命令限制:
1)减少命令历史数量:
vim /etc/profile(修改配置文件)
HISTSIZE=200(此命令可添加export,即全局有效)
2)自动清空历史命令:history -c
3)终端自动注销:TMOUT=10(秒)
2、su命令安全
切换用户
su 用户名:切换用户但不更改环境变量
su - 用户名:完整切换

普通用户切换其他用户需要对方密码
root用户切换无需密码
限制用户使用su命令:
启用pam_wheel模块,只允许wheel组用户使用su命令
gpasswd -a 用户名 wheel (将用户加入组)
vim /etc/pam.d/su
#auth required pam_wheel.so use_uid (删除#号)


3、sudo:提升权限
命令:sudo 授权命令的绝对路径
需要输入本人密码
sudo配置文件:/etc/sudoers
打开方式:visudo
vim /etc/sudoers
格式:用户列表 主机名列表=权限列表
例子:用户名 ALL=/usr/sbin/useradd
%组名:代表组 ALL代表所用 *匹配任意
NOPASSWD:命令:无需密码就可执行
列表设置为别名:User_alias(用户)
Host_alias(主机)
Cmnd_alias(命令)
命令格式:用户 主机 = 命令
sudo -l:查看sudo命令权限
sudo -k:清除密码缓存,默认缓存5分钟
日志文件:/var/log/sudo
需要defaults logfile配置
(defaults logfile=/var/log/sudo)


4、开关机安全
1)调整Bios设置:
禁止从其他设备引导
设置Bios密码
2)禁用Ctrl+Alt+Del重启
vim /etc/init/control-alt-delete.conf
3)grub菜单限制:
在title前设置密码:禁止更改参数
在title后设置密码:禁止进入系统
密码方式:明文:passwd密码
密文:用grub-md5-crypt生成
vim /boot/grub/grub.conf
Password -md5 密码字串

5、终端安全登录:
1)减少开放的终端数:/etc/init/start-ttys.conf
/etc/sysconfig/init
ACTIVE_CONSOLES=/dev/tty[456]
2) 限制root用户使用的终端:/etc/securetty
3) 禁止普通用户登录:建立/etc/nologin文件 touch /etc/nologin
删除即可恢复登录 rm -f /etc/nologin
6、系统弱口令检测:Joth the Pipper 简称JR
开源软件:支持字典式的暴力破解,支持des和md5的加密破解
命令名为:john
破解命令:./john --wordist=password.lst /etc/shadow
--wordist(指定密码文件)
Password.lst(默认字典文件)
破解后密码保存在john.pot文件中,可用./john --show /etc/shadow查看
Linux系统安全与应用的更多相关文章
- 在Linux系统下运行微信Web开发者工具
微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...
- Linux实战教学笔记06:Linux系统基础优化
第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...
- Linux系统中的Device Mapper学习
在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...
- 玩转 Linux 系统的方法论
Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...
- Linux 系统中发博客必备的五大图片处理神器
发博客时,总免不了要用图片说话.经过长时间的磨合,在 Linux 桌面系统下有几款图片处理软件我已经用得比较顺手了.这几款软件在 Linux 世界使用广泛,各个 Linux 发行版的软件仓库中都有自带 ...
- 探索 Linux 系统的启动过程
引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...
- 在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 ...
- 如何重置硬盘遭到“损坏”的Linux系统root用户密码
传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...
- Linux 系统中的MySQL数据库默认区分大小写
今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...
- 如何配置Linux系统的网络IP地址
一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...
随机推荐
- 【ACM程序设计】求最小生成树 Kuskual算法
Kuskual算法 流程 1 将图G看做一个森林,每个顶点为一棵独立的树 2 将所有的边加入集合S,即一开始S = E( 并查集) 3 从S中拿出一条最短的边(u,v),如果(u,v)不在同一棵树内, ...
- 一篇讲清楚String、StringBuffer和StringBuild
一.String篇 1.String基本介绍? (jdk文档原文)String类代表字符串. Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例. 说人 ...
- Windows Terminal无法加载WSL [process exited with code 4294967295 (0xffffffff)]
在Windows Terminal中WSL无法打开错误代码是 process exited with code 4294967295 (0xffffffff),但在命令行中 通过 "C:\W ...
- 尾递归与 memorize 优化
尾递归与 memorize 优化 本文写于 2020 年 12 月 10 日 递归 递归是一种非常常见的算法思维,在大家刚开始学编程的时候应该就会接触到. 我们可以这么理解递归: function 讲 ...
- Hbase数据库安装部署
Hbase单机版安装 hbase介绍 HBase – Hadoop Database是一个分布式的.面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文"Bigta ...
- 在MySQL中保存Java对象
需要在MySQL中保存Java对象. 说明: 对象必须实现序列化 MySQL中对应字段设置为blob 将Java对象序列化为byte[] public static byte[] obj2byte(O ...
- 好客租房46-react组件进阶目标
1能够使用props接收数据 2能够使用父子组件之间的通讯 3能够实现兄弟组件之间的通讯 4能够给组件添加props校验 5能够说出生命周期常用的钩子函数 6能够知道高阶组件的作用 组件通讯介绍 组件 ...
- Pandas复杂查询、数据类型转换、数据排序
Pandas高级操作 1.复杂查询 (1)逻辑运算 以DataFrame其中一列进行逻辑计算,会产生一个对应的bool值组成的Series 于是我们可以利用返回的bool列表进行一系列的数据查询 (2 ...
- 测试平台系列(94) 前置条件该怎么支持Python呢
回顾 上一节我们狠狠操练了一番oss,但我们的任务还很长久,所以我们需要继续打磨我们的功能. 那今天就让我们来思考下,如何在前置条件支持python脚本,多的不说,我们也暂时不考虑其他语言,因为光考虑 ...
- T1创世纪(原创)
创世纪 这是我的第一道原创题 题解: 这道题的核心算法是:加维度的最短路+贪心 状态:\(dis[i][j][t][a]\)表示在 \(t\) 时,到达 \((i,j)\) ,当前共造\(a\)只&q ...