
finger
회사 네트워크 내에서 클라이언트 컴퓨터에서 인수 없이 실행하면 이름 등이 포함된 사용자 목록이 표시됩니다. 하지만 실행하면 finger @localhost
"연결이 거부되었습니다"라는 메시지가 나타납니다. 그렇다면 손가락은 기본적으로 어디에 연결되나요?
답변1
에 따르면 strace finger
내 시스템에서는 다음에서 현재 사용자 목록을 가져옵니다.
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 4
stat
pty를 사용하여 각 항목에 대한 세부정보를 확인하세요.
stat("/dev//pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
인수 없이 실행할 때. 으로 실행하면 데몬 @localhost
을 사용하려고 시도 fingerd
하지만 더 이상 1993이 아니기 때문에 실행되지 않습니다. 따라서 connection refused
.
편집하다user
대신 a 인수를 사용하여 실행하면 @remote-system
다음에서 정보를 가져옵니다.GECOS 필드in /etc/passwd
및 홈 디렉토리(와 같은 파일의 경우 ~/.plan
). 권한이 없으므로 사용자는 계획 파일 등을 표시하기 위해 읽을 수 있는 홈 디렉토리와 계획 파일이 필요합니다. 여기(또한 strace
)에서 다른 사용자의 디렉토리(모드 750)에서 이러한 파일 중 일부를 열려고 시도하고 실패하는 것을 볼 수 있습니다(그리고 저는 그녀의 그룹에 속하지 않습니다).
lstat("/home/cby/.pgpkey", 0x7fff52fcec60) = -1 EACCES (Permission denied)
lstat("/home/cby/.project", 0x7fff52fcec60) = -1 EACCES (Permission denied)
lstat("/home/cby/.plan", 0x7fff52fcec60) = -1 EACCES (Permission denied)