一、Linux系统上用户和用户组类别

用户类别

1、管理员 uid=0

2、普通用户 id:1~65535

2.1、系统用户 id:1~499,一般不允许登陆系统

2.2、一般用户 id:500~60000

组类别

1、管理员组

2、普通组

2.1、系统组

2.2、一般组

基本组:用户的默认组

私有组:每个用户都有自己的默认组,没有指定所属组,系统默认创建一个和用户名同名的组

附加组:又称额外组,默认组之外的组

针对/etc/passwd、 /etc/shadow配置文件,在/etc/default目录下有两个文件是定义创建用户初始化的文件

有兴趣的可以研究下

[lovelace@lovelace default]$ ll
total 16
-rw-r--r-- 1 root root 1756 Jan 20  2012 nss
-rw------- 1 root root  119 Oct 25  2011 useradd

二、关于用户管理

涉及到的命令有:useradd 、userdel、usermod、passwd、chsh、shfn、finger、id、change

详情可参考下图:

Linux学习之用户管理和组管理_id

 

三、关于组管理

涉及到的命令有:groupadd、groupdel、groupmod、gpasswd

详情可参考下图:

Linux学习之用户管理和组管理_管理员_02

四、问题延伸

案例:新建一个用户lovetest,没有创建家目录,然后切换到该用户模式下,发现bash环境有问题,这时我们该怎么做?

#新建用户,不创建家目录
[root@lovelace ~]# useradd -M lovetest
#验证家目录是否存在
[root@lovelace ~]# ls /home/
kale      mark  practice    scripts  test   test2   user2  user4  user6  user8
lovelace  nick  python1.py  shell    test1  user10  user3  user5  user7  user9
#给用户lovetest创建密码
[root@lovelace ~]# passwd lovetest
Changing password for user lovetest.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
#切换到lovetest用户下,这时我们将看到如下的结果
[root@lovelace ~]# su -l lovetest
su: warning: cannot change directory to /home/lovetest: No such file or directory
-bash-3.2$ ls
ls: .: Permission denied


碰到这种情况我们该怎么办?

解决方法如下:

#把/etc/skel目录复制到/home目录下,并且命名为lovetest
[root@lovelace ~]# cp -r /etc/skel /home/lovetest
#然后给/home/lovetest设置属组属主,注意要使用递归选项
[root@lovelace ~]# chown -R lovetest.lovetest /home/lovetest/
#给/home/lovetest目录设置权限,注意要使用递归选项
[root@lovelace ~]# chmod -R go-rwx /home/lovetest/

再次切换用户看看效果:

[root@lovelace ~]# su -l lovetest
[lovetest@lovelace ~]$ ls
[lovetest@lovelace ~]$ pwd
/home/lovetest

 

五、后记

关于用户管理和组管理的知识点很多,需要我们用心去学习,特别是关于用户时间限制这一块特别重要,希望朋友们要认真学习下。。。。

如有错误和不足之处,敬请指正,QQ:993182876

by lovelace

2013-5-15 魔都