13_Linux基础知识及命令――――初识用户、权限和进程

一、为什么要引入用户机制


在介绍“用户”之前,需要先对Linux的文件系统有所了解。文件系统是对文件进行组织和管理的模式,是一种数据的抽象。它能够将数据表现为一个个单独的个体,让用户逐一访问

如果在同一台计算机上,Tom 创建了文件 a.txt,那么 Jerry 也可以访问该文件。但是出于安全性考虑,Tom的文件并不希望被Jerry访问到。于是就需要引入一种机制――用以识别文件的编号,这就是用户


二、理解用户

用户包括:

用户名:供人使用,可以是任意字符

用户ID:供计算机使用,是唯一的识别标志。

通常操作系统会建立一个用户信息库,用以成对的存放用户名和用户ID,例如:

{roo,0}  //root 即为用户名,0即是root 用户的ID

{centos,500}// centos 即为用户名,500即是centos 用户的ID

当用户登陆时,计算机就会在信息库中查找用户名所对应的用户ID,然后将资源按需分配给登陆的用户。

Linux是多用户多任务的系统,不同的用户可以创建不同的文件。在Linux中,用户可以分为以下两类:

1. 管理员用户:通常为 root 用户,ID 0

2. 普通用户,可以分为两类:

a)人为登陆的用户

b)只允许运行某些程序,但从来不允许登陆的用户,其目的在于实现某些管理功能,此类用户称为系统用户

所有的0用户都是普通用户,其中系统用户ID号为 1-499500 以上的所有ID号都是可登陆用户


三、系统调用

系统调用也称为模式转换,它有两种模式:

当内核在cpu上运行,就叫做系统运行在内核模式下;

当用户的程序在cpu上运行,就叫做系统运行在用户模式下。

例如当我们执行以下命令:

# mkdir /tmp/a.txt

该命令虽然是用户发出的,但需要操作硬盘,即向硬盘写入数据,因此会发生系统调用,于是会从用户模式进入到内核模式。



四、什么是权限

权限管理在Linux系统中起占据着相当重要的地位,它主要是指修改文件的属主、属组以及文件的使用权限等操作。

站在用户的角度,Linux中权限主要分为以下三类:

读取read,用r表示

写入write,用w表示

执行execute,是能被内核所识别的标识,用x表示。


站在文件类别的角度,Linxu中权限可以分为以下两类:

a)文件权限:默认情况下,文件(非目录)默认都没有执行权限

b)目录权限:

只读目录只读(r权限指的是可以对目录执行 ls 命令以查看,但不能使用 -l  选项以查看文件的相关属性,也不能使用cd 命令切换到目录中;

写入目录写(w权限是指可以在目录中创建新文件,注意,对目录的写权限不包含删除命令,但是删除命令可以作用到目录本身,而不是其中的文件,因为这些文件可能属于其他用户。

执行目录执行(x权限是指可以对目录执行ls -l 命令,并且能够使用cd命令切换到目录中,因此通常情况下目录都有x权限,但是文件没有。

wKioL1NNNkPyeaupAAEd_qIkkIM928.jpg


四、文件的属主(owner)和属组(group

文件的属主(owner)即为文件的拥有者;

文件的属组(group)即为文件所属的组。

这里我们需要理解组的概念。组可以看成一个容器,它一次性完成了权限设置,用来映射用户群和访问权限,也被称为角色(role),进入组的用户自动继承了组的权限

例如,如果文件a.txt所属的组为mygroup,而mygroupa.txt具有全部的访问权限,那么若用户jerry属于mygroup组,则Jerry自动获得了该文件a.txt的访问权限。


五、跟用户和组相关的文件

只要能够存放信息,都可以用来保存用户和密码,我们称之为信息库,通常可以充当信息库的可以是文本文件,如Linux系统中/etc 目录下的相关文件;可以是LDAP(轻量级信息访问协议);可以是数据库,如mysqlnosql等。


Linux中和用户相关的信息主要存放在以下两个文件中:

/etc/passwd: 存放用户的属性信息,可以被任何用户访问;

/etc/shadow: 影子口令,用来保存密码相关的信息,只能被管理员访问。

我们可以用ls -l 命令来查看这两个文件的使用权限:

# ls -l /etc/passwd

# ls -l /etc/shadow

wKiom1NNNpPzUzDBAADf0GScdxg253.jpg


和组相关的信息则存放在以下两个文件中:

/etc/group: 用来存放组的属性信息;

/etc/gshadow:用来存放组的密码相关信息。

组的密码作用在于让用户使用该组。如果某用户不在该组中,但想使用该组的权限,就可以切换到该组中,这时就需要组的密码.


五、什么是进程

window的操作系统中,我们可以通过Ctrl+Alt+Delete 组合键打开任务管理器查看进程(process);在Linux操作系统中,同样也有进程,可以使用以下命令来查看当前正在运行的进程:

# ps -aux | less

wKioL1NNNoyyc0wuAADLQoVCv88291.jpg

我们可以将进程和程序加以对比,来帮助我们理解进程。程序可以看做是存放在硬盘上的二进制码,是死的数据;而进程可以看成是正在执行过程中的程序


进程有自己的生命周期,即从程序启动到运行结束;如果站在操作系统的角度看,进程实际上是资源分配的单位;而从用户的角度看,进程是用户的代理,用户通过进程完成对计算机的操作。


六、进程的类别

进程可以分为以下三类:

1. 守护进程deamon):是后台进程,用来完成操作系统的基本任务,如运行GUI界面所需的进程;

2. 交互式进程interactive):是用户进程,即用户手动发起的进程;

3. 实时进程real time),此处不加赘述,后文将详细介绍该类进程。


七、进程的权限管理

进程和文件一样,也有属组和属主。判断某一进程是否有权限访问资源,取决于发起进程的用户是否有权限访问资源

例如,当用户Tom试图运行命令:

# touch /tmp/b.txt

那么touch 命令发起的进程就属于Tom 用户。

进程的判断顺序通常是:①首先判断属主--->②然后判断属组


你可能感兴趣的:(linux,用户,权限,进程)