usermod -s
[root@localhost ~]#usermod -s /sbin/nologin lisi
[root@localhost ~]#su lisi
This account is currently not available.
[root@localhost ~]#
//lisi无法登录
passwd -l
[root@localhost ~]#passwd -l lisi
锁定用户 lisi 的密码 。
passwd: 操作成功
//锁定lisi密码无法登录
chattr
选项 | 说明 |
---|---|
-a | 让文件或目录仅供附加用途 |
+i | 不得任意更动文件或目录 |
[root@localhost ~]#chattr +i /etc/passwd
[root@localhost ~]#useradd wang
useradd:无法打开 /etc/passwd
//不得更改passwd文件无法添加用户
[root@localhost ~]#chattr -i /etc/passwd
[root@localhost ~]#useradd wang
[root@localhost ~]#
//解除
chage 选项 用户名
选项 | 说明 |
---|---|
-m | 密码可更改的最小天数 |
-M | 密码保持有效的最大天数 |
-w | 用户密码到期前,提前收到警告信息的天数 |
-E | 帐号到期的日期。过了这天,此帐号将不可用 |
-d | 上一次更改的日期 |
-i | 停滞时期 |
-l | 例出当前的设置 |
history -c
清除
[root@localhost ~]#vim /etc/profile
.............................
export HISTSIZE=200
[root@localhost ~]#source /etc/profile
[root@localhost ~]#history
263 userdel -r wangwu
264 su wang
265 chattr +i /etc/passwd
266 useradd wang
267 chattr -i /etc/passwd
268 useradd wang
269 vim /etc/profile
270 history
271 source /etc/profile
272 history
[root@localhost ~]#
//只显示十条
[root@localhost ~]#vim .bash_logout
//退出后清除
// ~/.bash_logout
echo " " >~/.bash_history
//一定要加空格
[root@localhost ~]#vim .bashrc 自对自己生效
su与su-
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
[root@localhost ~]#su lisi
[lisi@localhost root]$ exit
exit
[root@localhost ~]#su - lisi
上一次登录:日 7月 30 14:26:52 CST 2023pts/0 上
[lisi@localhost ~]$
PAM:Pluggable Authentication Modules,插件式的验证模块,Sun公司于1995 年开发的一种与认证相关的通用框架机制。
相关文件:
包名: pam
模块文件目录:/lib64/security/*.so
特定模块相关的设置文件:/etc/security/
man 8 加模块名 可以查看帮助
应用程序调用PAM模块的配置文件
工作原理:
PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so
专用配置文件/etc/pam.d/ 格式
type control module-path arguments
application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
type:指模块类型,即功能
control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现
module-path: 用来指明本模块对应的程序文件的路径名
Arguments: 用来传递给该模块的参数
shell模块
功能:检查有效shell
帮助:man pam_shells
案例:不允许使用/bin/csh的用户本地登录
模块: pam_shells.so 只允许 规定的shell类型通过, 是在/etc/shells 文件中存在的 类型通过
[root@localhost ~]#vim /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
//去掉/bin/csh
使用csh的用户将无法登录
securetty模块
功能:只允许root用户在/etc/securetty列出的安全终端上登陆
vim /etc/pam.d/remote
[root@localhost ~]#vi /etc/pam.d/remote
#%PAM-1.0
auth required pam_securetty.so
auth substack password-auth
auth include postlogin
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
//将auth required pam_securetty.so注释
limit
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
修改限制的实现方式:
(1) ulimit命令
ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。
ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。
ulimit只影响shell进程及其子进程,用户登出后失效。
可以在profile中加入ulimit的设置,变相的做到永久生效
选项 | 说明 |
---|---|
-H | 设置硬件资源限制 |
-S | 设置软件资源限制. |
-c | 设置core文件的最大值.单位:blocks |
-d | 设置数据段的最大值.单位:kbytes |
-f | 设置创建文件的最大值.单位:blocks |
-l | 设置在内存中锁定进程的最大值.单位:kbytes |
-m | 设置可以使用的常驻内存的最大值.单位:kbytes |
-n | 设置内核可以同时打开的文件描述符的最大值.单位:n |
-p | 设置管道缓冲区的最大值.单位:kbytes |
选项 | 说明 |
---|---|
-s | 设置堆栈的最大值.单位:kbytes |
-t | 设置CPU使用时间的最大上限.单位:seconds |
-u | 最大用户进程数 |
-v | 设置虚拟内存的最大值.单位:kbyte |
-a | 显示当前所有的资源限制 |
[root@localhost ~]#ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7168
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 7168
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
//open files (-n) 1024
这一条限制了进程能打开的文件数,1024远远不够使用。所以得为其增加
[root@localhost ~]#ulimit -n 100000
[root@localhost ~]#ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7168
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 100000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 7168
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
limits 生产中的 建议设置
* soft core unlimited
* hard core unlimited
* soft nproc 1000000
* hard nproc 1000000
* soft nofile 1000000
* hard nofile 1000000
* soft memlock 32000
* hard memlock 32000
* soft msgqueue 8192000
* hard msgqueue 8192000
//注意通信是相互得,所以两端必须一样设置
sudo特性:
sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440
[root@localhost ~]#vim /etc/sudoers
[root@localhost ~]#visudo
//语法检查
visudo -c
//检查语法
//建议使用visudo
配置文件格式说明:/etc/sudoers, /etc/sudoers.d/
配置文件中支持使用通配符 glob
[root@localhost ~]#visudo
...........
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
//允许root在任何地方使用任何命令
..............
//用户 登入主机 = (代表用户) 命令
user host = (runas) command
user: 运行命令者的身份
host: 通过哪些主机 多个 192.168.91.100 - 110 localhost
(runas):以哪个用户的身份
command: 运行哪些命令
//也可以对组进行操作
%在前表示组
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
root ALL=(ALL) ALL
当root得uid不为0时
别名
sudo别名有四种类型:
User_Alias(用户)
Runas_Alias(代表用户)
Host_Alias(登录主机)
Cmnd_Alias(命令)
必须大写字母,数字可以使用但是不能放在开头
示例
Host_Alias MYHOSTS = kgc,localhost
User_Alias MYUSERS = zhangsan,wangwu,lisi
Cmnd_Alias MYCMNDS = /sbin/*,!/sbin/reboot,!/sbin/poweroff,!/sbin/init,!/usr/bin/rm
MYUSERS MYHOSTS=NOPASSWD:MYCMNDS
子目录
为了不对全局生效,可以在/etc/sudoers.d/下创建子目录,只对部分生效,此原理适用于其他软件
[root@localhost ~]#grub2-setpassword
//直接设置密码
选项 | 说明 |
---|---|
-p | 指定扫描的端口 |
-n | 禁用反向DNS解析(以加快扫描速度) |
-sS | TCP的SYN扫描 (半开扫描),只向目标发出SYN数据包 |
-sT | TCP连接扫描,这是完整的TCP扫描方式 |
-sF | TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包 |
-sU | UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢 |
-sP | ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描 |
-P0 | 跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描 |
-sL | List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现 |
选项 | 说明 |
---|---|
-sn | Ping Scan 只进行主机发现,不进行端口扫描 |
-Pn | 将所有指定的主机视作开启的,跳过主机发现的过程 |
-PS/PA/PU/PY | 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现 |
-PE/PP/PM | 使用ICMP echo, timestamp, and netmask 请求包发现主机 |
-n/-R | -n表示不进行DNS解析;-R表示总是进行DNS解析 |
nmap -n -sP 192.168.80.0/24
//检测192.168.80.0/24网段有哪些存活主机