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
Code:
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
Code:
getent passwd username

(then prints the home directory field), or
Code:
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:
Code:
ldaplist -v user1

?
# 5  
Old 04-07-2014
Quote:
Originally Posted by jlliagre
What says:
Code:
ldaplist -v user1

?
Actually ldaplist isn't available. I suspect this to be an implementation issue where in LDAP may have a default home directory specified for certain non-existent users on the server?

---------- Post updated at 03:34 PM ---------- Previous update was at 03:28 PM ----------

Its KSH on both AIX/Solaris but it looks to be a problem with the way it was configured. directory? Again I am suspecting this for the reason that certain users when echoed do have a default home directory but has not been granted access to that machine and neither does the home directory exist.

Also I would like to expand on previous post with one more behavior for clarity which I had originally posted in the query:

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

Last edited by thinkster; 04-07-2014 at 04:42 PM..
# 6  
Old 04-07-2014
Quote:
Originally Posted by thinkster
Actually ldaplist isn't available.
on the Solaris machine ?? If you have not ldaplist installed, you are unlikely to have any ldap authentication in the first place.
Quote:
I suspect this to be an implementation issue where in LDAP may have a default home directory specified for certain non-existent users on the server?
What directory server are you using ?
Quote:
--- non-existent user2 - echo ~user2 - says non-existent user.
"non-existent" doesn't seem to appear in ksh error messages. What ksh version are you using ? Is this really the precise error message you get ? on Solaris ? What Solaris release ?
# 7  
Old 04-03-2014
Read the man page of your shell on each OS!
For example
Code:
man bash

under Tilde Expansion
tells that it simply returns the ~user1 if not found.
Login or Register to Ask a Question

Previous Thread | Next Thread

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 192.168.1.126 nameserver 192.168.1.1 In Windows DNS server, the sole "Forward Lookup Zone" is biman.net 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
Login or Register to Ask a Question