安全:列出linux中所有可登录shell/ssh/sudo的用户

一,列出可登录shell的用户

root@lhdpc:~# grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
liuhongdi:x:1000:1000:liuhongdi,,,:/home/liuhongdi:/bin/bash

只显示用户名:

root@lhdpc:~# grep bash /etc/passwd | cut -d: -f1
root
liuhongdi

也可以把常见的3个不允许登录的类型排除:

root@lhdpc:~# grep -v "/sbin/nologin" /etc/passwd | grep -v "/bin/false" | grep -v '/bin/sync'
root:x:0:0:root:/root:/bin/bash
liuhongdi:x:1000:1000:liuhongdi,,,:/home/liuhongdi:/bin/bash

二,列出可登录ssh的用户

[root@web ssh]# grep AllowUsers /etc/ssh/sshd_config
AllowUsers user1 user2@192.168.1.20 user3@192.168.1.0/24

说明:如果sshd_config未设置AllowUsers,表示所有能获得shell的用户可以通过ssh登录此机器,

AllowUsers指令指定了哪些用户被允许通过SSH连接到服务器。
DenyUsers指令则指定了哪些用户不被允许通过SSH连接到服务器。

1,如果同时指定了AllowUsers以及 DenyUsers

此时,AllowUsers优先级高,其他非AllowUsers用户均禁止ssh登录

2,如果同时指定了AllowUsers以及 DenyUsers
有同一个用户同时存在于此两者之中,则表示禁止访问,因为:
这些指令可以同时存在于sshd_config文件中,但是如果存在冲突,DenyUsers指令会覆盖AllowUsers指令。

 

三,列出可sudo的用户:

1,验证一个用户是否有sudo权限?

[root@base2 ~]# sudo -l -U lhd
Matching Defaults entries for lhd on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
    LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User lhd may run the following commands on this host:
    (ALL) ALL

2,从/etc/sudoers可以查看:

[root@base2 ~]# grep -v "^#" /etc/sudoers | grep -v '^$' | grep "ALL=(ALL)"
lhd   ALL=(ALL)       ALL

说明:grep -v "^#" /etc/sudoers    : 去掉以#打头的
grep -v '^$'    : 去掉空白行

不以%号开头的表示"将要授权的用户" root
%号开头的表示"将要授权的组" %wheel

3,用脚本列出:

list_all_sudoer.sh

#!/bin/bash
for u in `cat /etc/passwd | cut -d":" -f1`; do
        sudo -l -U $u;
done

 

posted @ 2024-10-12 13:54  刘宏缔的架构森林  阅读(193)  评论(0编辑  收藏  举报