如何使用 SSH 列出所有 FTP 用户名

如何使用 SSH 列出所有 FTP 用户名

我有一台 CentOS 5.5 服务器。如何使用 SSH 获取服务器上所有 FTP 用户的列表?

答案1

首先,无论您是在本地还是远程执行此操作,因为无论如何您都会在打开的会话期间拥有 shell 访问权限。如果您只想在远程计算机上执行单个命令并断开连接,您可以在引号中指定它:

ssh user@machine 'echo "Who's your Daddy?"'

尽管如此,您还是可以通过几种方式列出特定组内的所有用户:

使用getent工具:

getent group ftp

老式方法:

grep ^ftp /etc/group

使用自制脚本,您可以根据自己的需要进行调整:

#!/bin/bash

srchGroup="$1"

# get the corresponding line from /etc/group
for thisLine in "`grep "^${srchGroup}:" /etc/group`"
do
  # get the parts of interest 
  grpNumber="`echo ${thisLine} | cut -d":" -f3`"
  grpUsers="`echo ${thisLine} | cut -d":" -f4 | sed 's/,/ /g'`"
done

# check /etc/passwd
pwdUsers="`awk -F":" '$4 ~ /'${grpNumber}'/ { printf("%s ",$1) }' /etc/passwd`"

echo "0 ${srchGroup}" # given at commandline
echo "1 ${grpNumber}" # from /etc/group
echo "2 ${grpUsers}"  # from /etc/group
echo "3 ${pwdUsers}"  # from /etc/passwd
echo "All users: ${grpUsers} ${pwdUsers}"

$ ./show.group.users ftp
0 ftp
1 500
2 user1 user2
3 homie1 homie2
All users: user1 user2 homie1 homie2

该脚本被摘自这里

答案2

在 centos5 中,你可能正在使用 vsftpd。请参阅用于查看 vsftpd 中登录用户的命令?

相关内容