zoukankan      html  css  js  c++  java
  • userdel删除用户失败提示:userdel: user * is currently logged in 解决方法

    操作环境

      SuSE10/SuSE11

    问题现象

      执行userdel -rf oracle删除用户失败,提示userdel: user 'oracle' is currently logged in

    问题分析

    NA

    问题解决

      1、ps -fu oracle查看是否还有进程在使用(也可以使用ps -ef |grep 'oracle'| grep -v grep),如果有进程在使用。kill掉相关进程

      2 、重新执行userdel -rf oracle,如果失败,则执行步骤3

      3、删除 /var/run/utmp文件。cd /var/run; mv utmp utmp_bak;touch utmp

      4、重新执行userdel -rf oracle。

    知识延伸

    为什么删除utmp文件就可以执行删除用户成功?查看如下函数信息

    /var/run/utmp database of currently logged-in users

    src/userdel.c
    
    if(is_logged_in(remove_user))
    {
        fprintf(stderr,_("%s:account '%s' is currently in use.
    ")),program,remove_user);
        return E_USER_BUSY;
    }
    
    lib/is_logged_in.c
    /*
       Check if the user is logged in.
       0:user is not logged in
       1:user is logged in
    */
    int is_logged_in(const char *user)
    {
        struct utmp *utp;
        setutent();
        while((utp = getutent()))
        {
            if(utp->ut_type == USER_PROCESS && strncmp(utp->ut_user,user,sizeof utp->ut_user)==0)
                return 1
        }
        return 0
    }
  • 相关阅读:
    Zend Guard 7 , Zend Guard Loader处理PHP加密
    [转]pHP源码加密方法调查
    使用USB Key(加密狗)实现身份认证
    4*4行列式矩阵键盘
    HDU-2546-饭卡
    HDU-2073-无限的路
    HDU-2065-"红色病毒"问题
    HDU-2063-过山车
    HDU-2060-Snooker
    HDU-2056-Rectangles
  • 原文地址:https://www.cnblogs.com/linyfeng/p/7224242.html
Copyright © 2011-2022 走看看