Can't do: su $user


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Can't do: su $user
# 1  
Old 07-02-2010
Can't do: su $user

Hi all!

I need a script that first creates a list of all user in the system and then changes to each user to set some system settings.

So far I have this:
Code:
#!/bin/sh

ls /home/ > userList.txt

cat userList.txt | while read x; do
su $x //This gives me an error. "rrodrigues: command not found" (it's my user name)

#Settings

exit 
done

I though that was the right way...I also tried to use these quotes "" and these ''.
with the first I get the same error and with the '' I get the error unknown user id.

any help would be appreciated
thanks!

Last edited by vbe; 07-02-2010 at 11:22 AM.. Reason: code tags
# 2  
Old 07-02-2010
1) If you execute su, it will straight away prokpt you for the passwd... How do you intend to bypass that ?
2) You have something wrong somewhere else (typo or undisplayed char?) either you only partially gave you code and display output...
I tend to thing so, and believe you were prompted for a passwd then it displayed X lines similar to the error you mention

if you intend to use su, then use -c option
# 3  
Old 07-02-2010
use -c

Hi;

Try su $username -c command;I did as follows

Code:
ls -1 /home|while read IN; do su $IN -c whoami; done

output

Code:
abwilson
aparris
csteinma
dgeorges
djay
dpierrel
fdawaleh
fdjilani
jbaron
jdempsey
kbseabold
lauren_helpform
lbozidar
llschuh
mjoseph
mlavoie
mtrtest1
mtrtest2
mvaki
plchagnon
saaouine
salameri
sdrum
shuriyea
ssaji1
ssakhaf
tom
tomsawyer.is.back
tprand
tschreib

Syed

Last edited by pludi; 07-02-2010 at 01:19 PM.. Reason: code tags, please...
# 4  
Old 07-03-2010
I can see issues with the input stream from "while" clashing with reads from each terminal session.

Code:
I need a script that first creates a list of all user in the system and then changes to each user to set some system settings.

We must assume that you are logged in as "root" before starting this exercise.

It is not clear whether you wish to run a program while in the environment of each user or just to edit a flat file owned by that user in their respective account. i.e. Do you need the full user environment at the time of the edit?

Personally I would write a script to write a script, then execute that script. This method avoids the input from the while loop being read in error.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Pam.d and make difference between AD User and local user on Linux

Hello, i configured rhel linux 6 with AD directory to authorize windows users to connect on the system and it works. i have accounts with high privileges (oracle for example) if an account is created on the AD server i would to block him. I looked for how to do, for the moment all the... (3 Replies)
Discussion started by: vincenzo
3 Replies

2. UNIX for Dummies Questions & Answers

Switching from root to normal user takes me to user's home dir

Whenever i switch from root to another user, by doing su - user, it takes me to home directory of user. This is very annoying as i want to be in same dir to run different commands as root sometimes and sometimes as normal user. How to fix this? (1 Reply)
Discussion started by: syncmaster
1 Replies

3. Shell Programming and Scripting

Script interacts with user , based on user input it operates

i have a script which takes input from user, if user gives either Y/y then it should continue, else it should quit by displaying user cancelled. #!/bin/sh echo " Enter your choice to continue y/Y OR n/N to quit " read A if then echo " user requested to continue " ##some commands... (7 Replies)
Discussion started by: only4satish
7 Replies

4. Shell Programming and Scripting

Update LDIF User info based on Test User Certs ID's

Hi I need help.......... I have an Sun One Directory server LDIF file with 5000 user entries, I need to change the data to match Test ID's, so I can run a perf test. I'm way out of my league as I have not done any scripting for 10 years. There are four entries for each user in the file... (3 Replies)
Discussion started by: Macdaddy99
3 Replies

5. UNIX for Advanced & Expert Users

Determining if user is local-user in /etc/passwd or LDAP user

Besides doing some shell-script which loops through /etc/passwd, I was wondering if there was some command that would tell me, like an enhanced version of getent. The Operating system is Solaris 10 (recent-ish revision) using Sun DS for LDAP. (5 Replies)
Discussion started by: ckmehta
5 Replies

6. Shell Programming and Scripting

root user command in shell script execute as normal user

Hi All I have written one shell script for GPRS route add is given below named GPRSRouteSet.sh URL="www.google.com" VBURL="10.5.2.211" echo "Setting route for $URL for GPRS" URL_Address=`nslookup $URL|grep Address:|grep -v "#"|awk -F " " '{print $2}'|head -1` echo "Executing ... (3 Replies)
Discussion started by: mnmonu
3 Replies

7. UNIX for Dummies Questions & Answers

Difference between : Locked User Account & Disabled User Accounts in Linux ?

Thanks AVKlinux (3 Replies)
Discussion started by: avklinux
3 Replies

8. Shell Programming and Scripting

How do i change to super user then revert back to ordinary user ,using shell script?

Hi all, I am trying to eject the cdrom from a livecd after certain stage... Now assuming that it is possible to eject,please consider my issue!!! The OS boots into a regular user by default...so i am unable to use the eject command to push out the drive... However if i try pfexec eject it... (3 Replies)
Discussion started by: wrapster
3 Replies

9. UNIX for Advanced & Expert Users

Other than root user .Normal user is unable to create files

Hi all, I am using Sun Solaris 9 .In this system normal users unable to create files from the command line.I added these users in bin,adm and even root group i found them unable to create a file. (1 Reply)
Discussion started by: mallesh
1 Replies
Login or Register to Ask a Question