使用语法: gpasswd [option] GROUP
一般选项:
-a, --add USER #为组添加用户
-d, --delete USER #从组中一处用户
-r, --remove-password #移除组的密码
-R, --restrict #限制访问组
-M, --members USER,... #设置组的成员
-A, --administrators ADMIN,... #为组指定管理员
gpasswd在不指定任务任何参数的情况下,是给组设置一个密码,我们很多时候不明白给这个组设置密码有什么用处,我们在什么情况下使用,下个给出一个使用环境的示例:
系统中有一个gid为500的组mygroup、一个gid为501的user1组和uid为501的用户
[root@desktop1 ~]# tail -2 /etc/group mygroup:x:500: user1:x:501: [root@desktop1 ~]# tail -1 /etc/passwd user1:x:500:501::/home/user1:/bin/bash
并且我们给组mygroup设置了密码
[root@desktop1 ~]# gpasswd mygroup Changing the password for group mygroup New Password: Re-enter new password:
然后我们切换到user1用户,查看其组是user1
[user1@desktop1 ~]$ id uid=500(user1) gid=501(user1) groups=501(user1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
在这个地方创建的文件属主和属组都是user1,如果我们需要创建一个属主是user1,但是属组是mygroup的文件呢?这里我们可以使用newgrp(用处:登陆一个新的组)命令临时切换到mygroup组上面,这个用户就具有了mygroup组的权限(当然这个地方也可以使用usermod把user1加入到mygroup组里面来实现这个需求),切换组的时候就需要组的密码了(如果组没有设置密码的话会报错)
[user1@desktop1 ~]$ id uid=500(user1) gid=501(user1) groups=501(user1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [user1@desktop1 ~]$ touch test [user1@desktop1 ~]$ ll total 0 -rw-rw-r--. 1 user1 user1 0 Jan 11 03:27 test [user1@desktop1 ~]$ newgrp mygroup Password: [user1@desktop1 ~]$ ll total 0 -rw-rw-r--. 1 user1 user1 0 Jan 11 03:27 test [user1@desktop1 ~]$ touch test1 [user1@desktop1 ~]$ ll #两者属组不一样 total 0 -rw-rw-r--. 1 user1 user1 0 Jan 11 03:27 test -rw-r--r--. 1 user1 mygroup 0 Jan 11 03:28 test1
转载于:https://blog.51cto.com/wiker/1350491