更改Linux帐号的默认组

root@Lucha:~# useradd test -s /bin/bash -m -d /home/test#先创建一个名字为test的帐号,由于没有加-g 所以默认的组为test

root@Lucha:~# passwd testEnter new UNIX password:Retype new UNIX password:#更改一下密码

passwd: password updated successfully#更改成功!

root@Lucha:~# id testuid=1002(test) gid=1002(test) groups=1002(test)##查看一下帐号的所属组

可以看出,在Ubuntu9.10中创建一个帐号如果没有指定-g的话默认的组为该用户名。 root@Lucha:~# su – testtest@Lucha:~$ touch TTtest@Lucha:~$ ls -dhl TT-rw-r–r– 1 test test 0 2010-03-17 12:56 TT

用test帐号创建一个文件所属组是test,如果想更改默认组,可以用newgrp,不过要先把用户加入想更改的组中。

root@Lucha:~# usermod -G users test #把test账户加到users组root@Lucha:~# id testuid=1002(test) gid=1002(test) groups=1002(test),100(users)##可以看出虽然已经加入users组,但是默认组还是test

测试一下root@Lucha:~# su – testtest@Lucha:~$ touch T2test@Lucha:~$ ls -dhl T2-rw-r–r– 1 test test 0 2010-03-17 13:03 T2test@Lucha:~$

现在让我们改一下test的默认组,用newgrp命令。Test用户自己可以运行这个命令。

test@Lucha:~$ groups #查看自己所在组test userstest@Lucha:~$ newgrp users #切换为user测试一下:s组test@Lucha:~$ touch T3test@Lucha:~$ ls -dhl T3-rw-r–r– 1 test users 0 2010-03-17 13:07 T3

可以看出,现在test创建的文件所属组变成了users。但是有个问题,就是用newgrp更改默认组后注销后再登录又会恢复原样,如果想永久修改的话要修改passwd文件,需要root权限。先查看一下/etc/passwd文件:

root@Lucha:~# cat /etc/passwd | grep ‘^test’test:x:1002:1002::/home/test:/bin/bash

第一个1002是test的UID,,而第二个1002是test的GID,也就是默认组的GID。Test组的GID是1002。再看看 /etc/group:

root@Lucha:~# cat /etc/group | egrep ‘(^users|^test)’users:x:100:testtest:x:1002:

可以看到user组里有test用户,但是test组里却没有test用户,那是因为test组是test的默认组(在passwd里已经定义了,当然要是硬要加上去也是可以的)。要想永久更改默认组只需要修改 /etc/passwd和 /etc/group文件,在passwd把test的GID改成100。

更改后的文件: root@Lucha:~# cat /etc/passwd | grep ‘^test’test:x:1002:100::/home/test:/bin/bash

root@Lucha:~# cat /etc/group | egrep ‘(^users|^test)’users:x:100: #把原来的test删除了,因为已经是默认组了,不需要了test:x:1002:test #如果不更改留空的话用户test就不属于test组了,只属于users组

测试一下:

root@Lucha:~# su – testtest@Lucha:~$ touch NEWtest@Lucha:~$ ls -dhl NEW-rw-r–r– 1 test users 0 2010-03-17 13:36 NEW

即使重启也有效

积极的人在每一次忧患中都看到一个机会,

更改Linux帐号的默认组

相关文章:

你感兴趣的文章:

标签云: