banner
Previous Page
PCLinuxOS Magazine
PCLinuxOS
Article List
Disclaimer
Next Page

Let Sherlock Show You Where Your Username Might Be In Use


by Paul Arnote (parnote)


I am, literally, all over the internet in search of items for the magazine, every single month. So, when I found this article on the Lifehacker website, I was bound and determined to see if there was a way to bring this script to PCLinuxOS users.


Sherlock Holmes

The Sherlock Project is a Python script that runs from the command line (in a terminal session) that will search 407 (the count at the time of this article's writing) “social media” sites (excluding Facebook and X) for the specified username. This might be handy to help rediscover accounts you might have forgotten about. Or, this may be handy to help you figure out if the username you want to use on a site has already been taken, should you decide to create an account there. Or, this may be handy to merely help satisfy your curiosity.

One line in the article caught my attention (besides the topic focusing on the script). Here it is:

“Things are easier if you're a Linux user: Sherlock is likely already offered by your package manager.”

So, I searched the PCLinuxOS repository, and found that Sherlock is NOT in the PCLinuxOS repository. That was the first problem I encountered.

Just a brief note here is required, before we go any further. While the “standard rule” around PCLinuxOS is to ONLY install programs from the official PCLinuxOS repository, installation of this particular Python script is safe, and will cause NO damage to your PCLinuxOS installation. So, proceed at your own risk (but rest assured that there is virtually no risk here).

Fortunately, the Sherlock Project maintains its latest version on GitHub. Off I went to GitHub to download the source code for the project. Once you have the source code downloaded, extract the ZIP file to its own directory. I downloaded the ZIP file to my “Downloads” directory, and then extracted the source code to a subdirectory there. In my terminal session, I traversed to that subdirectory. Once you get there, resist the urge to drill down into the directory structure in that subdirectory. You will need to remain in that top-level directory. I kept the name of that directory, sherlock-master, which is the same name as the ZIP file I downloaded from GitHub.

I then went to the Sherlock Project's homepage. Under the installation section, it recommended using pipx to install the python script to my computer. Back to the PCLinuxOS repository, I went to look for pipx. Again, that was NOT in the PCLinuxOS repository, either (If it is/was, I wasn't able to find it).

To see just what was installed on my computer, I typed “pip” in at a command line prompt, and I hit the tab key. All of the programs starting with “pip” popped up. The installation page stated that it was possible to use pip to install Sherlock. It was installed on my computer, but that didn't work either.

So, I did notice in my terminal session that pip3 was already installed on my computer. With basically nothing to lose, I retried the installation command using pip3. Here is the command:

pip3 install --user sherlock-project

To my surprise, it worked. Below is the output from my terminal session from using pip3 to install Sherlock to my computer. The --user switch tells Python to install it for the current user.

[parnote@localhost sherlock-master]$ pip3 install --user sherlock-project
Collecting sherlock-project
   Downloading sherlock_project-0.15.0-py3-none-any.whl (35 kB)
Requirement already satisfied: certifi>=2019.6.16 in /usr/lib/python3.10/site-packages (from sherlock-project) (2021.10.8)
Collecting Coloma<0.5.0,>=0.4.1
   Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Requirement already satisfied: requests<3.0.0,>=2.22.0 in /usr/lib/python3.10/site-packages (from sherlock-project) (2.27.1)
Collecting openpyxl<4.0.0,>=3.0.10
   Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 250.9/250.9 kB 1.6 MB/s eta 0:00:00
Collecting requests-futures<2.0.0,>=1.0.0
   Downloading requests_futures-1.0.1-py2.py3-none-any.whl (7.6 kB)
Collecting stem<2.0.0,>=1.8.0
   Downloading stem-1.8.2.tar.gz (2.9 MB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 3.2 MB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Collecting pandas<3.0.0,>=1.0.0
   Downloading pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.0 MB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.0/13.0 MB 10.8 MB/s eta 0:00:00
Requirement already satisfied: PySocks<2.0.0,>=1.7.0 in /usr/lib/python3.10/site-packages (from sherlock-project) (1.7.1)
Collecting et-xmlfile
   Downloading et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Collecting python-dateutil>=2.8.2
   Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 7.4 MB/s eta 0:00:00
Collecting numpy>=1.22.4
   Downloading numpy-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.3 MB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.3/16.3 MB 17.3 MB/s eta 0:00:00
Collecting tzdata>=2022.7
   Downloading tzdata-2024.1-py2.py3-none-any.whl (345 kB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 345.4/345.4 kB 10.9 MB/s eta 0:00:00
Collecting pytz>=2020.1
   Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB)
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 508.0/508.0 kB 9.3 MB/s eta 0:00:00
Requirement already satisfied: urllib3<1.27 in /usr/lib/python3.10/site-packages (from requests<3.0.0,>=2.22.0->sherlock-project) (1.26.9)
Requirement already satisfied: charset_normalizer~=2.0.0 in /usr/lib/python3.10/site-packages (from requests<3.0.0,>=2.22.0->sherlock-project) (2.0.12)
Requirement already satisfied: idna>=3 in /usr/lib/python3.10/site-packages (from requests<3.0.0,>=2.22.0->sherlock-project) (3.3)
Requirement already satisfied: six>=1.5 in /usr/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas<3.0.0,>=1.0.0->sherlock-project) (1.16.0)
Using legacy 'setup.py install' for stem, since package 'wheel' is not installed.
Installing collected packages: stem, pytz, tzdata, python-dateutil, numpy, et-xmlfile, colorama, requests-futures, pandas, openpyxl, sherlock-project
   Running setup.py install for stem ... done
   WARNING: The scripts f2py and numpy-config are installed in '/home/parnote/.local/bin' which is not on PATH.
   Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
   WARNING: The script sherlock is installed in '/home/parnote/.local/bin' which is not on PATH.
   Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed colorama-0.4.6 et-xmlfile-1.1.0 numpy-2.1.1 openpyxl-3.1.5 pandas-2.2.2 python-dateutil-2.9.0.post0 pytz-2024.2 requests-futures-1.0.1 sherlock-project-0.15.0 stem-1.8.2 tzdata-2024.1

By default, the program is installed to your ~/.local/bin directory. Since that directory is NOT in my path statement, I would have to switch to that directory just to run Sherlock every time I wanted/needed to run it. As you can see from the output that follows, it runs very well.

If Sherlock is installed in a directory that is NOT in your path, you will need to switch to that directory, and type ./sherlock [username] at a command line prompt. You can replace “[username]” with the username you want to search for, of course. In the example below, I typed ./sherlock parnote to search for my usual username.

I “fixed” the hassle of having to switch to the ~/.local/bin directory every time I run the command simply by copying the sherlock script file to my ~/bin directory, which is in my path. Now, just typing sherlock [username] at a command prompt launches the Sherlock script without the aerobics of switching to the installation directory, and without having to precede the script name with ./ to make it launch. For what it's worth, you could also create a soft link to the sherlock script file in a directory that is in your path. I didn't see the need to do that, since the sherlock script (at least the part that launches the sherlock program) is a very small file, only 224 bytes in size.

[parnote@localhost bin]$ ./sherlock parnote
[∗] Checking username parnote on:

[+] 8tracks: https://8tracks.com/parnote
[+] AllMyLinks: https://allmylinks.com/parnote
[+] Amino: https://aminoapps.com/u/parnote
[+] Codeberg: https://codeberg.org/parnote
[+] DailyMotion: https://www.dailymotion.com/parnote
[+] Dealabs: https://www.dealabs.com/profile/parnote
[+] Disqus: https://disqus.com/parnote
[+] Fiverr: https://www.fiverr.com/parnote
[+] Freesound: https://freesound.org/people/parnote/
[+] GitHub: https://www.github.com/parnote
[+] Gitee: https://gitee.com/parnote
[+] HackTheBox: https://forum.hackthebox.eu/profile/parnote
[+] HackenProof (Hackers): https://hackenproof.com/hackers/parnote
[+] HackerEarth: https://hackerearth.com/@parnote
[+] HudsonRock: https://cavalier.hudsonrock.com/api/json/v2/osint-tools/search-by-username?
username=parnote
[+] Instructables: https://www.instructables.com/member/parnote
[+] Issuu: https://issuu.com/parnote
[+] Kick: https://kick.com/parnote
[+] Launchpad: https://launchpad.net/~parnote
[+] LibraryThing: https://www.librarything.com/profile/parnote
[+] Lichess: https://lichess.org/@/parnote
[+] NitroType: https://www.nitrotype.com/racer/parnote
[+] Pastebin: https://pastebin.com/u/parnote
[+] ProductHunt: https://www.producthunt.com/@parnote
[+] Roblox: https://www.roblox.com/user.aspx?username=parnote
[+] Scribd: https://www.scribd.com/parnote
[+] Snapchat: https://www.snapchat.com/add/parnote
[+] Spotify: https://open.spotify.com/user/parnote
[+] Strava: https://www.strava.com/athletes/parnote
[+] TLDR Legal: https://tldrlegal.com/users/parnote/
[+] Telegram: https://t.me/parnote
[+] Venmo: https://account.venmo.com/u/parnote
[+] Vero: https://vero.co/parnote
[+] Wikipedia: https://en.wikipedia.org/wiki/Special:CentralAuth/parnote?uselang=qqx
[+] WordPress: https://parnote.wordpress.com/
[+] Xbox Gamertag: https://xboxgamertag.com/search/parnote
[+] YouTube: https://www.youtube.com/@parnote
[+] last.fm: https://last.fm/user/parnote

[*] Search completed with 38 results

Sherlock will only display the positive results it receives. Among those results, I have absolutely NO idea what some of those sites are, and I have no recollection of having ever visited those sites. Ever. On others, I do recognize them, and some of them are legitimately my accounts. And, for a few, I do know who the accounts belong to, even though they aren't mine. For example, I absolutely DO NOT have a Venmo account. But it lists a user named parnote. Opening the link shows that it is my aunt, and her username there is parnote. I also don't have a Snapchat account. It belongs to someone else that I do not know.

There are a few ways to check out the sites that Sherlock returns. Probably the hardest way is to type each address manually in your browser. That might take a while, depending on how many results it returns. The easier way is to right-click your mouse on each site, and select “Open Link” from the context menu. That should open the link in your default web browser. The third way is to highlight the results in your terminal window, and select “Copy as HTML” from the context menu. Paste that selection into a plain text editor (something like Kate, Mousepad, Leafpad, Geany, etc. DO NOT use LibreOffice Writer for this), and then save the file as an HTML file. You can then load that basic HTML file into your favorite web browser (File > Open File…), and then have all of the links right there in your web browser, without having to switch between your web browser and your terminal window.

Do you need to search multiple usernames? Fortunately, Sherlock allows you to list multiple usernames as command line arguments. For example, if I wanted to search for sites that have parnote and someotheruser as usernames, I'd enter sherlock parnote someotheruser at the command line prompt. While you can list several usernames as command line arguments, I prefer to check each username one at a time.

Also, just because Sherlock returns usernames it finds, it doesn't mean that those accounts are yours. It just means it found the specified usernames on those sites. Sherlock doesn't know you from Adam (or Eve).

There are no restrictions on the usernames you enter as command line arguments. You can use any username you want to search for. For example, I typed “sherlock Texstar” in on the command line, and it came back with 66 positive results. Typing in “sherlock meemaw” returned 134 positive results.

Sherlock works very well, and it also works very fast. In most cases, Sherlock returns its results in less than two minutes, and often in under one minute. While this may not be a tool you use all that often, its functionality is unique and should help find accounts you forgot you even had (that happened for me … I found some accounts I had forgotten about).



Previous Page              Top              Next Page