在不影响现有文件的前提下,修改用户uid

biyoutzx 2013-06-21 05:27:25

背景:
公司有两台红帽的服务器简称A,B
这两个服务器都只设定了一个访问用户cmcdev

下面是服务器的/etc/passwd中的相应内容
服务器A
cmcdev:x:503:503::/home/cmcdev:/bin/bash

服务器B
cmcdev:x:603:603::/home/cmcdev:/bin/bash

平时大家登陆的时候都是用Tera Term远程登陆再进行所需操作,倒也相安无事

问题:
服务器B现在mount了服务器A中的一个文件夹
由于服务器A中cmcdev的uid是503,绑定的文件夹权限变成了如下所示
drwxr-xr-x 4    503    503 4096  5月 10  2012 product

这样就无法对product中的内容进行写入修改等操作了,很是让人纠结

要求:
1 不改变product的权限
2 不影响服务器B中cmcdev用户已创建过的文件(不能修改了以后原来cmcdev用户创造的文件显示603这种乌龙)
3 将服务器B中cmcdev的uid和gid都改为503


我的尝试:
---尝试1---
直接修改服务器B的passwd,group

vim /etc/passwd
手动修改603为503
vim /etc/group
手动修改cmcdev:x:603:为cmcdev:x:503:

---尝试1结果---
当从root切换回cmcdev时如下报错
bash: /home/cmcdev/.bashrc:无许可
bash-3.2$


---尝试2---
修改服务器B的passwd,group
并分别执行pwconv和grpconv以同步
---尝试2结果---
结果同1

---尝试3---
在服务器B中执行如下操作
usermod -u 503 cmcdev
vim /etc/group
手动修改cmcdev:x:603:为cmcdev:x:503:

---尝试3结果---
修改完毕后在不退出终端的情况下切换用户正常实现
但本人是使用VirtualBox在本地做的测试
重启虚拟器后无法用cmcdev登入服务器
领导说我们就这一个登陆账号,你虚拟器是这样万一修改完大家都上不去服务器了咋整
还不允许再造新用户,于是只好再想别的办法

---尝试4---
我提议是否可以用命令修改product文件夹的权限
chown -fR cmcdev.cmcdev /var/www/data/product

领导否决

---尝试5---
我提议先删除用户cmcdev,再创建一遍
创建的同时手动指定uid为503
领导否决


各路大侠,我是实在想不到其他法子了
求大家指点!拜谢
...全文
238 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
biyoutzx 2013-06-28
感谢回复,问题已经解决。 其实我的方法有些本来是可以用的 我们的服务器没有使用图形化界面 我的VirtualBox使用了 所以产生报错 以后可能会有人查询到这个帖子,做个标签 如果使用了GUI,要修改GID,之后不要忘记删除以下两个文件
~/.gconf/
~/.gconfd/
如果没有使用GUI,用如下方法就可以解决 usermod -u 503 cmcdev groupmod -g 503 cmcdev usermod -g 503 cmcdev find / -path "home/cmcdev" -prune -o -uid 603 | xargs chown 503 find / -path "home/cmcdev" -prune -o -gid 603 | xargs chgrp 503 再次感谢大家回复
回复
tonyritz 2013-06-27
「但本人是使用VirtualBox在本地做的测试 重启虚拟器后无法用cmcdev登入服务器」 引用一楼 可能是因为安装virtualbox虚拟器的时候用GUI安装的,有时候会出现GUI的错误,不用GUI安装再试试
回复
biyoutzx 2013-06-25
引用 4 楼 gaoao1981 的回复:
期待大神解答,学习种啊。
召唤大牛
回复
bayougeng 2013-06-25
比如啊,用root运行: find / -uid 500 -printf "%i\n" 这样就找到所有的inode了,然后再怎么改,加在-exec里就行了
回复
bayougeng 2013-06-25
想办法遍历所有磁盘上的inode,把所有owner是cmcxxx的inode的拥有者及组都改成503 其实要找到这样的文件的inode倒是不难,find就可以了,然后结合一个比较底层的命令……我觉得是可行的 但是你最好自己做个RH的系统,玩一下试试
回复
空的 2013-06-25
这不行,那不行,让你们领导自己搞去~~ 可以拷出来,然后爱怎么改怎么改
回复
biyoutzx 2013-06-24
引用 3 楼 rucypli 的回复:
应该修改A或者B的uid和guid 使他们变成一样的
是这样的。。。 我是想知道怎么改才能不影响现存文件 不过还是谢谢你的回答
回复
rucypli 2013-06-23
应该修改A或者B的uid和guid 使他们变成一样的
回复
biyoutzx 2013-06-23
求大神帮忙
回复
gaoao1981 2013-06-23
期待大神解答,学习种啊。
回复
biyoutzx 2013-06-22
没有大神现身吗?自己顶一下
回复
相关推荐
发帖
系统维护与使用区
创建于2007-08-27

1.9w+

社区成员

系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
申请成为版主
帖子事件
创建了帖子
2013-06-21 05:27
社区公告
暂无公告