日期:2014-05-16  浏览次数:20768 次

linux 添加用户和用户组
通过修改用户(User)和用户组(Group)配置文件的办法来添加用户(User)和用户组(Group);

由于我们已经在前面说过,可以通过修改配置文件的办法来管理用户,所以此主题应该包括此内容;当然通过用户及用户组管理工具(比如 adduser、userdel、usermod 、userinfo、groupadd 、groupdel 、groupmod等)也是可以的,通过管理工具对用户的管理我们将要在专门一篇文章中介绍;


通过修改用户(User)和用户组(Group)配置文件的方法管理用户之用户的添加流程;

我们先以添加用户为例,对用户的删除和修改都比较简单;


1)修改 /etc/passwd ,添加用户记录;

我们按/etc/passwd的格式的约定来添加新的用户记录;当然您要让一个用户失效,可以删除您想要删除的用户记录;值得注意的是,不能让UID 重复;

比如我想添加lanhaitun 这个用户,我发现UID 508没有用户用,并且我想把其用户组也设置为lanhaitun ,用户组的GID 也设置为508,如果GID 没有占用的话;

我们要打开 /etc/passwd ,在最下面加一行;
lanhaitun:x:508:508::/home/lanhaitun:/bin/bash
然后执行pwconv ,让/etc/passwd 和/etc/shadow同步,您可以查看 /etc/shadow的内容是否同步;
[root@localhost beinan]# pwconv

2)修改/etc/group

首先,我们得查看是否有lanhaitun用户组,以及GID 508 是否被其它用户组占用;
[root@localhost ~]# more   /etc/group  |grep lanhaitun
[root@localhost ~]# more   /etc/group  |grep 508
通过查看,我们发现没有被占用;所以我们要添加lanhaitun 的记录到 /etc/group
lanhaitun:x:508:
其次,是运行 grpconv 来同步/etc/group 和/etc/gshadow内容,您可以通过查看/etc/gshadow的内容变化确认是不是添加组成功了;
[root@localhost beinan]# grpconv

3)创建用户的家目录,并把用户启动文件也复制过去;

创建用户的家目录,我们要以/etc/passwd 中添加的新用户的记录为准,我们在/etc/passwd 中添加新用户lanhaitun ,她的家目录是处于/home/lanhaitun ;另外我们还需要把/etc/skel 目录下的.*隐藏文件复制过去;

[root@localhost ~]# cp -R /etc/skel/ /home/lanhaitun
[root@localhost ~]# ls -la /home/lanhaitun/
总用量 48
drwxr-xr-x   3 root root 4096 10月 18 14:53 .
drwxr-xr-x  10 root root 4096 10月 18 14:53 ..
-rw-r--r--   1 root root   24 10月 18 14:53 .bash_logout
-rw-r--r--   1 root root  191 10月 18 14:53 .bash_profile
-rw-r--r--   1 root root  124 10月 18 14:53 .bashrc
-rw-r--r--   1 root root 5619 10月 18 14:53 .canna
-rw-r--r--   1 root root  438 10月 18 14:53 .emacs
-rw-r--r--   1 root root  120 10月 18 14:53 .gtkrc
drwxr-xr-x   3 root root 4096 10月 18 14:53 .kde
-rw-r--r--   1 root root  658 10月 18 14:53 .zshrc

4)改变新增用户家目录的属主和权限;

我们发现新增用户的家目录的属主目前是root ,并且家目录下的隐藏文件也是root权限;

[root@localhost ~]# ls -ld /home/lanhaitun/
drwxr-xr-x  3 root root 4096 10月 18 14:53 /home/lanhaitun/
所以我们要通过chown 命令来改变/home/lanhaitun目录归属为lanhaitun用户;

[root@localhost ~]# chown -R lanhaitun:lanhaitun /home/lanhaitun
查看是否已经更换了属主为lanhaitun用户所有;
[root@localhost ~]# ls -ld /home/lanhaitun/
drwxr-xr-x  3 lanhaitun lanhaitun 4096 10月 18 14:53 /home/lanhaitun/
[root@localhost ~]# ls -la /home/lanhaitun/
总用量 48
drwxr-xr-x   3 lanhaitun lanhaitun 4096 10月 18 14:53 .
drwxr-xr-x  10 root      root      4096 10月 18 14:53 ..
-rw-r--r--   1 lanhaitun lanhaitun   24 10月 18 14:53 .bash_logout
-rw-r--r--   1 lanhaitun lanhaitun  191 10月 18 14:53 .bash_profile
-rw-r--r--   1 lanhaitun lanhaitun  124 10月 18 14:53 .bashrc
-rw-r--r--   1 lanhaitun lanhaitun 5619 10月 18 14:53 .canna
-rw-r--r--   1 lanhaitun lanhaitun  438 10月 18 14:53 .emacs
-rw-r--r--   1 lanhaitun lanhaitun  120 10月 18 14:53 .gtkrc
drwxr-xr-x   3 lanhaitun lanhaitun 4096 10月 18 14:53 .kde
-rw-r--r--   1 lanhaitun lanhaitun  658 10月 18 14:53 .zshrc
看来已经实现了;

但这样还是不够的,因为/home/lanhaitun/的目录权限可能会过于公开;
drwxr-xr-x  3 lanhaitun lanhaitun 4096 10月 18 14:53 /home/lanhaitun/
我们看到 /home/lanhaitun/ 目录的权限为 drwxr-xr-x ,也就是同组用户和其它用户组所能查看,为了保密,我们有理由把新增用户家目录的权限设置为只有其自己可读可写可执行;于是... ...
[root@localhost ~]# chmod 700 /home/lanhaitun/
[root@localhost ~]# ls -ld /home/lanhaitun/
drwx------  3 lanhaitun lanhaitun 4096 10月 18 1