这篇文章只是针对每个命令的一些小细节进行整理。针对每个命令更详细解释,可以查看文章《用户和组 之 增删改》http://www.jianshu.com/p/906b16a18a15 有关于各个命令选项的详细说明
1 usermod
添加附加组
usermod -G 给用户添加附加组,但是如果要添加多个附加组是,要用-aG表示追加,否则-G会把之前的附加组覆盖
更改用户的所属组
usermod -g sunny jack 直接修改jack的所属主组为quota,默认情况下,所有者和所属组一致,而且没有调整过,那么在/etc/group文件中,jack这个组最后一个字段是看不到所属组信息
2 newgrp
如果一个用户要临时登录到自己组,用newgrp 命令
newgrp quota //将jack用户临时组改为quota,此时jack创建的文件或目录所有者为jack,所属组为quota
3 组管理
gpasswd -d jack quota 把jack从组quota移除,语法:gpasswd -d 用户名 组名
gpasswd jack 给jack这个组分配密码,当其他不是jack组要通过newgrp把组临时切换成jack时要输入这个密码,建议设置一个,当不是这个组的用户要临时切换组的时候,可以通过输入密码切换到这个组。如果账号的附属组已经有 jack了,那么临时切换时,不需要输入组的密码
4 查看一个用户在哪几个组
id 直接查看当前环境下的登录的该用户的信息,如果通过newgrp换过组,则不会改变
id jack 查看指定用户的信息,如果有用newgrp临时换过组,就可以用这个命令查看,注意,后面group 第一个组才是用户的所属组
5 查看一个组下面有多少个用户,用语句实现
cat /etc/group | grep ^tom
6 chown
针对文件或者目录调整所有者或所属组
chown sunny:quota aa 把文件aa的拥有者改为sunny,所属组改为quota
7 chgrp
针对文件或者目录调整所有者或所属组
chgrp quota2 aa 把文件aa的所属组改为quota2
8 chmod
chmod 针对文件或者目录调整权限
chmod 755 aa //表示把aa的权限更改为755
chmod 755 aadir //表示把aadir这个目录的权限更改为755,但是这个 目录下的文件权限不会改变
chmod -R 765 aadir //表示把aadir这个目录的权限更改为765,同时,这个 目录下的所有文件权限会更改为765,但是新建的文件权限还是默认的权限。
要使得同一文件夹下,所有创建的新的文件或者目录都是同一组,保证同一组的用户登录该文件夹下都可以以组的身份访问该文件夹下的资源,使用guid的权限,
chmod g+s /home/sunny/tt
所有的用户进入到这个文件夹,如果用户所属组是用户的附属目录,那么用户具有文件夹的所有组的权限,这些账号对应创建的文件的所属组都将是tt这个目录的所属组
9 删除用户
userdel[OPTION]... login
-r: 删除使用者账号及相关文档,如用户的家目录及邮箱的目录,反正,如果没有-r,则只删除账号,相关文档没删掉
例子
userdel -r terry6
表示删掉terry6,并且把terry6家目录及邮箱的目录都删掉
10 删除组
groupdel
groupdel GROUP,这里,要删的组如果还是别的用户的主组,那么就不能删掉当前这个组
例子
groupdel terry3
11 useradd
useradd 这里有两个选项 -m 和 -g做一下说明
默认情况下,/etc/login.defs是设置为yes,此时,创建账号是有没有加-m选项结果是一样的
-g 是在创建用户的时候指定新建用户登录的家目录,
当所指定的目录不存在,那么新建用户时就会直接新建目录,并把etc/default/useradd下定义的SKEL=/etc/skel目录下的所有文件,包括隐藏文件全部拷贝过去,当做用户的家目录
当指定的目录存在时,就不拷贝任何文件作为用户的登录文件,但是会新建用户的家目录,这个时候其实创建家目录不需要指定-m,效果一样
但是 /etc/login.defs是设置为no
当所指定的目录不存在
没有加-m选项,不会创建新的家目录文件出来,用户登录时,不会跳到指定的家目录下,只会在切换账号时的目录
但是加-m选项,会创建新的家目录文件出来,并且把/etc/default/useradd下定义的SKEL=/etc/skel目录下的所有文件拷贝到这个家目录来
当所指定的目录存在,有没有加-m一样,都是不会拷贝登录文件
没有加 -m 选项,此时家目录会被指定为已经存在的家目录,但是,/etc/default/useradd下定义的SKEL=/etc/skel目录下的所有文件不会拷贝到新建用户指定的家目录下,因为不会自己创建家目录
加 -m 选项,此时家目录会被指定为已经存在的家目录,但是不会把/etc/default/useradd下定义的SKEL=/etc/skel目录下的所有文件不会拷贝到新建用户指定的家目录下