ubuntu如何通过使用 INOTIFYWAIT 观察文件来获得更改
每次在 /etc/shadow 中更改密码时,我都想获取用户名。这是我的脚本:
while inotifywait -e attrib /etc/shadow; do
#edit user
while IFS=: read -r f1 f2
#get username for changed password
done < $file
#end edit user
done
我怎样才能轻松做到这一点?
要显示您上次更改密码,请使用 passwd
passwd -S | awk '{print $3}'
或使用不同的用户名
sudo passwd -S user_name | awk '{print $3}'
因此,您可以/etc/passwd
在脚本中遍历用户名并显示每个用户的时间戳,可能是 ID >= 1000 的用户。
while inotifywait -e attrib /etc/shadow; do
awk -F: '($3 >= 1000) {print $1}' /etc/passwd | xargs -I{} passwd -S {} | awk '{print $1,$3}'
done
要确定哪些项目已准确更改,您必须保存输出awk …
并与下一次启动进行比较。
例子
% passwd -S | awk '{print $3}'
07/14/2015
% passwd
Changing password for aboettger.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
% passwd -S | awk '{print $3}'
10/01/2015
或者对于具体的用户帐户
% sudo passwd -S root | awk '{print $3}'
05/29/2015
或所有用户
% awk -F: '($3 >= 1000) {print $1}' /etc/passwd | xargs -I{} passwd -S {} | awk '{print $1,$3}'
passwd: You may not view or modify password information for nobody.
aboettger 10/01/2015
相关文章推荐:
- ubuntu-服务–崩溃时自动重启rc.local脚本
- ubuntu-网络–当机器通过两个接口连接到同一网络时如何分配IP?
- ubuntu-如何在UbuntuGNOME16.04上更改触摸板设置?
- ubuntu-gnome–如何编写en和em破折号?
- ubuntu-openstack–如何使用Juju配置Keystone?
- ubuntu-每当我启动到Ubuntu16.04时,桌面角落的系统监视器_ubuntu_
- ubuntu-python–如何在不要求输入密码的情况下在脚本中执行命令?
- ubuntu-网络–15.10–在家无法连接到无线网络,但在远程位置可以吗?
- ubuntu-14.04–WifiDongle被硬件开关阻止
- ubuntu-文件系统–当垃圾箱在eCryptfs中/文件在不同的驱动器上时,Nautilus无法将文件移动到垃圾箱
赞 (0)