Visit Our UNIX and Linux User Community

Tilde prefix returns invalid home directory.

Thread Tools Search this Thread
Operating Systems Solaris Tilde prefix returns invalid home directory.
# 1  
Old 04-03-2014
Question Tilde prefix returns invalid home directory.

I am trying to find the home directory of users on a UNIX (Solaris/AIX) box using
echo ~username

This does return the home directory for all valid users. For some reason this command also outputs home directory which are non-existent for few users who seem not to have logon access to that server.

For eg. the above command would return below for a non-existent user - /home/username

What I expected was - ~username as the output for a user with no access and that does happen with certain usernames.

This makes me think what could be causing a difference between different users who do not have access to this server. Has this something to do with LDAP?

Nothing I can find in /etc/passwd either.

Last edited by thinkster; 04-03-2014 at 01:42 PM.. Reason: This thread should be moved to a Shell scripting forum as it no more looks to be an issue just with Solaris.
# 2  
Old 04-03-2014
The ~username does the same as a
getent passwd username

(then prints the home directory field), or
perl -e 'printf "%s\n", (getpwnam ("username"))[7]'

The getpwnam() is a function of the libc, and normally acts according to the passwd entry in /etc/nsswitch.conf

Last edited by MadeInGermany; 04-04-2014 at 05:42 AM.. Reason: get field#7
# 3  
Old 04-03-2014
Yeah I had tried getent but not sure if Solaris/AIX could get a default home directory from LDAP. How does that work? The reason its not clear is that, it hits a common LDAP and has different behavior for users who are not provided access to the same server(non-existent user). So things are like:

Common LDAP -
--- non-existent user1 - echo ~user1 outputs ~user1
--- non-existent user2 - echo ~user2 - says non-existent user.

Last edited by thinkster; 04-03-2014 at 05:19 PM..
# 4  
Old 04-03-2014
An ldap directory used to authenticate users is storing all fields traditionally found in the /etc/passwd plain file. The home directory is definitely one of them but one should only be returned if there is an entry matching the username requested, unless you have a non standard directory server or a custom plugin.
What says:
ldaplist -v user1

# 5  
Old 04-03-2014
Read the man page of your shell on each OS!
For example
man bash

under Tilde Expansion
tells that it simply returns the ~user1 if not found.
# 6  
Old 04-03-2014
@MadeInGermany The OP has likely read the manual page as he is expecting the behavior the bash manual is describing.
However, for some reason, he seems to observe inconsistent results.
# 7  
Old 04-04-2014
Originally Posted by jlliagre
@MadeInGermany The OP has likely read the manual page as he is expecting the behavior the bash manual is describing.
However, for some reason, he seems to observe inconsistent results.
Because the man pages are different?
A deviation between the shell and its man page would be a bug.

Previous Thread | Next Thread
Test Your Knowledge in Computers #431
Difficulty: Medium
JavaScript arrow functions were first introduced in 6th Edition - ECMAScript 2015.
True or False?

9 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

Home Questions Tags Users Unanswered Windows 2016 DNS server returns SERVFAIL for non-existing doma

I have two DNS resolvers in /etc/resolv.conf file. The top one is Windows DNS server, and the bottom one is my wi-fi router. Please see below. nameserver nameserver In Windows DNS server, the sole "Forward Lookup Zone" is When I query for host in the zone... (6 Replies)
Discussion started by: broy32000
6 Replies

2. Solaris

SunOS confusing root directory and user home directory

Hello, I've just started using a Solaris machine with SunOS 5.10. After the machine is turned on, I open a Console window and at the prompt, if I execute a pwd command, it tells me I'm at my home directory (someone configured "myuser" as default user after init). ... (2 Replies)
Discussion started by: egyassun
2 Replies

3. Shell Programming and Scripting

Extract Uniq prefix from a start and end prefix

Dear All, assume i have a file with content: <Start>6000</Start> <Stop>7599</Stop> the output is: 6000 7000 7100 7200 7300 7400 7599 how should we use any awk, sed, perl can do this task, means to extract the uniq prefixes from the start and stop prefix. Thanks Jimmy (3 Replies)
Discussion started by: jimmy_y
3 Replies

4. Shell Programming and Scripting

rm -rf ab returns find: `./ab': No such file or directory

Hi Gurus. This is driving me a bit batty. I now if must be a simple matter but I cant find anything that references it. I have a housekeeping script that searches for some huge dump directories then removes them using rm -rf. find ./ -name 'ab' -exec rm -rf {} \; This works but always... (7 Replies)
Discussion started by: rinser
7 Replies

5. Shell Programming and Scripting

Find all images, append unique prefix to name and move to different directory

Hi, I have a directory with Multiple subdirectories and 1000s of pictures (jpg) in each directory. The problem is that each directory has a 001.jpg in them. I want to append a unique name (the directory_name)would be fine. and then move them to one main backup directory once they have been... (1 Reply)
Discussion started by: kmaq7621
1 Replies

6. Shell Programming and Scripting

for $word in $line returns filenames in the current directory unexpectedly

I am writing a script below, which has 2 loops. The outer one reads file sufffixed with a number and inner inside which loop through each line of the file and display each space delimited string. However, i find that the string printed out in the inner loop includes not only the delimited string in... (2 Replies)
Discussion started by: martie
2 Replies

7. Solaris

Restricting SFTP user to a defined directory and home directory

Hi, I've created solaris user which has both FTP and SFTP Access. Using the "ftpaccess" configuration file options "guest-root" and "restricted-uid", i can restrict the user to a specific directory. But I'm unable to restrict the user when the user is logged in using SFTP. The aim is to... (1 Reply)
Discussion started by: sftpuser
1 Replies

8. Programming

Getting Home Directory

Hi I need to get the home directory of current user who is running the program, also i need to store the value in a particular variable and pass to the function. thanks in advance (4 Replies)
Discussion started by: cutechaps
4 Replies

9. UNIX for Dummies Questions & Answers

c++ home directory??

when i compile *.cpp files the compiler didn't find the non standart includes.If i have to put the full path of the includet files where shall i begin from root dirctory or i heve to put includet files in cpp home directory??? can i compile java files in unix(linux mandrake 7) if yes haw... (3 Replies)
Discussion started by: user666
3 Replies

Featured Tech Videos