linux系统的su命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统的su命令相关的知识,希望对你有一定的参考价值。
我用的是一个培训班给改过的Linux,是thizlinux,现在我知道是修改Debian Linux给改的,在linux系统中登陆后输入su后提示输入密码,输入密码是正确的,但是它总是提示登陆失败,但用sudo -sh也是提示输入密码,输入后就能正常转化身份,希望能得到高手指点一二。谢谢。
问的是为什么su有这个命令而不能正常使用呢?而网上和书上都可以输入su使用。
可能你的系统中为了安全性,设置为禁止切换到root用户,而只能通过sudo执行管理操作。
最后如楼上所建议的,如果是在学习Linux,最好还是装一个常见的发行版吧,出了问题也更容易找到解决的办法。 参考技术A 把你要su的用户加入wheel组看看,我用Gentoo,不知道一样不,原来用Debian的时候没这种问题,建议你直接用Debian,别用那种每人用的东西,你都不知道是不是他系统本身的问题
linux系统安全su命令及系统安全
一、su命令
1、用途及格式
- 用途:用于切换用户
- su - 目标用户
2、su、su 目标及su - 目标用户的区别
- su-用户名:正确的格式切换用户
- su 用户名:在系统显示的pwd在/home/tom,但是查询环境变量仍是切换前root的环境变量,相当于实际并没有切换到新的用户,无法实现后期操作
- su:相当于 su - root
其中环境变量查询方法,在基础命令也提到过:echo $PATH;用“:”分隔
再回顾一个查询用户是否存在于系统:id 用户名
3、密码验证
- root→任意用户,不验证密码
- 普通用户→其他用户/root,验证目标用户的密码
这时就有个问题,su命令切换用户从安全的角度来说并不够安全;为什么呢?
大家想一想,若是普通用户→root,多人只要知晓密码就可以使用root,拥有了最高权限,这时网络隐患就会存在,那么如何能让普通用户不登录root也可以管理系统呢?这时就要引出sudo命令和visudo命令;
二、普通用户添加超级权限的方法
需要借助配置文件/etc/sudoers完成对普通用户添加超级权限的管理,以下为三种方法更改
- 需要编辑sudo命令,配置文件sudoers的内容,如果更改错内容,不会报错,可以强制退出,所以此方法并不常用
- visudo:编辑sudo的配置,不是配置文件,只是用vi调用了sudo的配置;通常使用此方法进行配置文件更改,并非只读
- 将新建的用户加入到wheel组内
1、sudo命令
- sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
- 借助sudo的配置文件/etc/sudoers完成对用户的管理
配置:
只有root可以新建用户,使用sudo无须切换环境变量即可新建用户,前提是需要编辑配置文件,
- vim /etc/sudoers
- 添加新建用户 例tom;加入一行新的配置(具体看下图)
若一次增加多个用户,多个命令“,”分隔
- :wq! 强制退出;切换用户到tom su - tom
- 创建用户 sudo useradd jerry:获得root权限添加用户jerry;查询用户是否创建成功:id jerry
- sudo -l:查询可以使用的权限
- sudo userdel -r jerry:删除用户jerry
2、visudo命令
编辑sudo的配置,不是配置文件,只是用vi调用了sudo的配置;通常使用此方法进行配置文件更改,并非只读;简而言之就是visudo其实是打开一个文件,让你编辑这个文件的内容,这个文件就是/etc/sudoers,用的编辑器默认是vi。
那么问题来了,为什么不用直接打开这个文件然后编辑其中的内容呢?
根据visudo的使用说明,如果你用visudo来编辑这个文件的话,它会帮你自动做很多事情,比如说语法检查、加锁防止别人同时修改这个文件等等,所以,强烈建议用户使用visudo,不要直接修改。
配置:
- 切换到root,使用命令visudo
- 编辑加一条内容:需要使用绝对路径
- 用vi调用文件(错误有报警) 报错后enter出现选项
3、wheel组
配置:
wheel:管理员组,拥有自大权限,增加用户时,可以加入wheel组即可
- gpasswd -a jerry wheel
- wheel可以不设置密码,如下
- 若设置用户不需要密码时加入wheel时,去掉注释#激活
- NOPASSWD:设置不需要用户密码
切换用户时正常输入密码,但是切换用户之后的操作无须密码
4、查看sudo操作记录
- 需启用defaults logfile 配置
- 默认日志文件:/var/log/sudo
查看系统安全日志的目录:cat /var/log/secure
sudo存在secuer内,还可以进入visudo配置文件最后增加一行
Defaults logfile="/var/log/sudo"
下次sudo的日志就可以在此路径查看
三、添加用户方法
3.1、使用别名增加用户:Alias
若同时增加很多用户的时候,减少工作量可以使用别名,别名需要大写
同样添加主机也可以使用别名,别名需要大写
3.2、通配符增加用户
- *:代表所有
- !:非,不可以
3.3、实例
要求:建立用户张三,限制张三不可以本机ip地址
命令:useradd 张三
zhangsan ALL=ALL,!/sbin/ifconfig
三、PAM安全认证
1、su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
- 为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2、PAM认证概念
- PAM(Pluggable Authentication Modules)可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前linux服务器普通使用的认证方式
3、PAM认证原理
- 一般遵循的顺序
- service(服务)→PAM(配置文件)→pam_*.so
- 首先要确定哪一项服务,然后加载响应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lin64/security下)进行安全认证
- 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM慕课进行认证
- 不同的应用程序锁对应的PAM模块是不同的
4、PAM的配置文件
查看某个程序是否支持PAM认证,可用ls命令查看配置文件路径:/etc/pam.d
示例:查看su是否支持PAM模块认证
ls /etc/pam.d | grep su
- 查看su的PAM配置文件:vim /etc/pam.d/su
- 每一行都是一个独立的认证过程
- 每一行可用区分三个字段
- 认证类型
- 控制类型
- PAM模块及其参数
实例:限制所有人不能su - root
首先打开pam配置文件
vim /etc/pam.d/su
启用认证:auth(authentication):身份认证;auth加上注释“#”
其次进入/etc/login.defs,最后一行加入:
SU_WHEEL_ONLY yes:只能允许wheel组的成功使用su这个命令切换到root用户
这时不在wheel组的用户就不可以用su命令切换到root1;系统提示拒绝权限
验证:进入到/etc/login.defs内把tom加入wheel组
这时切换就可以操作
5、PAM安全认证流程
认证流程四个过程
- 程序开始
- 验证开始
- 验证结束
- 程序后续动作
认证流程的四个状态 - required:验证失败也继续下一步,走完四个流程–>验证结束
- requisite:验证失败直接–>验证结束
- sufficient:验证失败也继续下一步,走完流程
- optional:不论失败成功,已经是最后一个流程,–>验证结束
四、系统引导和登录控制
1、开关机安全控制
1.1、调整BIOS引导设置
- 将第一引导设备设为当前系统所在硬盘
- 禁止从其他设备(光盘、U盘、网络)引导系统
- 将安全基本设为setup,并设置管理员密码
1.2、GURB限制
还记得之前的章节,忘记root密码时,进入救援模式无须输入之前的密码就可以直接更改root密码,安全性变低;那么可以通过更改grub密码来提供安全性
1.1.1、更改gurb密码
grub2-setpassword :设置grub密码
这时重启虚拟机系统,并在GRUB2启动屏显时,按下e键进入编辑模式,这时是需要密码才可以更改root密码,更改之后ctrl+x,退出当前界面grub2菜单进入系统
1.1.2、生成秘钥
生成秘钥:给密码加密,增加密码难度
使用grub2-mkpasswd-pbkdf2生成秘钥
vim grub.cfg,查看系统就自动密码加密,无须人工进入配置文件编辑
配置文件:/etc/grub2.d
还可以更改用户名zhangsan,隐藏root,实际root就是zhangsan
2、终端登录安全控制
2.1、限制root在安全终端登录
- 安全终端配置:/etc/securetty
- 终端tty1-6,终端切换
实例:进制终端tty2登录root
vim /etc/securetty
tty2前面加注释#
登录用户使用tty2的终端就无法登录用户了
2.2、限制普通用户登录root
使用情景:主要用户服务器停机维护了,其他用户登录会有个提示,比如“系统正在维护”,创建/etc/nologin,echo “系统正在维护” > /etc/nologin即可
实例
echo “系统正在维护” > /etc/nologin即可
/etc/nologin :这个文件是默认没有,需要创建,创建touch就无法登录终端了
这时登录root,页面会显示hello word
恢复原状 删除nologin:rm -rf etc/nologin
2.3、端口禁止远程
以下以tcp 22端口号举例,如何修改端口号从而不让root远程
问:不让root远程,首先是ssh服务,tcp的22端口
解决:
- ssh服务配置默认文件:/etc/ssh/sshd_config
vim /etc/ssh/sshd_config- 首先修改端口号:
原本是默认 #Port 22;更改默认的端口号,去掉注释,改成随便的数字,比如2222
- 其次不让root登录:系统默认是允许root
去掉root,yes 改成 no
- 首先修改端口号:
- 最后重启服务:更改配置文件之后需要重启:systemctl restart ssh
查看端口号:netstat -antp | grep 22
这时断开系统,再次连接就需要更改端口号为:2222,才能连接成功
六、弱口令检测
6.1、概述及方法
John the Ripper是一款开源的密码破解工具,能够在已知密文的情况下快速分析出明文的密码子串,支持DES、MD5等多种加密算法,而且允许使用密码字典来进行暴力破解
- 安装JR工具
- 安装方法 make clean 系统类型
- 检测弱口令账号
- 获得linux/unix服务器的shadow文件
- 执行john程序,将shadow文件最为参数
- 密码文件的暴力破解
- 准备好密码字典文件,默认为password.lst
- 执行john程序,结合–wordlist=字典文件
6.2、实例
- 下载john工具压缩包并解压
- make clean linux-x86-6:编译
- 生成可执行文件john
- cp /etc/shadow /root/shadow.txt:复制文件
/john /root/shadow.txt:执行暴力破解密码文件
6.3、字典破解
- 对于密码的暴力破解,字典文件的选择很关键
- 只要字典文件足够完整,密码破解只是 时间上的问题。因此,“什么样的密码才足够强壮”取决于用户的承受能力,有人认为超过 72 小时仍无法破解的密码才算安全,也可能有人认为至少暴力分析一个月仍无法破解的密码才 足够安全。
- John the Ripper 默认提供的字典文件为 password.lst,其列出了 3000 多个常见的弱口 令。如果有必要,用户可以在字典文件中添加更多的密码组合,也可以直接使用更加完整的 其他字典文件
-
- 执行 john 程序时,可以结合“–wordlist=”选项来指定字典文件的位置,以便 对指定的密码文件进行暴力分析
七、网络端口扫描-NMAP
7.1、概念
- 一款强大的网络扫描、安全监测工具
- 官方网站:http://nmap.org/
- ecntos 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm
7.2、NMAP扫描
基本格式
nmap [扫描类型][选项] <扫描目标...>
-sU ip地址:扫描udb端口
-sP:p相当于ping
-P:只ping 检查主机是否存活,后面跟ip地址-机器数;1-30或者245.0-24/表示一个网段的30/255台机器都扫描
-sP -n:加速ping
-n:加速;不进行域名解析增加速度
-P0 :扫描之前不建立三次握手连接,即不操作ping,直接扫描
-A:扫描显示的非常完全
-sS:只执行两次握手,没有最好一次握手(确认过程);S:syn的缩写
-sT:完整的三次握手过程,扫描TCP
-sF:只检测FIN包
-p 端口号 IP地址:指定端口扫描
7.3、实例
- nmap 127.0.0.1:扫描127.0.0.1
- nmap -sU 127.0.0.1:扫描127.0.0.1的udb端口
- nmap -sP 192.168.245.1-30:扫描主机192.168.254.1的30个及其是否存活
- nmap -sP -n 192.168.254.1-30:加速扫描主机192.168.254.1的30个及其是否存活
- namp -P0 -n 192.168.245.1-30:直接扫描主机192.168.254.1的30台主机
- nmap -A -n 192.168.245.1:详细扫描主机192.168.245.1
- namp -p 20-21 192.168.245.0/24:扫描是否开始ftp服务,ftp端口号是20 21
以上是关于linux系统的su命令的主要内容,如果未能解决你的问题,请参考以下文章