分类: 系统运维
2011-08-07 11:58:28
在一次给京港地铁做hp双机的时候遇到这样一个问题
状况描述:
之前已有双机(A.11.16版本),由于A机系统崩溃,重装A机系统,并安装11.18双机软件,在B机上亦安装11.18双机软件,只能重做双机。
问题描述:
共享vg的数据库文件系统的权限和属主不一致,在A机上显示为ora,在B机上显示为118,数据库系统无法正常启动。
问题诊断:
最后才发现原来是在A机和B机上创建ora用户时,没有指定id号,A机ora用户id为120,B机ora用户id为118。A机上的id为120的ora用户无法在B机的passwd文件中找到。
解决方法:
手动修改B机ora用户id为120,测试后数据库可正常启动。
实验:
这里已经创建好了一个名为baidu 的用户和它的目录,并在它的目录下穿件了文件a和目录b。
# userdel baidu
# ll /home/baidu
total 64
-r--r--r-- 1 113 users 831 Jul 15 00:29 .cshrc
-r--r--r-- 1 113 users 347 Jul 15 00:29 .exrc
-r--r--r-- 1 113 users 333 Jul 15 00:29 .login
-r--r--r-- 1 113 users 438 Jul 15 00:29 .profile
-rw-r--r-- 1 113 users 0 Jul 15 00:36 a
drwxr-xr-x 2 113 users 96 Jul 15 00:37 b
# useradd -m baidu
# ls /home
baidu iwww junk lost+found nice owww will yunhw yuwm zhangff
# ll /home/baidu
total 64
-r--r--r-- 1 baidu users 831 Jul 15 00:42 .cshrc
-r--r--r-- 1 baidu users 347 Jul 15 00:42 .exrc
-r--r--r-- 1 baidu users 333 Jul 15 00:42 .login
-r--r--r-- 1 baidu users 438 Jul 15 00:42 .profile
-rw-r--r-- 1 baidu users 0 Jul 15 00:36 a
drwxr-xr-x 2 baidu users 96 Jul 15 00:37 b
# id baidu
uid=113(baidu) gid=20(users)
# userdel baidu
# ll /home/baidu
total 64
-r--r--r-- 1 113 users 831 Jul 15 00:42 .cshrc
-r--r--r-- 1 113 users 347 Jul 15 00:42 .exrc
-r--r--r-- 1 113 users 333 Jul 15 00:42 .login
-r--r--r-- 1 113 users 438 Jul 15 00:42 .profile
-rw-r--r-- 1 113 users 0 Jul 15 00:36 a
drwxr-xr-x 2 113 users 96 Jul 15 00:37 b
# useradd baidu
# ll /home/baidu
total 64
-r--r--r-- 1 baidu users 831 Jul 15 00:42 .cshrc
-r--r--r-- 1 baidu users 347 Jul 15 00:42 .exrc
-r--r--r-- 1 baidu users 333 Jul 15 00:42 .login
-r--r--r-- 1 baidu users 438 Jul 15 00:42 .profile
-rw-r--r-- 1 baidu users 0 Jul 15 00:36 a
drwxr-xr-x 2 baidu users 96 Jul 15 00:37 b
# id baidu
uid=113(baidu) gid=20(users)
# userdel baidu
# ll /home/baidu
total 64
-r--r--r-- 1 113 users 831 Jul 15 00:42 .cshrc
-r--r--r-- 1 113 users 347 Jul 15 00:42 .exrc
-r--r--r-- 1 113 users 333 Jul 15 00:42 .login
-r--r--r-- 1 113 users 438 Jul 15 00:42 .profile
-rw-r--r-- 1 113 users 0 Jul 15 00:36 a
drwxr-xr-x 2 113 users 96 Jul 15 00:37 b
# useradd sort
# ll /home/baidu
total 64
-r--r--r-- 1 sort users 831 Jul 15 00:42 .cshrc
-r--r--r-- 1 sort users 347 Jul 15 00:42 .exrc
-r--r--r-- 1 sort users 333 Jul 15 00:42 .login
-r--r--r-- 1 sort users 438 Jul 15 00:42 .profile
-rw-r--r-- 1 sort users 0 Jul 15 00:36 a
drwxr-xr-x 2 sort users 96 Jul 15 00:37 b
# ls /home
baidu iwww junk lost+found nice owww will yunhw yuwm zhangff
# userdel sort
# useradd -m sort
# ls /home
baidu iwww junk lost+found nice owww sort will yunhw yuwm
zhangff
# ll /home/baidu
total 64
-r--r--r-- 1 sort users 831 Jul 15 00:42 .cshrc
-r--r--r-- 1 sort users 347 Jul 15 00:42 .exrc
-r--r--r-- 1 sort users 333 Jul 15 00:42 .login
-r--r--r-- 1 sort users 438 Jul 15 00:42 .profile
-rw-r--r-- 1 sort users 0 Jul 15 00:36 a
drwxr-xr-x 2 sort users 96 Jul 15 00:37 b
# id sort
uid=113(sort) gid=20(users)
# ll /home
total 64
drwxr-xr-x 3 sort users 96 Jul 15 00:37 baidu
drwxr-xr-x 2 iwww other 96 Jul 5 13:18 iwww
drwxrwxrwx 3 root sys 96 Jul 13 15:04 junk
drwxr-xr-x 2 root root 96 Jul 5 11:16 lost+found
drwxr-xr-x 2 nice users 8192 Jul 15 00:26 nice
drwxr-xr-x 2 owww other 96 Jul 5 13:18 owww
drwxr-xr-x 2 sort users 96 Jul 15 00:58 sort
drwxr-xr-x 2 will1234 users 96 Jul 14 23:47 will
drwxr-xr-x 3 yunhw test 8192 Jul 14 17:23 yunhw
drwxr-xr-x 2 yuwm users 8192 Jul 13 13:48 yuwm
drwxr-xr-x 2 zhangff users 8192 Jul 15 00:09 zhangff
分析:
删除用户后,用户的uid已经被释放,可以分配给新建用户,但由于我们删除用户时并没有删除该用户的目录和文件,这些目录和文件
的拥有者会被赋为它的uid。继续创建一个新用户,之前所删除的用户的uid会被赋给新建用户,而本来属于之前用户的文件和文件夹的拥有
者就变成了新建用户,无论该新建用户是否创建目录(在hp-ux中需要加入-m来创建目录,在AIX中默认创建目录)。
结论:
若系统无法在passwd文件中查找到某个文件的属主名,即该用户已被删除,则显示该文件曾经的属主的id
删除用户时必须删除该用户所拥有的目录和文件,否则将给新建用户造成混乱。
附:在AIX中同样存在该问题,尚未在solaris中进行验证。