CentOS 5.5サーバーがあります。 SSHを使用してサーバー上のすべてのFTPユーザーのリストを取得するにはどうすればよいですか?
何よりも、開いているセッション中にシェルへのアクセス権があるため、これをローカルで行うかリモートで行うかは関係ありません。リモートマシンで単一のコマンドを実行して切断する場合は、引用符で囲んで指定できます。
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
このスクリプトは here からリッピングされています。
Centos5では、おそらくvsftpdを使用しています。参照 vsftpdでログオンしたユーザーを表示するコマンド?