亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 一個刪除帳號密碼的腳本,問題 [打印本頁]

作者: lineba116    時間: 2007-08-16 13:11
標題: 一個刪除帳號密碼的腳本,問題
#!/bin/bash
echo -n "Which user's password do you want to delete: "
read input
k=$(awk -F \: '/'"$input"'/{print $2}' /etc/shadow)
sed "s/$k//g" /etc/shadow >shadow.bak
mv -f shadow.bak /etc/shadow
echo "$input's password has been deleted!!!"

現(xiàn)在遇到的問題是密碼文件中包含了很多特殊符號,比如$1$1n7MJOnb$u3pJfz0.Wpxw49pjBWIeI/,里面有/的話就會導(dǎo)致sed不能區(qū)分它們出錯,大家看看能不能解決?
作者: coolsail    時間: 2007-08-16 13:24
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: waker    時間: 2007-08-16 13:54
awk 'BEGIN{FS=OFS=":"
printf "Which user\047s password do you want to delete: "
getline var <"/dev/stdin"}
$2==var{$2=""}
1" /etc/shadow
作者: 寂寞烈火    時間: 2007-08-16 13:55
passwd -d username
作者: fucu    時間: 2007-08-16 13:55
干的漂亮
作者: mxbao    時間: 2007-08-16 16:00
1" /etc/shadow
最后面的1是什么意思呢?
還有后面是"?不是'?
作者: ivhb    時間: 2007-08-16 16:13
原帖由 mxbao 于 2007-8-16 16:00 發(fā)表
1" /etc/shadow
最后面的1是什么意思呢?
還有后面是"?不是'?

awk是個pattern-action語言,
每條語句都是pattern,加上action組成
1,如果沒有pattern,就表示,這個action對每一輸入行都有效
2,如果沒有action,那么采用默認的動作print $0

pattern為1,恒表示真
作者: lineba116    時間: 2007-08-16 16:20
受2樓的啟示,做一下修改,不過4樓的建議讓我很震撼!嘿嘿
#!/bin/bash
echo -n "Which user's password do you want to delete: "
read input
awk -F \: '/'"$input"'/{print $2}' /etc/shadow|tr ";./" x </etc/shadow >shadow.bak
k=$(awk -F \: '/'"$input"'/{print $2}' shadow.bak)
sed "s/$k//g" shadow.bak >shadow.bak.bak
mv -f shadow.bak.bak /etc/shadow
rm -f shadow.bak shadow.bak.bak
echo "$input's password has been deleted!!!"




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2