|
|
楼主 |
发表于 2018-10-12 13:11:28
|
显示全部楼层
有时候我们从网上下载的共有镜像,需要修改密码,可以通过guestfish很简单的就能够实现
! g# v% @7 u' [" o" O2 b* w4 B+ R
1 {, k7 @5 D- y9 R7 ~软件安装
3 j9 c$ \0 E' F' i0 p
" L H' d* o' v/ ~- ^/ i" x9 C; [$ y. ^3 ^* g' O* s! V
## Centos7:
2 p8 e! P2 Q1 X# Y" P# d# yum -y install guestfish
2 ?4 C, u4 K/ B5 W7 L## ubuntu
+ L) M2 M) O3 L3 R# yum -y install libguestfs-tools
0 T& |3 z3 ^ v9 X7 F升级加密密码
, ~ @" H6 F4 p& }. F
/ i) \+ _6 Z1 E; x; g ^7 u# openssl passwd -1 PASSWORD # 这里把 PASSWORD 替换为自己想要设置的密码% T: }* O2 G$ n' n1 P4 A
$1$/jCcCUMM$rU8XqMS6kVuZ7zxn.PQCs. # 生成的加密密码,会写入到镜像中1 P6 Q% E$ }8 Z3 ^7 R6 z
挂载镜像并修改密码# _7 P3 J |, `( L; w
A' y7 g! F6 ?/ s$ {- A
. I7 o8 `) A9 ?% E. e4 @* {) G0 A
# guestfish --rw -a /root/CentOS-7.2-1511.img+ I, e( Z( m7 m" k& _+ {& p
><fs> ## 提示符变成了这样,进入了 guestfish 会话
b4 w# N1 V& i V' h( x><fs> run ## 它会启动一个虚拟机,用于完成我们所以的对文件的操作
" o& u+ ?3 L; p- w/ l3 Y><fs> list-filesystems ## 通过list-filesystems命令,我们可查看镜像内的文件系统列表:4 r e+ k5 Z$ t/ q
/dev/vda1: xfs) K4 q9 T- @% p) X5 U: A
><fs> mount /dev/vda1 / ## 挂载上述分区' {& A* v4 _$ R* e, T' T
><fs> vi /etc/shadow ## 把前面通过openssl 生成的加密密码替换root后面的密码
9 N% g V1 N5 |4 ?( @8 `, cvi /etc/shadow:6 y+ o6 j6 j; A; g: C
. K6 S+ V" M1 g% ^/ B: U. u! F& v7 ~0 ` Q
root:$1$TwYla0akghaspfkshg98shdlknlksgsahsghlsklksjlkjk::0:99999:7:::
; A- n) y! h" X8 V% m4 q.../ ?' w5 c# l& L/ F, _ f! z* m* S
.../ {- ^& J# w- g) `6 S( N
...2 c4 B* k1 y! @+ Z& e. s7 d
把从 root: 到 ::0: 之间的字符替换:
+ o" T( j9 x% s4 E2 |
4 F- L% F' V2 C" M8 d: I) `! l/ u6 v3 V. h
root:$1$/jCcCUMM$rU8XqMS6kVuZ7zxn.PQCs.::0:99999:7:::
& d+ S9 k3 A9 z* M7 O; W...
. L$ @+ n) }/ c2 z0 y...
, b" u6 o# E3 W2 a: l7 |9 b, r- n...+ _9 ?5 {% }" o: a
这样root的密码就替换为新密码- b1 {/ [& D& j% j$ N1 Q6 [
! e! H, J$ p' k* n% B
% l L, }/ @9 F5 K# `><fs> quit ## 退出# X- [# V4 W R$ A
然后上传该镜像即可(glance image-create –disk-format raw –visibility public –container-format bare –name CentOS7.2-1511-base-v1.0 –file CentOS-7.2-1511.img –progress)' X% @4 f/ a1 V+ V- e6 m
Y( P3 b8 [& [( ]2 l! M其实guestfish可以做很多事:删除文件等 |
|