Linux——基础三、用户和组


一、linux用户

1、什么是用户?

用户是用来运行某一些进程、拥有某一些文件或目录。

在Linux里面,用户分成三大类:root用户、系统用户、普通用户。

用户是用UID来唯一标识身份的,且root用户UID为0,系统用户UID范围为1-999,普通用户UID从1000开始默认依次往后累加。

2、什么是系统用户?

一般运行的进程属于系统内核进程,那么运行这些进程的用户都是系统用户,通常不会到系统前台,也就是命令解释器shell里面去登录。

3、本地用户的信息

/etc/passwd -> 存放本地用户的信息

格式 -> 用户名:密码:UID:GID:注释:宿主目录:命令环境

  • 密码:用X代替保存在影子文件中
  • GID:新建用户后系统默认一个同名组
  • 注释:可空
  • 宿主目录:/root或者/home/dir
  • 命令环境:/bin/bash或者/sbin/nologin

/bin/bash -> 用户可以使用shell登陆系统

/sbin/nologin -> 用户不能登陆系统,但可以运行某个程序,如果哪个用户属于不安全用户,就可以将该用户设置为nologin

锁定账户:Vim /etc/passwd -> luna : /sbin/nologin

解锁账户:Vim /etc/passwd -> luna : /bin/bash

4、管理本地用户(命令)

useradd命令——创建用户,通常新建完一个用户后紧接着给他分配一个密码

usermod命令——修改用户属性

-g  ->  为用户指定主要组

-G ->  为用户指定从属组

-c  ->  为用户添加一个注释字段

-u  ->  为用户指定一个UID

-L  ->  锁定用户,使用户密码不可用,例如连续输错密码

-U ->  解锁用户,使用户密码恢复可用

userdel命令——删除用户

userdel  用户名 -> 非彻底删除,宿主目录被保留

userdel  -r  用户名  ->  彻底删除,宿主目录被删除

附:
root用户 -> 系统超级用户 -> 具有系统全部权限的用户 -> 要执行诸如安装或删除软件以及管理系统文件和目录等任务,必须将特权升级到root用户。

sudo 命令 -> 以root身份运行命令 -> root用户拥有可破坏系统的无限制权限,如果root用户一旦泄露,则其他人就有可能拥有系统的管理控制权限。-> 因此,在实际应用中,建议管理员以正常用户身份登陆系统,仅在需要时,使用sudo命令升级到root用户特权。

id命令 -> 查看当前已登录用户的信息,也可以查看其他用户的基本信息。

ls -l -> 查看某一文件或目录的用户所有权。或查看三类用户对某个文件的访问权限

ps -au -> 查看当前终端下运行的所有进程并显示与之相关联的用户。

二、Linux组

1、主要组的概念:

当系统创建一个用户的时候,会单独给这个用户分配一个组。

在/etc/passwd文件中的第四个字段GID定义。

  • 特点:默认情况下,组名与用户名同名,GID与UID同号,该组里面只有该成员本身一人

  • 特点:每个用户有且仅有一个主要组,是1:1的数量关系。

2、从属组(附加组)的概念:

某个用户被人为添加到某个额外的组,获取了这个组的权限,那么这个组就叫做从属组,或者附加组,它是非主要组。

在/etc/group文件中的最后一个字段定义。

  • 特点:每个用户的从属组可以有多个,是1:n的数量关系。

  • 特点:反过来,一个组可以有多个用户成员,即可以是多个用户的从属组。

3、本地组信息

/etc/group -> 存放本地组信息

格式 -> 组名称:组密码:GID:从属组用户

  • 组密码:用X代替,密码存放在/etc/gshadow文件中
  • 从属组用户:即有哪些用户从属于这个组

4、管理本地组(命令)

groupadd命令——创建组

-g  ->  给新建的组分配一个GID

groupmod命令——修改现有的组 -modify

-g  ->  指定新的GID(主组)

-G  ->  指定附加组

-n  ->  指定新的groupname

groupdel命令——删除组 (不能删除属于其他用户的主组)

三、管理用户的密码

1、存放目录

/etc/shadow -> 存放本地用户的密码

格式 -> 用户名:密码:最后更改密码日期:密码最短使用期限:密码最多使用期限:密码到期警告期:密码到期后还可使用时间:密码到期日:预留空白字段

  • 密码: * -> 代表没有密码,是空的,!-> 代表该用户被禁用
  • 密码最短使用期限:0 -> 表示无限期使用

2、设置账户到期时间

chage -用户名 命令——设置账户到期时间

-d  ->  设置最后一次修改用户密码的时间,以距离1970年1月1日开始算起

-E  ->  设置账户到期日期

-I   ->  设置账户到期后能继续登陆系统的时间

-m ->  设置账户可以修改密码的最少天数

-M ->  设置账户必须更改密码前的最多天数

-W ->  设置密码即将到期的警告天数

查看文件权限及所属用户和组:

命令:ls -l 或 ll

[root@localhost /]# ls -l
total 28
lrwxrwxrwx.   1 root root    7 Sep 21 12:53 bin -> usr/bin
dr-xr-xr-x.   3 root root 4096 Sep 21 12:58 boot
drwxr-xr-x.  20 root root 3260 Nov 16 19:51 dev
drwxr-xr-x. 141 root root 8192 Nov 16 19:53 etc
drwxr-xr-x.   6 root root   62 Oct 31 11:09 home
lrwxrwxrwx.   1 root root    7 Sep 21 12:53 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Sep 21 12:53 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 Mar 10  2016 media
drwxr-xr-x.   2 root root    6 Nov 16 20:07 mnt
drwxr-xr-x.   7 root root   69 Nov 16 20:08 opt
dr-xr-xr-x. 267 root root    0 Nov 16 19:51 proc
dr-xr-x---.  16 root root 4096 Nov 16 19:52 root
drwxr-xr-x.  39 root root 1240 Nov 16 19:52 run
lrwxrwxrwx.   1 root root    8 Sep 21 12:53 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Mar 10  2016 srv
dr-xr-xr-x.  13 root root    0 Nov 16 19:51 sys
drwxrwxrwt.  14 root root 4096 Nov 16 20:17 tmp
drwxr-xr-x.  13 root root  155 Sep 21 12:53 usr
drwxr-xr-x.  21 root root 4096 Nov 16 19:51 var
[root@localhost /]#

第一列第1位:

  • l->link 代表:链接文件
  • d->directory 代表:文件夹
  • 横杠- 代表:普通文件

第一列后9位:

  • 第一组代表所属用户对文件的访问权限
  • 第二组代表所属组对文件的访问权限
  • 第三组代表其他用户对文件的访问权限(除了所属用户和组以外的其他用户)

第三列root 代表:文件所属用户是root

第四列root 代表:文件所属组是root组

权限包括以下三种:

  • r -> read -> 可读
  • w -> write -> 可写
  • x -> execute -> 可执行