Does this mean that 'su - glibc' should always start bash
as a login shell, i.e. with --login?


If no, what is "an
environment similar to what the user would expect had the user
logged in directly"?

It means "whatever the shell does when it finds a "-" as first character in argv[0]. Bash's manpage says that " A login shell is one whose first character of argument zero is a - , or one started with the --login option." so the result of su - user should be the same as su user
--login.


If so, then why do the following commands
still cause bash not to read ~/.bash_profile:

I have no idea why it doesn't work for you. Are you sure that the glibc
package user actually HAS a .bash_profile?

root>echo "echo \"This is .bash_profile.\"" >~glibc/.bash_profile
root>cat ~glibc/.bash_profile
echo "This is .bash_profile."
root>echo 'echo $PATH' | su - glibc
/usr/bin:/bin
root> su - glibc
This is .bash_profile.
glibc>



Are you sure you're using the
correct su?

I checked that the version I am using is 5.2.1 from the coreutils package:
root>su --version
su (coreutils) 5.2.1
[...]

Which version is the correct one? Shall I try a newer version of coreutils?
--
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page

Reply via email to