Linux中用户管理详解

一、原理了解

在Linux系统中,所有的用户和组像一个国家。如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成。在linux中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的。

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下一些基本的概念。

在我们的linu中各个用户以权限来区分.

Linux中一般有三种用户:

1、超级用户root:具有最高的权限,UID=0,GID=0

2、系统用户:主要服务于系统应用,维护系统运行,不能登录。例如:uucp

daema等。

3、普通用户:登录的用户

组:具有相同权限的用户的集合。例如,我们的ubuntu组

二、特殊路径了解

1./etc/passwd我们使用cat命令查看一下这个文件

我们首先看第一行root这一行,一共有七项,每一项使用:分开,他们代表的意思如下:

帐号名称:帐号名称由于对应用户ID,这个是系统默认用户root超级管理员,在同一个系统帐号名称是唯一的,长度根据不同的linux系统而定,一般是8位。

密码:由于系统中还有一个/etc/shadow文件用于存放加密后的口令,所以在这里这一项是“x”来表示,如果用户没有设置口令,则该项为空。

用户ID:这个是系统内部用于来识别不同的用户的,不同的用户识别码不同,其中用户ID有以下几种:

0代表系统管理员

1-500系统预留的ID

500以上是普通用户使用。

组ID:其实这个和用户ID差不多,用来规范群组,他与/etc/group有关。

描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。一般常见的是用户全名信息。-

用户根目录:就是用户登录系统的起始目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。

用户登录shell:就是用户登录系统时使用的shell路径

2./etc/shadow

在早期的unix操作系统中,用户的帐号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件对于系统中的所有用户是可读的,口令比较容易破解,存在较大的安全隐患。现在使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户帐号其它信息。“shadow”文件只有管理员用户才可以读取其中的内容。由于这个文件可能被破解,所以一定不要将该文件内容泄露给他人,保证系统安全。

同样,我们还是分析第一行,一共有以下几项,分别说明一下:

帐户名称:和/etc/passwd对应,和/etc/passwd的意思相同。

密码:这才是真正的密码,并且已经加密过了,只能看到一些特殊符号。需要注意的是这些密码很难破解,但是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登录,如果那个用户不想让他登录了,可以在他前面加个星;

上次改动密码的日期:这段记录了改动密码的最后日期,为什么是13798呢?这是因为linux计算日期的方法是以1970年1月1日作为1,1971年1月1日就是366,依次类推到我修改密码的日期表示为13798了。

密码不可被改动的天数:这个字段代表要经过多久才可以更改密码。如果是“0”代表密码可以随时更改。

密码需要重新更改天数:由于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。上面的99999,表示密码不需要重新输入。

密码到期的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。

3. /etc/group查看一下这个文件,这个文件是保存的unix组成员的

我们还是分析第一行,一共有以下四项,依次为:

群组名称:就是群组的名称了。

群组密码:通常不需设定,因为我们很少使用群组登录。不过这个密码也被记录在/etc/shadow中了。

群组ID:也就是组ID了。

支持帐号的名称:这个群组的所有帐号。

三、命令详解

1、adduser 添加用户。会要求输入新密码,全名。

常用:sudoadduser  farsight_chw

我们可以发现在/home/中出现了我们的用户

可以发现在我们的/etc/passwd和 /etc/shadow中都有了该用户

2.只删除用户

sudodeluser  farsight_chw

注意:删除后我们用户主目录还是存在

3.删除用户和用户主目录

Sudodeluser  --remove-home farsight_chw

<1>先新建用户

<2>彻底删除

三、进程相关命令

<1>进程和程序

程序:存储在磁盘上可执行指令的文件。Windows .exe     Linux .elf

进程:程序一次执行的过程,并且伴随着资源的分配与释放。

区别:进程是动态的,而我们的程序是静态的。

<2>进程相关的命令

1、查看系统的进程(相当于给当前进程截了一个图)

ps -ef

2、查看进程第一行的内容

ps -ef   |  head -1

我们只需要知道这几个就行了

UID   当前用户帐号

PID    进程号

PPID  父进程号

C     cpu占用率

STIME 进程启动的时间

tty    进程所属的终端控制台,?表示这些进程不属于tty,由系统启动。

time   进程共占用的cpu的时间

cmd   启动进程的命令

3、top   动态显示我们的进程

注:按下crtl + c 可结束当前页面

由于参数比较多,这里只说几个重要的。

PID      进程号

USER    用户名

PR和NI   决定我们进程的优先级

4.给我们的进程发信号

Kill -信号的编号 PID

常用:

宏名       信号的编号         作用

SIGKILL     9               杀死进程

SIGSTOP     19             让进程停止

例如:

给进程发结束信号

Kill -9 PID号

例如:我们新建一个

Hello.c

运行结果:

把当前进程杀掉

时间: 2024-10-22 04:21:05

Linux中用户管理详解的相关文章

Linux中pam认证详解(下)

Linux中pam认证详解(下) 在上一篇中详细的介绍了pam的介绍.pam认证原理.pam认证构成以及pam验证控制类型,下面向大家详细介绍一下常用的pam服务模块,以及pam认证的应用. 一.常用的pam服务模块 下面是Linux提供的PAM模块列表(只是其中一部分),这其中包含模块文件.模块功能描述和相关配置文件,具体如下: pam_access 提供logdaemon风格登录控制 /etc/security/access.conf pam_chroot 提供类似chroot命令的功能 p

【转】linux中inittab文件详解

原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬

Linux中的sudoer详解

目录 Linux中的sudo详解 一.引言 二.格式 三./etc/sudoers文件 四.sudoers文件讲解 五.其他 Linux中的sudo详解 一.引言 Liunx用户只有两类: 管理员用户---root 普通用户--其他 我们在学习sudo命令之前,肯定学习过su(switch user)命令,su命令是用来切换用户身份的命令,而sudo命令是一种切换用户来执行某种操作的命令 su和sudo的区别: su命令的主要作用是让你可以在已经登录的会话中切换到另外一个用户,换句话说,这个工具

linux中ls命令详解

s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i 节点的修改时间,并以此排序.-d 将目录象文件一样显示,而不是显示其下的文件.-e 输出时间的全部信息,而不是输出简略信息.-f -U 对输出的文件不排序.-g 无用.-i 输出文件的 i 节点的索引信息.-k 以 k 字节的形式表示文件的大小.-l 列出文件的详细信息.-m 横向输出文件名

linux中fork()函数详解[zz]

转载自:http://www.cnblogs.com/york-hust/archive/2012/11/23/2784534.html 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事. 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有

Linux用户管理详解

1.Linux中用户和组的标识 说明:Linux系统是基于用户身份对系统的资源进行管理的操作系统 (1)用户帐号:UID(User Identity,用户标识号) (2)超级用户在任何Linux系统中UID=0 (3)系统用户在不同版本Linux中的UID范围:UID:1-499或UID:1-999 (4)普通用户在不同版本Linux中的UID范围:UID:500-65535或UID:1000-65535 (5)组帐号:GID(Group Identify,组标识号) 组可以分为:初始组(私有组

Linux中rm命令详解

linux下rm命令使用详解---linux删除文件或目录命令 用户可以用rm命令删除不需要的文件.该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是断开了链接,原文件保持不变. rm命令的一般形式为:rm [选项]... 目录... 删除指定的<文件>(即解除链接). -d      --directory    删除可能仍有数据的目录 (只限超级用户) -f      --force          略过不存在的文件,

linux中inittab文件详解

init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没有固定的信息来表示runlevel,它纯粹是一种软件结构.init和inittab是runlevel影响系统状态的唯一原因

linux中find命令详解

http://blog.csdn.net/pipisorry/article/details/39831419 问题: linux中find命令查找时不包含某些目录 find 命令忽略某个或多个子目录的方法 在linux中用find 进行查找的时候,有时候需要忽略某些目录不查找,可以使用 -prune 参数来进行过滤,要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用. eg: [email protected]:/tmp1#find ./ -type f    #/tmp1目录下所