环境:
OS:SUSE Linux Enterprise Server 11 (x86_64)
修改用户的uid(假设修改用户test,uid由1100改为1200)
1、查看当前用户情况(获得用户的旧uid及旧gid等)
su - root
id test
2、查看当前用户执行的进程
su - root
ps -ef | grep -i test
kill -9 pid
3、查看当前用户打开的文件
su - root
lsof | grep test
kill -9 pid
注:lsof(list open files)
4、修改用户test的uid
usermod -u 1200 test
注:如果修改组id,则用groupmod -g 1200 test
5、修改用户test的原来拥有文件的uid
find / -user 1100 --先查看一下结果是否正确
find / -user 1100 -exec chown -h test {} \
问题处理:
如果执行第4步时报错:user xxx is currently logged in
执行如下:
su - root
cat /dev/null > /var/run/utmp --清空此文件
重启服务器
su - root
ps -ef | grep -i test
lsof | grep -i test
kill -9 pid
usermod -u 1200 test
find / -user 1100 -exec chown -h test {} \
注意事项:
1、修改用户的uid前,先把用户相关的服务关闭(有自启的任务停止)
2、修改完后,记得修改用户相关的应用文件的uid
3、/var/run/utmp是一个文件,记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间。




