普通用户的管理

用户管理的基本任务包括添加新用户、删除用户、修改用户属性以及对现有用户的访问参数进行设置。与密切

相关的文件包含/etc/passwd、/etc/shadow以及/home目录下的文件。

添加新用户

系统中一个合法的用户应该具有用户名、真实姓名、密码和登录环境等用户信息。与此相对应,添加一个新用

户通常需要系统完成以下几项操作。

1.设置用户名称及密码。

2.设置用户UID。系统在/etc/passwd文件中查找目前使用的大于或等于500的UID的最大编号,加1后赋予当前的

新用户,若目前还没有大于500的编号,则将500赋予该用户。

3.添加该新用户所属的用户组。每一个用户都会属于一个或多个用户组。系统在添加新用户时默认添加的用户组与

新用户名相同,同时会赋予该用户组一个GID,通常GID的编号与UID的编号相同。

4.创新以前用户名为名称的主目录。在大多数系统中,用户的主目录都被创建在同一个特定目录下,例如 /home

各用户对自己的主目录有完全的读、写执行权限,其他用户只能依据该目录的权限设置进行访问。

5.设定用的shell环境,默认是/bin/bash.

6.设定用户的失效时间,默认是99999天后

7.设定失效前发出警告的天数,默认是失效前7天。

管理员可以通过useradd或adduser命令来添加一个新的用户。

# tail -1  /etc/passwd  #显示/etc/passwd文件最后一行内容

#tail -1 /etc/shadow  #显示/etc/shadow文件最后一行内容

解析/etc/passwd文件

/etc/passwd文件存储着用户的相关信息,包含用户名、密码和主目录位置等。根用户对该文件有读和

写的权限,普通用户只有读权限。

/etc/passwd由’:’分割成7个字段,每个字段的具体含义是:

1) 用户名(如第一行中的root就是用户名),代表用户账号的字符串。用户名字符可以是大小写字母、数字

减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其

是首位为点时,另外减号也不建议使用,因为容易造成混淆。

2)存放的就是该账号的口令,为什么是’x’呢?早期的unix系统口令确实是存放在这里,但基于安全因素,后来

就将其存放到/etc/shadow中了,在这里只用一个’x’代替。

3)这个数字代表用户标识号,也叫做uid。系统识别用户身份就是通过这个数字来的,0就是root,也就是说你

可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。通常uid的取值范围是0~65535,0是超级

用户(root)的标识号,1~499由系统保留,作为管理账号,普通用户的标识号从500开始,如果我们自定义建

立一个普通用户,你会看到该账户的标识号是大于或等于500的。

4)表示组标识号,也叫做gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上

类似。

5)注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你

使用finger的功能时就会显示这些信息的(稍后做介绍)。

6)用户的家目录,当用户登录时就处在这个目录下。root的家目录是 /root,普通用户的家目录则为 /home/

username,这个字段是可以自定义的,比如你建立一个普通用户test1,要想让test1的家目录在/data目录下,只

要修改/etc/passwd文件中test1那行中的该字段为/data即可。

7)shell,用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有很多种

sh, csh, ksh, tcsh, bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外

还有/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以把该字

段改成/sbin/nologin,默认是/bin/bash

解析/etc/shadow文件

由于普通用户可以读取/etc/shadow文件,因此密码直接保护直接保存在该文件中是极不安全的,很可能

会被别有用心的人获取并翻译。目前的操作系统在密码保护方面大多采用了ShadowPasswords及MD5口令保护

功能。

再来看看/etc/shadow这个文件,和/etc/passwd类似,用”:”分割成9个字段。

1)用户名,跟/etc/passwd对应。

2)用户密码,这个才是该账号的真正的密码,不过这个密码已经加密过了,但是有些黑客还是能够解密的。所

以为了安全,该文件属性设置为600,只允许root读写。

3)上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更

改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+1=15331。

4)要过多少天才可以更改密码,默认是0,即不限制。

5)密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将

不能登录系统,默认是99999,可以理解为永远不需要改。

6)密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用

户他的密码将在7天后到期。

7)账号失效期限。你可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修

改密码,那么再过3天,则这个账号就失效了,即锁定了。

8)账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可

以使用,到期后账号作废。

9)作为保留用的,没有什么意义。

修改用户的账号

修改用户的账号包含更改用户的用户名、密码、主目录、所属用户组和登录Shell等信息。

修改用户基本信息

修改用户的基本信息可以使用username命令,其命令格式为:

userrmod [-c comment]

-c   comment:更新用户的注释信息

-d  home_dir:更新用户的登录目录。如果指定了-m选项,则旧目录中的内容会复制到新

的目录中。如果新目录不存在则自动创建。

-e  expire_date:更新用户账户停用日期。其日期格式为MM/DD/YY。

-f   inactive_time:设定账号失效到永久停用的天数,当值为0时账号到期后立刻被停用。

而当值为-1是则关闭此功能。默认值为-1.

-g  initial_group:更新用户的初始登录用户组,即第一用户组。用户组名必须已经存在,默

认值为users。

-G group[....]:更新用户所属的用户组。通常一个用户可以属于多个用户组,成为多个用户组

的成员。每个用户组名之间必须用“,”分隔,如果用户当前所在的用户当前所在的用户组不在

此项中,则会从当前用户组删除此用户。

-l long_name:变更用户登录时的名称为longin_name.

-s  shell:指定用户新的登录shell。如果此项为空,则系统将选用默认的shell。

-u  uid:更新用户的UID值。该值修改后,用户目录树下所有的文件、目录的用户UID值会

自动改变,但放在用户主目录处的文件和目录的UID值则需要用户手动更新。

此命令将用户的登录目录改为/home/student2,登录Shell改为ksh,所在的组改为users和student。

修改用户密码

指定和修改用户密码的命令是passwd。根用户不仅可以修改自己的密码,还可以修改其他用户的密码

普通用户则只能修改自己的密码。passwd命令的格式:   passwd  [.....]

-k:表示只有密码过期才需要用户重新设定密码

-l:通过在用户的密码字段前加前缀“!”,对用户进行锁定。锁定的用户无法登录系统该命令只有根用户有

权使用。

-u:该参数与-l相反,是对锁定的用户进行解锁操作。该操作会删除密码字段前的“!”。使用-f参数,才能

强制解锁。

-d:快速删除用户的密码。该命令只对根用户有。

-n:设定最短的密码有效期。

-x:设定最长的密码有效期。

-w:设定密码过期前,发出警报的提前天使。

-i:设定密码过期到账号停用的天数。

-S:显示指定用户的当前密码状态。

--stdin:表示从标准输入重新读入密码,该标准输入也可以为一管道

linux用户与组管理的更多相关文章

  1. linux学习16 Linux用户和组管理命令演练和实战应用

    一.上集回顾 1.bash globing,IO重定向及管道 glob:*,?,[],[^] IO重定向: >,>>, 2>,2>> &>,& ...

  2. Linux用户与组管理命令

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. who | cut -d" " -f1 | sort -u 或 who | cut -d ...

  3. Linux 用户和组管理

    这是用户和组管理的知识点,不想看文字就看视频吧,还是视频为主,文字为备忘录 视频链接: 项目1用户管理 1.创建一个新用户user01,设置其主目录为/home/user01: #useradd –d ...

  4. linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group 文件内容解释

    与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等: /etc/passwd 和/etc/s ...

  5. linux用户、组管理及权限(一)

    一.用户管理 1.为什么需要用户 1)计算机及网络资源的合理分配  2)可以控制用户访问系统的权限.3)身份认证 4) 进程 以某个用户的身份来运行 2.用户分类 用户的角色是通过UID(用户ID)来 ...

  6. java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理

    我们大家都知道,要登录linux操作系统,我们必须要有一个用户名和密码.每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组". ...

  7. linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group --学习

    一./etc/passwd 和/etc/shadow解释 与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码 ...

  8. ref:linux用户和组管理,/etc/passwd,/etc/shadow和/etc/group 文件内容解释

    ref:https://www.cnblogs.com/xuha0/p/5519232.html 与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shad ...

  9. Linux用户和组管理命令-用户创建useradd

    用户管理命令 useradd usermod userdel 组帐号维护命令 groupadd groupmod groupdel 用户创建 useradd 命令可以创建新的Linux用户 格式: u ...

  10. 用户与安全 -(1)Linux用户及组管理

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登 ...

随机推荐

  1. css水平竖直居中方式

    CSS水平和垂直居中的几种实现方法: 1.单行垂直居中 文字在层中垂直居中vertical-align 属性是做不到的.我们这里有个比较巧妙的方法就是:设置height的高度与line-height的 ...

  2. nmap小技巧[1] 探测大网络空间中的存活主机

    url: nmap是所有安全爱好者应该熟练掌握的扫描工具,本篇介绍其在扫描大网络空间时的用法. 为什么要扫描大网络空间呢? 有这样的情形: 内网渗透   攻击者单点突破,进入内网后,需进一步扩大成果, ...

  3. [C++设计模式] command 命令模式

    在软件系统中,"行为请求者"与"行为实现者"通常呈现一种"紧耦合". 但在某些场合,比方要对行为进行"记录.撤销/重做.事务&qu ...

  4. Tabs or Spaces?

    Never mix tabs and spaces. The most popular way of indenting Python is with spaces only. The second- ...

  5. mysql无法启动ERROR! MySQL is running but PID file could not be found ?

    转载于:http://blog.csdn.net/wuzhilon88/article/details/17616635 第一种方法:可能是硬盘满了,清理下垃圾文件. 第二种: 查看下数据库运行状态 ...

  6. shell脚本与mongo交互

    1.mongo提供*.js的方法供linux调用 #!/bin/bash /usr/local/mongodb/bin/mongo hostname/dbname xxx.js xxx.js 内容如下 ...

  7. <LeetCode OJ> 26 / 264 / 313 Ugly Number (I / II / III)

    Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...

  8. Atitit.java 反编译 工具  attilax 总结

    Atitit.java 反编译 工具  attilax 总结 1. 三大核心核心引擎——1 2. JAD  Jad  attitude推荐这个1 2.1. Jdec.2 2.2. 二. 源码开放的 J ...

  9. C语言基础(13)-函数

    一. 函数的原型和调用 在使用函数前必须定义或者声明函数. double circle(double r); int main() { ); printf("length = %f\n&qu ...

  10. 美团HD(7)-添加取消搜索按钮

    DJSelectCityViewController.m #pragma mark - UISearchBar 代理方法 /** SearchBar开始编辑 */ - (void)searchBarT ...