Linux 用户ssh登录权限检查

第一步,查看可以登录的用户名:即排除不含 'nologin'的.

-v, --invert-match        select non-matching lines
-v 或者 --invert-match 反向匹配,实际就是取匹配行的补集,也就是不符合条件的那些行

[root@test ~]# cat /etc/passwd | grep -v 'nologin'

root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
news:x:9:13:news:/etc/news:
gm001:x:500:500::/home/gm001:/bin/bash
mysql:x:100:104:MySQL server:/var/lib/mysql:/bin/bash
virtual:x:503:503::/home/vir:/bin/bash
[root@test ~]#


第二步,进一步分析上面的账号.
 #查看所有登录的用户,日期
#last


(1)使用如下命令关闭用户账号:

virtual:x:503:503::/home/ftp:/bin/bash
[root@test ~]# passwd virtual -l
Locking password for user virtual.
passwd: Success
重新释放: passwd virtual -u
Unlocking password for user virtual.
passwd: Unsafe operation (use -f to force).

(2)永久性删除用户账号
userdel virtual
groupdel virtual
usermod –G virtual virtual   (强制删除该用户的主目录和主目录下的所有文件和子目录)

(3)显示用户信息
[root@test ~]# id virtual
uid=503(virtual) gid=503(virtual) groups=503(virtual)

第三步 用finger命令 对可疑账号分析.
yum install finger
Total download size: 21 k
Is this ok [y/N]: y
Downloading Packages:
finger-0.17-32.2.1.1.i386.rpm  
finger命令的功能是查询用户的信息,通常会显示系统中某个用户用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的 用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。

[root@test ~]# finger gm001     
Login: gm001                               Name: (null)
Directory: /home/gm001                      Shell: /bin/bash
On since Sat Aug 28 14:10 (CST) on pts/0 from 111.*.14.222
On since Sat Aug 28 14:10 (CST) on pts/1 from 111.*.14.222
1 hour 25 minutes idle
No mail.
No Plan.
[root@test ~]# finger root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Last login Wed Jul 21 05:02 (CST) on pts/2 from from 111.*.14.222
No mail.
No Plan.
-------------------  baidu-------------------

警告: usermod 最好不要用它来改用户的密码,因为他在/etc/shadow中显示的是明口令;修改用户的口令最好用passwd ;

[root@localhost ~]# usermod -p 123456 fishlinux  注:修改fishlinux的口令是123456 ;
[root@localhost ~]# more /etc/shadow |grep fishlinux  注:查询/etc/shadow文件中fishlinux的口令;我们看到明显是没有加密;
fishlinux:123456:13092:0:99999:7:::

-----------------

关于linux下口令相关的文件存放位置说明
/usr/bin/passwd 包含 passwd 命令。
/etc/passwd 包含用户 ID、用户名、主目录、登录 shell 和 finger 的信息
/etc/security/passwd 包含加密的密码和安全性信息。
/etc/shdow 用户加密后的口令存放位置

通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

得到用户名简单: 
awk -F':' '{print $1}' /etc/passwd

把/etc/passwd里列出的用户密码全部修改成112233
不过把系统的秘密全改成一样 非常不推荐 降低系统安全
#!/bin/bash
for name in `cat /etc/passwd | cut -d":" -f1`
do
passwd $name <112233
112233
EOF
done

转载于:https://my.oschina.net/richardx/blog/54569

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSH (Secure Shell) 免密登录 Linux 服务器是一种安全的远程访问协议,它允许用户在不输入用户名和密码的情况下,从一台计算机连接到另一台远程服务器执行命令或管理文件。以下是设置 SSH 免密登录的基本步骤: 1. **安装 SSH**: 在 Linux 服务器上,如果你还没有安装 SSH,可以通过包管理器安装,如 Debian/Ubuntu 使用 `apt-get install openssh-server`,Red Hat/CentOS 则用 `yum install openssh-server`。 2. **配置 SSH 私钥对**: - 首先,在本地机器生成一个新的 SSH 密钥对,通常在 `~/.ssh` 目录下: ``` ssh-keygen -t rsa ``` - 接着,会提示选择保存位置,直接按回车默认即可,然后确认操作。私钥(id_rsa)将会被保留,公钥(id_rsa.pub)将自动复制到剪贴板,粘贴到服务器的 authorized_keys 文件中。 3. **将公钥添加到服务器**: 登录到服务器,编辑 `.ssh/authorized_keys` 文件(如果不存在,创建一个并追加公钥内容),并将你的公钥粘贴进去。确保权限设置为 600(只读给用户和组): ``` chmod 600 ~/.ssh/authorized_keys ``` 4. **测试免密登录**: 回到本地,尝试使用 `ssh user@server_ip`(将 `user` 替换为实际用户名,`server_ip` 为服务器的 IP 地址),如果没有密码提示,则说明免密登录已经设置成功。 5. **防火墙设置**: 如果你的服务器开启了防火墙,可能需要允许来自特定 IP 或 IP 地址范围的 SSH 连接。你可以通过修改防火墙规则(比如 iptables 或 ufw)来开放相应的端口(通常是 22)。 相关问题: 1. 如何查看当前已有的 SSH 密钥? 2. SSH 免密登录的安全性如何保障? 3. 如何检查服务器上的 SSH 是否启用并监听?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值