用户账号管理

基于账号身份对资源访问进行控制

账户类别:用户账号,组账号

识别方式:UID,GID

用户账号:超级用户root,系统用户,普通用户

组账号:用来区分权限,不用于登陆

基本组(私有组)

附加组(公有组)

用户账号分类

超级用户:即管理员root,UID为0,拥有最高系统权限

系统用户:UID范围1-499,一般不能登陆系统(/sbin[em]e188[/em]login)

普通用户:默认的UID范围500-6000

组账号分类

基本组(私有组):即每个用户专属的组。一般有一个成员,组名与对应的用户名相同

附加组(公有组):即对各用户共同的组,一般有多个成员,组名由管理员指定

————————————————————————————————————————————————

账号的存放类别

账号数据的存放:

本地账户:存储在本机磁盘中

网络账户:存储在网络上专门的服务器上

本地账户的数据文件

/etc/passwd,/etc/shadow

/etc/group,/etc/gshadow

解析用户账号文件:

/etc/passwd,保存用户账号的基本信息,每一个用户记录一行,以:分割为7个字段

[root@hydra/]#head -n 1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

字段1:用户账号的名称

字段2:密码字串或占位符x

字段3:用户账号的UID号

字段4:所属基本组的GID号

字段5:用户全名

字段6:宿主目录

字段7:登陆shell程序的路径

解析用户账号文件:

/etc/shadow,保存密码字串/有效信期等信息,每个用户记录一行,以:分割为9个字段

[root@hydra/]#head -n 1/etc/shadow

root:$6$g4l6UXBx$szBBXiQgTvK/O........6vAkyLRQkCA:17310:0:99999:7:::

字段1:用户账号的名称

字段2:加密后的密码字符串

字段3:上次修改密码的时间

字段4:密码的最短有效天数。默认0

字段5:密码过期的最长有效天数,默认99999

字段6:密码过期前的警告天数,默认7

字段7:密码过期后多少天禁用此用户账号

字段8:账号失效时间,默认值为空

字段9:保留字段(未使用)

——————————————————————————————————————————————————————————

useradd 添加用户

useradd命令

格式:useradd [选项] 用户名

常用命令选项

-u:指定UID标记号

-d:指定宿主目录,缺省为/home/用户名

-e:指定账号失效时间

-g,-G:指定所属的基本组,附加组

-M:不为用户建立并初始化宿主目录

-s:指定用户的的登陆shell

passwd设置口令

passwd命令

格式:passwd [选项] 用户名

常用命令选项

-d:清空用户密码,使之无需密码即可登陆

-l:锁定用户账号

-S:查看用户账号的状态(是否被锁定)

-u:解锁用户账号

--stdin:从标准输入(比如管道)取密码

-f:强制进行操作

————————————————————————————————————————————

用户初始配置

useradd行为配置

默认配置文件:/etc/default/useradd(对新建的账号起作用)

[root@room1pc01 桌面]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

login.defs登陆定义文件

默认配置文件:/etc/login.defs(对新创建的账号起作用)

[root@room1pc01 桌面]# grep -vE '^#|^$' /etc/login.defs

MAIL_DIR    /var/spool/mail

PASS_MAX_DAYS    99999

PASS_MIN_DAYS    0

PASS_MIN_LEN    5

PASS_WARN_AGE    7

UID_MIN              500

UID_MAX            60000

GID_MIN              500

GID_MAX            60000

CREATE_HOME    yes

UMASK           077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512

用户初始配置文件

配置文件来源:新建用户时,根据/etc/skel模板目录复制。

主要的初始配置文件

~/.bash_profile:每次登陆时执行

~/.bashrc:每次进新的Bash环境时执行

~/.bash_logout:每次退出登录时执行

全局配置文件:/etc/bashrc,/etc/profile

————————————————————————————————————————————

用户的删改查

usermod修改用户

格式:usermod [选项] 用户名

常用命令选项

-l:更改用户账户的登陆名称([root@hydra/]#usermod -l hydra1 hydra01(把改的名字写在前面)

-L:锁定用户账号

-U:解锁用户账号

-u:指定UID标记号

-d:指定宿主目录,缺省为/home/用户名

-e:指定账号失效时间

-g,-G:指定所属的基本组,附加组

-s:指定用户的的登陆shell

————————————————————————————————————————————————————————

调优(黑色艺术)

chage密码有效控制

格式:chage [选项] 用户名

让用户初次登陆需修改密码:chage -d 0 用户名

常用命令选项

-l:列出密码的有效期信息

-E:指出账号的过期时间,YYYY-MM-DD

-m:指定密码的最小天数

-M:指定密码的最大天数

——————————————————————————————————————————

userdel删除用户

格式:userdel [-r] 用户名

添加-r选项,宿主目录/用户邮件也一并删除

——————————————————————————————————————

——————————————————————————————————————

组账号管理

解析组账号文件:

/etc/group,保存组账号的基本信息

每个组记录一行,以:分割为4个字段

[root@room1pc01 桌面]# head -1 /etc/group

root:x:0:

字段1:组账号的名称

字段2:密码占位符x

字段3:组账号的GID号

字段4:本组成员用户列表

解析组账号文件

/etc/gshadow,保存组账号的管理信息

每个组记录一行,以:分割为4个字段

[root@room1pc01 桌面]# head -1 /etc/gshadow

root:::

字段1:组账号的名称

字段2:加密后的密码字符串

字段3:本组的管理员列表

字段4:本组的成员用户列表

groupadd添加组账号

格式:groupadd [-g GID] 组名

[root@hydra/]#groupadd -g 600 xx1

[root@hydra/]#grep xx1 /etc/group

stugrp:x:600:

[root@hydra/]#grep xx1 /etc/gshdow

stugrp:!::

gpasswd 管理组成员

格式:gpasswd [选项] 组名

常用命令选项

-A:定义组管理员列表

-a:添加组成员,每次只能添加一个

-d:删除组成员,每次只能删除一个

-M:定义组成员用户列表,可设置多个

groupdel删除组

格式:groupdel 组名

删除的目标组不能是用户的基本组

[root@hydra/]#griupdel xx1

[root@hydra/]#grep xx1 /etc/group

[root@hydra/]#

————————————————————————————————

Linux基础六的更多相关文章

  1. Linux基础(六) Vim之vundle插件

    背景 Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim下的几个文件夹中,插件的安装与更新与删除都需要自己手动来,既麻烦费事,又可能出现错误. Vundle简介 Vundle 是 Vim ...

  2. Linux基础六(网络管理)

    目录 一.网络配置 1. IP 地址配置 2. 网络配置文件 3. 虚拟机网络配置参数 二.网络命令 1. 网络环境查看命令 2. 网络测试命令 三.远程会话安全协议-SSH原理 1. SSH 原理 ...

  3. Linux基础知识第六讲,远程管理ssh操作

    目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...

  4. Linux基础入门

    第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...

  5. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  6. Linux基础(6)

    Linux基础(六) shell脚本中的三大循环和函数知识点 一.流程控制之if结构 1.简单的if实例: #!/bin/bash var='/etc/init.d' #var='/dev/sda' ...

  7. Linux 基础(2)

    Linux 基础(二) 用户 组 及权限的相关操作 一.useradd命令选项:–u:指定用户的UID useradd –u 100 mu #指定mu的UID为100–g:指定用户所属的群组 user ...

  8. linux 基础 文件系统 用户权限

    描述Linux系统的启动过程? 1.开机自检 BIOS 2.MBR引导 3.GRUB菜单 4.加载内核 5.运行init进程 6.从/etc/inittab读取运行级别 7.根据/etc/rc.sys ...

  9. OracleOCP认证 之 Linux基础

    Linux 基础 一.SHELL 1: Shell 简介 shell 是用户和Linux 操作系统之间的接口.Linux 中有多种shell, 其中缺省使用的是bash. Linux 系统的shell ...

随机推荐

  1. func_get_args  获取一个函数的所有参数

    func_get_args  获取一个函数的所有参数 {     $numargs = func_num_args(); //参数数量     echo "参数个数是: $numargs&l ...

  2. 【转】Matlab作图语句小结

    之前用Matlab作图,从网上找了些别人的例子,然后慢慢调参数.其实对很多命令,特别是对句柄不是很了解,今天简单总结了一下.下面用几个例子来说明:     ]);  首先,gcf是当前figure对象 ...

  3. 面向对象_03【关键字:final使用】

    final关键字:可修饰类.变量名和方法1,final修饰的类不能被继承2,final修饰的变量(成员.局部)是常量,只能赋值一次.3,final修饰的方法不能被子类重写Example:一:修饰类 / ...

  4. javase学习小结三

    格式标识符: System.out.printf("%d,%f,%5d,%-9.4f,%%,%13e",67,78.9,89,78.9,567.345); 输出结果为:67,78. ...

  5. es故障节点恢复后加入集群导致删除索引重新出现

    es的每个shard下的文件都可以看做一个完整的lucene文件,shard数据目录下的segment文件包含了索引的分片数量,副本数量.es shard可以恢复,就是因为每个shard都包含了一份数 ...

  6. 设计模式之“Decorator”注疏#02

    装饰模式在某种意义上来说也是挺原始的, 它首先需要一个你被装饰的基础类, 再来是需要一个基于这个基础类的原始包装器,可以看作是其它包装器的基础类 进而通过继承这个包装器,来构建出多个具有各自功能的特定 ...

  7. Spring学习——从入门到精通

    本文章是博主原创,转载需注明出处. 第一篇先简单入个门--通过Spring创建对象 开发环境为Myeclipse2013,JDK版本为1.6,不要嫌它老,新知识都是在旧知识的基础上建立起来的,所谓基础 ...

  8. [Python Study Notes]批量将ppt转换为pdf v1.0

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  9. iOS 应用开发,用户密码存储技术--KeyChain

    文/清雪飘香(简书作者)原文链接:http://www.jianshu.com/p/c41525172aee著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 这次的Xcode 事件,让我 ...

  10. [php]通过http post发送json数据

    function http_post_data($url, $data_string) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); ...