/etc/passwd script question
Hello all, I need some scripting help. I need to modify the /etc/passwd file using a script.
I want to change the 2nd column of a user field from x to *.
As an example:
From
Code:
test:x:123:123:some comment:/bin/bash:/home/test
to
Code:
test:*:123:123:some comment:/bin/bash:/home/test
I've tried various combinations of sed and awk, but the /'s in the path names, and the wildcard '*' seem to mess things up.
Does anyone have an idea of how I can go about this?
Re: /etc/passwd script question
Maybe something like this:
Code:
awk -F: '{ sub(/x/,"*",$2); print }' /etc/passwd
Not sure if that's what you were looking to do. You can redirect the output to a file too, if you like. Just add '> somefile.txt' to the end
Re: /etc/passwd script question
Re: /etc/passwd script question
you can 'escape' the * wildcard with \, like so
Code:
sed s/:x:/:\*:/ /path/file
(you need to add the -i option or redirect the output to make changes permanent)
make sure you know what you're doing wrt /etc/shadow vs. /etc/passwd, and the effects of '*' in the password field !
Re: /etc/passwd script question
Thank you everyone, for all the help.
Using your advice I was able to get my script working.