6.1/etc/passwd文件

用户登录时Linux识别用户的文件/etc/passwd

/etc/passwd包括7个字段:

  登录名(不超过32位,使用NIS系统后不超过8位)

  经过加密的口令或口令占位符(大多数实际放在/etc/shadow文件中,默认采用MD5加密(加密后34位),SUSE中采用Blowfish,通过passwd命令设置)

  UID(用户ID)号(32位无符号数,建议限制为32767内,root的UID为0,让多个账号UID为0会产生潜在安全漏洞,LDAP是一种流行的UID管理工具)

  默认的GID(组ID)号(/etc/group文件中定义,GID 0:root组,GID 1:bin组,GID 2:daemon组,默认GID在创建新文件和目录时起作用)

  “GECOS”信息:全名、办公室、分机号、住宅电话(记录用户个人信息,finger,chfn,GECOS信息非常适合LDAP管理)

  主目录(修改/etc/login.def的DEFAULT_HOME为no,则会禁止没有主目录的用户登录)

  登录shell(chsh命令改变自己所用的shell,/etc/shells文件中包含chsh命令允许用户使用的shell列表,向shell文件中增加项,必须使用绝对路径)

6.2/etc/shadow文件

格式: root:$1$buJ6v3Ch$bwLIof5each9Nv.OEzD3T0:13348:0:180:14::14974:

只有超级用户才能读/etc/shadow文件

在使用隐蔽口令系统的情况下,/etc/passwd文件中原来的口令字段一定要包含一个x

管理员必须两个文件/etc/shadow和/etc/passwd都维护(或使用useradd工具自行维护)

可以使用pwconv工具让shadow文件和passwd文件内容保持一致

/etc/shadow文件9个字段:

  登录名  (和/etc/passwd中相同)

  加密后的口令

  上次修改口令的时间  (从1970年1月1日开始的天数)

  两次修改口令之间最少的天数  (防止用户修改口令后马上改回口令,建议设置0)

  两次修改口令之间最多的天数

  提前多少天警告用户口令将过期

  账号过期的日期   (从1970年1月1日开始的天数)

  保留字段,目前为空

6.3/etc/group文件

格式:

wheel:x:10:net,evi,lynda,boggs,tom,millert

student:*:200:dotty

newgrp命令让不属于某个组的用户变为属于该组

/etc/group文件包含4个字段:

  组名  (尽量限制在8个字符内)

  加密的口令或者包含一个x,表明有一个gshadow文件

  GID号  (为避免与厂商提供的GID冲突,建议从GID 500开始分配本地组)

  成员列表,彼此用逗号隔开(不要加空格)

6.4添加用户

为新用户创建账号之前,该用户在本地用户协议和政策声明的副本上签字并注明日期是非常重要的

系统所需的步骤:

  编辑passwd和shadow文件定义用户账号:

  把用户添加到/etc/group文件里

  设置一个初始口令

  创建用户主目录,用chown和chmod命令改变用户主目录的属主和属性

为用户进行的步骤:

  将默认的启动文件复制到用户的主目录中

  设置用户的邮件主目录并建立邮件别名

为管理员准备的步骤:

  核实账号是否设置正确

  将用户的联系信息和账号状态加入数据库

1)编辑passwd和shadow文件

Fedora和RHEL系统使用vipw编辑passwd文件后会询问是否再编辑shadow文件,SUSE、Debian和Ubuntu使用vipw -s实现上述功能

添加账号linda到/etc/passwd:

  linda:x:2000:2000:linda,,,:/home/linda:/bin/sh

在/etc/shadow文件中添加:

  linda:*:16268:0:99999:7:::

2)编辑/etc/group文件

  linda::2000:linda

3)设置初始口令

  passwd linda

4)创建用户主目录

  mkdir /home/linda

  chown linda:linda /home/linda

  chmod 700 /home/linda

5)复制默认启动文件

  cp /etc/skel/[a-zA-Z]* ~linda    (skel在ubuntu12.04下是在/etc/skel,其他系统下请 find / -name skel)

  chown linda:linda ~linda/[a-zA-Z]*

  chmod 600 ~linda/[a-zA-Z]*  (注意,不能写成~linda/.*,因为这也包括..(/home),将导致linda不但是自己文件的属主,也是其父目录的属主,很危险)

6)设置用户的邮件主目录

  见18.3.2节

7)验证新的登录

  退出登录,再以新用户身份登录,并执行命令

  pwd  /*核实主目录*/

  ls -al  /*检查启动文件的属主和属组*/

8)记录用户状态和联系信息

  维护联系信息和账号状态数据库

6.5删除用户

手工删除用户步骤:

  将用户从所有本地用户数据库或者电话簿中删除

  将用户从alias文件中删除,或者添加一个转发地址

  删除用户的crontab文件和所有挂起的at作业

  终止所有仍在运行的用户进程

  将用户从passwd、shadow、group和gshadow文件中删除

  删除用户主目录

  删除用户的邮件存储文件

6.6禁止登录

  方法1)在加密的口令前添加一个星号或其他字符,使其无法通过口令访问登录

  方法2)usermod -L linda 和usermod -U linda分别表示对口令上锁和解锁(SUSE无效)

  方法3)替换用户的shell,这个伪shell不在/etc/shells中

6.7账号管理工具

useradd命令把用户添加到passwd文件中(如果可以的话,还会添加到shadow文件中)

usermod命令可以改变已有用户在passwd文件中的条目

userdel命令可以将用户从系统中删除,还可以删除用户的主目录

groupadd、groupmod、groupdel可以对/etc/group文件操作

添加用户

  useradd -c "David Hilbert" -d /home/hilbert -g facultry -G famous -m -s /bin/sh hibert

效果如下:

  在/etc/passwd中(hilbert:x:1005:30:David Hilbert:/home/hilbert:/bin/sh)

  在/etc/shadow中(hiblert:!:11508:0:99999:7:0::)

  在/etc/group中(将hilbert添加到faculty和famous组中)

  创建了主目录/home/hilbert

  复制了/etc/skel的内容到主目录中

删除用户

  userdel hilbert

  删除了passwd、shadow和group文件中与hilbert相关的资料

  加上-r选项后会删除用户的主目录

Linux系统管理技术手册——第6章 添加新用户的更多相关文章

  1. UNIX/Linux系统管理技术手册(2)----bash脚本编程

    1. 一个简单的例子: $ vim readname.sh #file:readname.sh#!/bin/bash echo -n "Enter your name: " rea ...

  2. Unix/Linux系统管理技术手册学习笔记——shell

    创建日期:2016/02/29 更新日期:2016/02/29 shell变量赋值时不能在等号两边留空白,否则shell会把变量名误认为是命令名 双引号括起来的变量可以进行替换(用*和?这样的文件名匹 ...

  3. UNIX/Linux系统管理技术手册(3)----bash 数组和算术运算

    复杂的数据结构和计算不是 bash 的特长.但它的确至少提供了数组和算术运算. 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 " ...

  4. UNIX/Linux系统管理技术手册(1)----脚本和shell

    1. 管道和重定向 (i) 要让第二条命令只有在第一条命令成功完成之后才执行,可以用一个 && 符号把两条命令隔开.例如: $ > /dev/null && cd ...

  5. linux下禁止root远程登录和添加新用户

    https://www.cnblogs.com/jianz/p/7979250.html 一.添加和root权限一样的用户 1. adduser admin passwd  admin (修改密码) ...

  6. 给Linux添加新用户,新建用户,新建帐号

    给Linux添加新用户,新建用户,新建帐号 添加用户组 sudo groupadd groupname 添加用户 sudo useradd username -m -s /sbin/nologin - ...

  7. linux SVN添加新用户

    首先找到用户文件:authz.conf; 用vi 编辑authz.conf文件在develps 后面添加你要添加的用户名:如图:  上图:cheny就是我后面添加上去的用户名 按Esc :wq保存au ...

  8. linux不使用useradd添加新用户

    不使用useradd创建新的用户 1.进入用户特征信息:/etc/passwd 编辑: vim /etc/passwd 命令模式 :G 进入末行 进入编辑模式 :在最后添加新用户信息: 例:new_u ...

  9. ubuntu添加新用户并添加管理员权限

    Ubuntu创建新用户并增加管理员权限  Family 2014-06-24 22:21:22 $是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为 ...

随机推荐

  1. 宁波Uber优步司机奖励政策(1月25日~1月31日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. Codeforces Round #100(140~~)

    140 A. New Year Table 题目大意:有一个大圆桌子,半径是R, 然后有n个半径是r的盘子,现在需要把这些盘子摆放在桌子上,并且只能摆放在桌子边缘,但是不能超出桌子的范围....问能放 ...

  3. WinForm------自定义YearMonthEdit组件

    转载: http://www.cnblogs.com/axing/p/3201066.html 注意: 1.需要在vs里面,添加一个YearMonthEdit组件,然后将链接里面的代码拷贝到里面 2. ...

  4. 用ChooseALicense帮自己选一个开源license,然后用AddALicense给自己的github自动加上license文件

    在我之前的一篇博客里面介绍过tl;drLegal ——开源软件license的搜索引擎,可以很方便的查询各种license,并且给出了很简洁的解释.今天又发现了另外一个帮助你选择你的开源软件licen ...

  5. 【JAVA - 基础】之数据加密和解密

    1.Base64工具类(可逆): import java.util.HashMap; import java.util.Map; /** * Base64加解密算法 * </p> * Ba ...

  6. <WEB>平板_手机开发_13 个处理触摸事件和多点触摸的JS 库

    触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的 Web 应用,我们需要借助浏览器的触摸事件来实线. 下图是各种触摸事件说明: 本文我们 ...

  7. [置顶] 【VB.NET2010】在空间上显示提示气泡框的方法

    在VB6中,有ToolTip这个属性,可以设置鼠标悬浮在控件上的时候显示的图像. 而,在VB.NET中,实现这个功能需要使用一个类,ToolTip类. 代码如下(为了立即起效,建议将这些代码放在For ...

  8. CSU1315:全场最水题之陈兴老师与比赛

    Description 大家都知道ACM比赛罚时很重要.比如说你做A题要10分钟,B题要15分钟,如果先做A题再做B题,那么在ranking上的时间就是10 + (10)+ 15 = 35.如果先做B ...

  9. 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波

    拉普拉斯算子进行二维卷积计算,线性锐化滤波 # -*- coding: utf-8 -*- #线性锐化滤波-拉普拉斯算子进行二维卷积计算 #code:myhaspl@myhaspl.com impor ...

  10. phpnow安装教程

    点评:搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的问题.诸如 mysql 扩展.zend 安装 ...