
shell 如何通过shell编程将shadow和passwd里面将账户号、密码和UID放在一起。 30
例如:passwd里的内容是:root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologinshadow里...
例如:passwd里的内容是:root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
shadow里的内容是:root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::
bin:*:14126:0:99999:7:::
如何组成新的内容是:root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:0
bin:*:1 展开
bin:x:1:1:bin:/bin:/sbin/nologin
shadow里的内容是:root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::
bin:*:14126:0:99999:7:::
如何组成新的内容是:root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:0
bin:*:1 展开
2个回答
展开全部
思路是,将passwd的内容分域,将shadow内容同样分域,然后重新组合就行,简单的话,用cut来分域,或者用awk来分域,这个比较复杂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用awk可以同时处理两个文件的:
awk 'BEGIN{FS=OFS=":"}NR==FNR{w[$1]=$3}NR>FNR{for(a in w)if($1==a){print a,$2,w[a];break;}}' /etc/passwd /etc/shadow
FS, OFS, NR, FNR都是awk的内部变量,
awk每处理一行,NR(Number of Record)就增1;而FNR是跟文件相关联的,在处理一个文件时增1 ,换另一个文件就重新计数了。
NR==FNR表示正在处理第一个文件/etc/passwd
NR>FNR表示在处理第二个文件/etc/shadow
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询