Inotify不适用于etc/passwd

Inotify is not working for etc/passwd

本文关键字:passwd etc 适用于 不适用 Inotify      更新时间:2023-10-16

我正在尝试为/etc/etc目录中的passwd文件设置listner,并且只收到第一次更改密码的通知。

fd = inotify_init();
wd = inotify_add_watch (fd, "/etc/passwd", IN_MODIFY);
while(1)
{
 read (fd, buff, BUFF_SIZE);
 struct inotify_event *event = ( struct inotify_event * ) &buff[ i ];
 printf("Event Len -  %d  wd %d n", event->len, event->wd);
}

为什么它第一次有效而不是以后?每次更改密码时,我都会看到时间戳发生变化。同一组代码对其他文件运行良好。

当更改/etc/passwd时,大多数应用程序都会创建一个新文件并重命名它。这会给出一个新的inode编号。