在Linux中编辑/etc/passwd和/etc/group文件的正确方法
本简要教程说明了在Linux中使用vipw和vigr命令编辑/etc/passwd和/etc/group文件的正确方法。
为什么我们不能仅仅使用Vi或者nano这样的文本编辑器来编辑它们并完成它呢?
我们可能想知道!好吧,想象一下这种情况。
root用户当前正在使用Vi或者其他一些文本编辑器来编辑/etc/passwd文件。
同时,另一个用户尝试在root用户编辑/etc/passwd文件时更改其密码。
因此,密码更改可能不会在此文件中更新,并且用户可能无法登录。
这是vipw和vigr命令进入紧急状态的地方。
vipw和vigr命令用于在Linux系统中安全地编辑文件/etc/passwd和/etc/group。
他们将在编辑/etc/passwd和/etc/group文件时放置适当的锁,以防止其他用户对其进行任何更改并避免文件损坏。
当我们使用-s标志运行这些命令时,它们将分别编辑这些文件的影子版本,例如:/etc/shadow和/etc/gshadow。
使用vipw和vigr命令编辑/etc/passwd和/etc/group文件的正确方法
要安全地编辑/etc/password文件,只需运行:
$sudo vipw
要安全地编辑/etc/group文件,请运行:
$sudo vigr
现在,vipw和vigr命令将锁定/etc/passwd和/etc/group文件,并阻止其他用户进行任何更改。
要验证这一点,请打开两个终端窗口。
在一个窗口中运行“ sudo vipw”,然后尝试在另一个窗口中更改用户的密码。
直到退出vipw命令,密码才会更新。
因此,其他用户在以root用户身份进行编辑时,可能不会无意或者有意对/etc/passwd文件进行任何更改。
关闭/etc/passwd后,密码将成功更新。
我们也可以以普通用户身份登录,然后尝试在另一个“终端”窗口中更改用户的密码。
除非关闭vipw命令,否则密码不会更改。
在编辑/etc/passwd文件vipw命令时,我们甚至无法创建任何新用户。
$sudo useradd kumar useradd: cannot lock /etc/passwd; try again later.
同样,要编辑这些文件的影子版本,例如:/etc/shadow和/etc/gshadow,请使用-s标志。
$sudo vipw -s
$sudo vigr -s
vipw和vipr命令还支持其他选项:
-g, --group Edit group database. -h, --help Display help message and exit. -p, --passwd Edit passwd database. -q, --quiet Quiet mode. -R, --root CHROOT_DIR Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory. -s, --shadow Edit shadow or gshadow database
有关更多详细信息,请参见手册页。
$man vipw
$man vigr