# Detect user

**URL:** <https://www.ruby-forum.com/t/detect-user/65719>\
**Category:** Ruby\
**Created:** [August 20, 2006, 8:41pm UTC](https://www.ruby-forum.com/t/detect-user/65719 "2006-08-20T20:41:04Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ryank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ryank](https://www.ruby-forum.com/u/ryank)\
**Post date:** [August 20, 2006, 8:41pm UTC](https://www.ruby-forum.com/t/detect-user/65719/1 "2006-08-20T20:41:04Z")

</div>

Hi

Im new to ruby and trying to learn by building a small app for mac osx.  
So far I love it. However, one thing I want to do is to detect the  
current user (of the app’s) system directory name ie -  
/Users/johnsmith/… - johnsmith being what I want get.

One way I tried was to use a system call such as

system(“Users”)

but although this will output the current user in the console it will  
not store the name as a variable because, as im sure you know, the  
system call returns a boolean and not the result of the call.

Anybody know of an alternative way.

Cheers

R

---

<div class="post-metadata">

**Author:** ![ryank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ryank](https://www.ruby-forum.com/u/ryank)\
**Post date:** [August 20, 2006, 8:49pm UTC](https://www.ruby-forum.com/t/detect-user/65719/2 "2006-08-20T20:49:20Z")

</div>

You can use ``, like:  
users = `Users`.chomp OR  
user = `whoami`.chomp

j`ey  
[http://www.eachmapinject.com](http://www.eachmapinject.com)

---

<div class="post-metadata">

**Author:** ![ryank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ryank](https://www.ruby-forum.com/u/ryank)\
**Post date:** [August 20, 2006, 8:52pm UTC](https://www.ruby-forum.com/t/detect-user/65719/3 "2006-08-20T20:52:28Z")

</div>

Joey wrote:

> You can use ``, like:  
> users = `Users`.chomp OR  
> user = `whoami`.chomp
> 
> j`ey  
> [http://www.eachmapinject.com](http://www.eachmapinject.com)

Magic - so simple

Cheers

---

<div class="post-metadata">

**Author:** ![ryank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ryank](https://www.ruby-forum.com/u/ryank)\
**Post date:** [August 20, 2006, 9:25pm UTC](https://www.ruby-forum.com/t/detect-user/65719/4 "2006-08-20T21:25:23Z")

</div>

I’m running on OS X, too. Here is what works for me in getting user  
environment info:

```
   user = ENV['USER'] # user login name
   home = ENV['HOME'] # user login path

```

The second seems to be what you are looking for.

Regards, Morton

---

<div class="post-metadata">

**Author:** ![ryank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ryank](https://www.ruby-forum.com/u/ryank)\
**Post date:** [August 20, 2006, 9:38pm UTC](https://www.ruby-forum.com/t/detect-user/65719/5 "2006-08-20T21:38:31Z")

</div>

Morton G. wrote:

> I’m running on OS X, too. Here is what works for me in getting user  
> environment info:
> 
> ```
> user = ENV['USER'] # user login name
> home = ENV['HOME'] # user login path
> 
> ```
> 
> The second seems to be what you are looking for.
> 
> Regards, Morton

Nice one

Thanks

---

<div class="post-metadata">

**Author:** ![ryank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ryank](https://www.ruby-forum.com/u/ryank)\
**Post date:** [August 21, 2006, 6:11pm UTC](https://www.ruby-forum.com/t/detect-user/65719/6 "2006-08-21T18:11:52Z")

</div>

require ‘etc’

current\_user = Etc.getpwuid

p current\_user.name  
p current\_user.dir

It works on any Unix system, not only on Mac OS X. Not sure about  
Windows, though.

Enjoy 😉  
Gennady.
