Linux学习|Gentoo/Arch/FreeBSD我爱编程linux基础

Linux用户和组管理

2018-05-06  本文已影响87人  学渣角鹿白

众所周知,Linux是一个多用户、多任务(Multi-Tasks、Multi-Users)的操作系统。那么Linux是如何区分和认证用户的,系统对每个用户的授权是如何管理的,出现问题如何追溯每个用户在系统内的操作记录,等等,这些就涉及到Linux中用户和组的管理。

  1. AAA介绍
  2. Linux用户类别
  3. Linux用户标识(UID)
  4. Linux组类别
  5. Linux组标识(GID)
  6. Linux中用户和组的相关数据库文件
  7. Linux用户和组管理命令
    (1) groupadd命令
    (2) groupmod命令
    (3) groupdel命令
    (4) useradd命令
    (5) usermod命令
    (6) userdel命令
    (7) passwd命令
    (8) gpasswd命令
    (9) newgrp命令
    (10) chage命令
    (11) id命令
    (12) su命令
    (13) 其它几个用户和组管理相关命令
  8. Linux用户和组管理命令的相关示例
  9. 通过更改用户和组的配置文件,直接添加或修改用户和组

首先介绍以下AAA。

1、AAA介绍

AAA指的是Authentication、Authorization、Accounting,即认证、授权和审计。

Linux的用户和组管理可以说是基于AAA进行的,首先用户登录输入用户名密码,就是认证的过程;其次,在用户登录成功后,所拥有的权限各不相同,这就是授权;最后,用户的操作历史会记录在日志中,这是审计。
接下来介绍Linux中用户和组的类别,以及Linux是如何标识每个用户和组的:

2、Linux用户类别

Linux中,用户分为两大类、三小类:
分别为管理员(一般为root)和普通用户
普通用户中,又划分为两类,分别为系统用户登录用户

3、Linux用户标识(UID)

Linux系统使用UID(User ID)来标识不同用户。
UID是16bits的二进制数字,所以换算成十进制,UID的范围是0~65535,Linux根据用户类别,对UID划分做了规定:

Tips:Linux是根据“名称解析库”(/etc/passwd)来进行用户名和UID的解析的,后面会详细介绍Linux中用户和组的相关信息库文件。

4、Linux组类别

Linux对组有三种划分方法:

5、Linux组标识(GID)

Linux系统使用GID(Group ID)来标识不同组。
GID的划分和UID相同,这里不再赘述。

6、Linux中用户和组的相关数据库文件

Linux中,与用户和组相关的信息主要存储在/etc/passwd、/etc/shadow、/etc/group三个文件中(存储格式中各字段用:分隔):

7、Linux用户和组管理命令

  • 组管理:groupadd,groupmod,groupdel
  • 用户管理:useradd,usermod,userdel
  • 密码管理:passwd,gpasswd
  • 其它相关命令:newgrp,chage,chsh,id,su

(1) groupadd命令

(2) gourpmod命令

(3) groupdel命令

(4) useradd命令

(5) usermod命令

(6) userdel命令

(7) passwd命令

(8) gpasswd命令

(9) newgrp命令

(10) chage命令

(11) id命令

(12) su命令

(13) 其它几个用户和组管理相关命令

Linux用户和组管理命令的相关示例

通过更改用户和组的配置文件,直接添加或修改用户和组

为了更深入了解用户和组的相关配置文件,可以手动更改配置文件以达到命令的执行效果。

  1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    [root@localhost ~]# cp -r /etc/skel /home/tuser1
    \\这里我使用root用户复制,注意目标目录/home/tuser1不能事先存在,否则复制的结果为/home/tuser1/skel
    [root@localhost ~]# ls -Al /home/tuser1/
    total 16
    -rw-r--r--. 1 root root 18 May 8 17:56 .bash_logout
    -rw-r--r--. 1 root root 193 May 8 17:56 .bash_profile
    -rw-r--r--. 1 root root 231 May 8 17:56 .bashrc
    drwxr-xr-x. 4 root root 4096 May 8 17:56 .mozilla
    [root@localhost ~]# chmod -R 700 /home/tuser1
    [root@localhost ~]# ll -al /home/tuser1
    total 24
    drwx------. 3 root root 4096 May 8 17:56 .
    drwxr-xr-x. 3 root root 4096 May 8 17:56 ..
    -rwx------. 1 root root 18 May 8 17:56 .bash_logout
    -rwx------. 1 root root 193 May 8 17:56 .bash_profile
    -rwx------. 1 root root 231 May 8 17:56 .bashrc
    drwx------. 4 root root 4096 May 8 17:56 .mozilla

  2. 编辑/etc/group文件,添加组hadoop。
    [root@localhost ~]# vim + /etc/group
    ...
    hadoop:x:1500:

  3. 手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    [root@localhost ~]# vim + /etc/passwd
    ...
    hadoop:x:1500:1500::/home/hadoop:/bin/bash
    [root@localhost ~]# id hadoop
    uid=1500(hadoop) gid=1500(hadoop) groups=1500(hadoop)

  4. 复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    [root@localhost ~]# cp -R /etc/skel /home/hadoop
    [root@localhost ~]# chmod 700 /home/hadoop
    [root@localhost ~]# chmod g=,o= /home/hadoop/
    [root@localhost ~]# ll -d /home/hadoop
    drwx------. 3 root root 4096 May 14 11:20 /home/hadoop

  5. 修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    [root@localhost ~]# chown -R hadoop:hadoop /home/hadoop/
    [root@localhost ~]# ll -a /home/hadoop/
    total 24
    drwx------. 3 hadoop hadoop 4096 May 14 11:20 .
    drwxr-xr-x. 4 root root 4096 May 14 11:20 ..
    -rw-r--r--. 1 hadoop hadoop 18 May 14 11:20 .bash_logout
    -rw-r--r--. 1 hadoop hadoop 193 May 14 11:20 .bash_profile
    -rw-r--r--. 1 hadoop hadoop 231 May 14 11:20 .bashrc
    drwxr-xr-x. 4 hadoop hadoop 4096 May 14 11:20 .mozilla

上一篇 下一篇

猜你喜欢

热点阅读