`

Linux系统 用户管理的详细解析

阅读更多
http://blog.sina.com.cn/s/blog_47243df30100023f.html

在Linux 系统中,所有的用户和组像一个国家。如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成。在linux 中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的。
   
    在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下用户帐号文件。

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

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

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

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

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

    0代表系统管理员,如果你想建立一个系统管理员的话,可以建立一个普通帐户,然后将该账户的用户ID改为0即可。

    1-500系统预留的ID,500以上是普通用户使用。

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

    描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。

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

    用户登录shell:就是用户登录系统时使用的shell,关于shell我们会在以后专门的研究一下。

    2./etc/shadow

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

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

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

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

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

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

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

    帐号失效期:如果用户过了警告期没有重新输入密码,使得密码失效,而该用户在这个字段限定的时间内又没有向管理员反映,让帐号重新启用,那么这个帐号将暂时失效。

    帐号取消日期:这个日期跟第三个字段一样,都是使用1970年以来的日期设定方法。这个字段表示:这个帐号在此字段规定的日期之后将无法再使用。这个字段通常用于收费服务系统中,可以规定一个日期让该帐号不能再使用。

    保留:最后一个字段是保留的,看以后有没有新功能加入。

    3. /etc/group查看一下这个文件

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

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

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

    群组ID:也就是组ID了。

    支持帐号的名称:这个群组的所有帐号。如果你想让用户qiuri也属于root这个群组,就在第一行最后加上“,qiuri”注意添加的时候没有空格。

    4. adduser添加用户

    如果没有特殊的要求,通常我们使用adduser 用户名称直接创建用户帐号。例如我们创建qiuri帐户:

    由于一般新创建的帐号都会在刚才我们说的三个文件的最后一行添加一行内容,我们验证一下:

    我们使用这条命令是通过/etc/login.defs和/etc/default/useradd这两个默认帐号设定文件来实现创建用户的。

    这个文件中我们有必要了解一下,SKEL这个选项,用户的根目录内容是从/etc/skel这个目录下复制过去的。在手动添加用户的时候有用。查看一下这个目录下的内容:

    这条命令还有好多的参数举例几个,供大家参考一下:

    adduser [-u uid][-g group][-d home][-s shell]

    -u:直接给出userID -g:直接给出GID

    -d:直接将根目录建立在已存在目录 -s:定义shell

    5.passwd设置用户密码

    默认的情况下,在添加完用户后并没有设置用户的密码,因此建立的用户帐号即使存在也不能登陆系统。需要使用passwd命令对用户帐号设置密码才可以用于登陆系统。这条命令分为管理员给用户修改密码和用户自己登录系统自己修改密码。

    管理员root给用户修改密码,例如:创建用户qiuri,然后设置密码

    管理员给用户设置密码以命令passwd [用户名]来设置密码,在输入密码的过程中为了避免输入错误,将连续输入两次。如果两次输入的密码相同,表示输入的密码正确,同时将密码以加密的方式保存到了shadow文件中。设置完以后我们可以使用用户qiuri登录。qiuri用户自己修改一下密码。
  linux下创建用户和修改用户密码 收藏
linux下创建用户
1、添加ftp用户
useradd ftpname -d /home/ftp
passwd ftppwd
以下操作都以root权限进行:
service vsftpd start 启动Linux自带的FTP服务
2. 添加普通用户
useradd nagios –d /usr/local/nagios
chown nagios.nagios /usr/local/nagios
将用户切换到nagios 用户,添加nagios的访问用户:
su nagios
htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin
系统会提示输入两次密码,例如两次输入nagios。
注: 这是第一次创建用户,需要“-c”选项,表示创建一个存放用户名和密码的文件,当再次添加用户或修改密码时不用“-c”选项。

添加新的用户账号使用useradd命令,其语法如下:

  useradd 选项 用户名

  其中各选项含义如下:

  -c comment 指定一段注释性描述。

  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

  -g 用户组 指定用户所属的用户组。

  -G 用户组,用户组 指定用户所属的附加组。

  -s Shell文件 指定用户的登录Shell。

  -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

  用户名 指定新账号的登录名。

  例如:

  # useradd –d /usr/sam -m sam

  此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。

  # useradd -s /bin/sh -g group –G adm,root gem

  此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

  增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。这几个文件的内容在后面会做详细介绍。

  Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。

  如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:

  userdel 选项 用户名

  常用的选项是-r,它的作用是把用户的主目录一起删除。

  例如:

  # userdel sam

  此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

  修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

  修改已有用户的信息使用usermod命令,其格式如下:

  usermod 选项 用户名

  常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

  -l 新用户名

  这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

  例如:

  # usermod -s /bin/ksh -d /home/z –g developer sam

  此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

  用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

  指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

  passwd 选项 用户名

  可使用的选项:

  -l 锁定口令,即禁用账号。

  -u 口令解锁。

  -d 使账号无口令。

  -f 强迫用户下次登录时修改口令。

  如果默认用户名,则修改当前用户的口令。

  例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:

  $ passwd

  Old password:******

  New password:*******

  Re-enter new password:*******

  如果是超级用户,可以用下列形式指定任何用户的口令:

  # passwd sam

  New password:*******

  Re-enter new password:*******

  普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

  为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。

  为用户指定空口令时,执行下列形式的命令:

  # passwd -d sam

  此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。

  passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:

  # passwd -l sam
分享到:
评论

相关推荐

    Linux_系统架构与目录解析_12174239.pdf

    本书《Linux系统架构与目录解析》是由台湾鸿海精密股份有限公司资深工程师邱世华撰写,他同时拥有RHCE(Red Hat认证工程师)资格认证,并且在台湾多所院校教授相关课程。其专业领域包括Linux系统硬件验证与管理、...

    Linux系统网络配置详细解析

    Linux系统网络配置详细解析 Linux系统网络配置是Linux操作系统中的一项重要功能,它允许用户自定义和管理网络接口、IP地址、路由表和其他网络参数。在本文中,我们将详细介绍Linux系统网络配置的方法和步骤。 一、...

    linux实验三_Linux系统登录及用户管理

    ### Linux系统登录及用户管理知识点解析 #### 一、实验目的 本次实验旨在帮助学习者深入理解并掌握Linux操作系统中的用户管理和系统登录操作。具体包括以下几个方面: 1. **掌握系统远程登录的常用命令**:这包括...

    Linux_系统架构与目录解析

    在深入探讨Linux系统架构与目录解析之前,我们首先需要理解Linux是什么。Linux是一种自由和开放源码的操作系统,由林纳斯·托瓦兹在1991年创建,基于UNIX系统设计原则。它广泛应用于服务器、移动设备以及超级计算机...

    技术书籍之Linux系统用户管理

    Linux 系统用户管理是操作系统中的关键组成部分,它涉及到用户账户的创建、删除、权限管理和组管理等多个方面。本文将详细解析这些知识点。 首先,**增加一个新用户**是通过`useradd`命令完成的。默认情况下,`...

    LINUX内核探秘:深入解析文件系统和设备驱动

    在Linux系统中,文件系统扮演着至关重要的角色。文件系统不仅管理着文件的创建、读取、写入和删除,还负责磁盘空间的分配、文件权限控制和文件的组织结构。其中,EXT4是最常见的一种Linux文件系统,它具有良好的性能...

    Arm Linux系统调用流程详细解析1

    本文将详细解析Arm Linux系统调用的流程,基于提供的博客链接进行分析。 首先,我们从用户空间到内核空间的转换开始。在C语言中,系统调用通常通过`syscall()`函数或者`__NR_*`常量配合`int 0x80`汇编指令触发。在...

    Linux系统管理 北大青鸟PPT

    这份PPT详细介绍了Linux系统管理的各个方面,旨在帮助用户深入理解和掌握这一技能。 1. **Linux系统概述**:Linux是一种开源、免费的操作系统,基于Unix,被广泛应用于服务器、嵌入式设备以及个人电脑。它有多种...

    深度探索Linux操作系统——系统构建和原理解析

    对于想要开发嵌入式系统的工程师来说,这些知识至关重要,能够帮助他们理解和优化运行在特定硬件平台上的Linux系统。 在系统构建方面,本书将详细解释如何从源代码编译Linux内核,以及如何配置和定制以满足特定需求...

    linux系统日志解析

    下面我们将详细介绍一些常用的Linux系统日志文件及其解析方法。 #### 核心启动日志:/var/log/dmesg 这个日志文件包含了系统内核启动时的信息,包括硬件检测、加载模块等过程的详细记录。它对于诊断系统启动过程中...

    Python Linux系统管理与自动化运维

    1. 自动化脚本:Python可以编写简洁的脚本来执行常见的系统管理任务,如文件操作、用户管理、网络配置等,大大提高了效率。 2. 安装与卸载软件:Python的`subprocess`模块可以调用shell命令,实现软件的安装(如`...

    深度探索LINUX操作系统系统构建和原理解析

    通过对这些内容的深入学习,你可以掌握Linux系统的基本架构,理解其工作原理,并具备解决实际问题的能力,无论是日常使用还是系统管理员的工作都会变得得心应手。此外,Linux的开源特性也鼓励开发者参与到系统的改进...

    Linux系统管理白皮书.rar

    Linux系统管理白皮书是一份全面介绍Linux操作系统管理和应用的资料,主要针对系统管理员和对Linux感兴趣的用户。这本书深入浅出地阐述了Linux系统的核心概念、基本操作以及高级管理技术,帮助读者掌握在各种场景下...

    Linux操作系统编程教学pdf

    用户和权限管理是Linux系统安全的基础,包括创建和删除用户、设置用户权限、理解文件的读写执行权限(rwx)以及使用chown、chgrp和chmod等命令来改变文件和目录的所有者、所属组和权限。 "2.3 Linux文件的IO操作1....

    Linux系统架构与根目录解析

    本文详细介绍了Linux系统架构及其根目录下的重要组成部分。通过对这些基础知识的掌握,可以帮助用户更高效地使用Linux系统,并为后续深入学习打下坚实的基础。无论是对于初学者还是有一定经验的用户而言,熟悉Linux...

    Linux系统目录解析

    Linux系统目录解析主要涉及到Linux操作系统的核心目录结构,这些目录各自承担着特定的功能,对系统运行至关重要。以下是对各个目录的详细说明: 1. **/** - 根目录:所有其他目录的起点,包含了Linux系统的基本架构...

    Linux操作系统管理课程设计

    Linux操作系统管理课程设计是针对初学者的一门综合实践课程,旨在帮助学员掌握Linux系统的基本操作、管理和维护技能。Linux作为一种开放源代码的操作系统,被广泛应用于服务器、云计算、物联网等领域,学习Linux对于...

    2004linux系统管理练习题(含答案)

    本篇文章将对 Linux 系统管理实践题进行详细的解析,并总结出相关的知识点。通过本篇文章,读者将对 Linux 系统管理有更深入的了解,并掌握相关的技术和知识。 一、文件系统管理 * 在 Linux 系统中,所有的内容都...

    Linux系统管理员培训视频教程

    Linux系统管理员培训视频教程是一套全面讲解Linux操作系统管理和运维的教育资源,主要针对Red Hat公司的Linux系统。这套教程共40课时,旨在帮助学习者掌握Linux的基础知识以及高级技巧,以便在实际工作中有效地管理...

    LINUX系统管理白皮书.rar

    《LINUX系统管理白皮书》是一份详细阐述Linux操作系统管理的综合性文档,旨在帮助用户理解和掌握在Linux环境中进行系统管理的各项技术与实践。Linux,作为一款开源、免费的操作系统,因其稳定性和灵活性,被广泛应用...

Global site tag (gtag.js) - Google Analytics