用户、组和权限

安全3A资源分派

(authentication)认证

(authorization)授权

(accounting)审计

user( 用户)

Linux用户:Username/UID   (用户的名称和用户的UID)

管理员:root,0   管理员的UID是0  (一般系统默认root为管理员,用户UID为0的都可以作为管理员)

普通用户:1-65535

普通用户分为两种:

系统用户:1-499(CentOS6),1-999(CentOS)

对守护进程获取资源进行权限分配

登录用户:500+(CentOS6),1000+(centos7)

通过交互式交互式登录

【用户是UID、组是GID】

group(组)一些用户或组的集合 称之为组

Linux组:Groupnname/GID   (组的名称和组的GID)

管理员组:root,0  管理员组的GID是0

系统组:1-499(centos6) 1-999(centos7)

普通组:500+(centos 6) 1000+(centos 7)

对于一个普通用户而言可以有多个不同的组,分别称之为用户的基本组(主组)和附加组;基本组

组名与用户名相同,切仅仅包含一个用户,也叫私有组。基本组以外的组属于用户的附加组

例如:[root@MKB ~]# cat /etc/passwd

执行结果:root:x:0:0:root,chfn,xiaomage,sdad:/root:/bin/bash

格式:(用户名:密码:UID:GID:主组,附加组:家目录:用户默认的shell)

Linux组的类别

用户的主要组称为(主组):

用户必须属于一个并且只有一个主组

组名同用户名,且仅包含一个用户称为(私有组)

用户的付加组称为(辅助组):

一个用户可以属于零个或者多个辅助组

例如: ~]# groups   (查看当前所在组)

执行结果:  root

例如: ~]# groups bin(查看用户主组,有没有附加组)

执行结果:   bin : bin daemon sys   (用户):(主组)(附加组)

例如: ~]# id bin  (显示指定用户或当前用户的用户与组信息)

执行结果 : uid=1(bin) gid=1(bin) groups=1(bin),2(daemon),3(sys)                                        (用户)(主组)    组的列表= 主组,辅助组,附加组

例如: ~]# id -u makangbo  (仅显示有效用户ID)

执行结果:500    (命令加选项,用户id)

例如:  ~]# getent passwd makangbo (查看家目录的路径信息)

makangbo:x:500:500::/home/makangbo:/bin/bash

(用户名:密码:UID:GID:用户注释信息:用户的家目录:用户默认的shell)

security context (安全上下文)

运行中的程序:进程(process)

以进程发起者的身份运行:例如# root:/bin/cat

例如# xiaomag:/bin/cat

进程所能访问资源的权限取决于进程的运行者的身份

而不是取决于资源的所有者 (人不一样权限不一样,跟程序无关)

Linux用户和组的主要配置文件:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)

/etc/group:组及其属性信息

/etc/shadow:用户密码及其相关属性

/etc/gshadow:组密码及其相关属性

~]# pwunconv  (密码从shadow转换到passwd)

~]# pwconv   (密码不转换)

passwd 文件格式  (用户及其属性信息)

login name:登录用户名(xiaomage)

passwd: 密码 (x)

UID:用户身份编号(1000)

GID:登录默认所在组编号(1000)

GECOS:用户全名或注释

home directory:用户主目录(/home/xiaomag)

shell:用户默认使用shell(/bin/bash)

例如:~]# cat /etc/passwd

执行结果:xiaomage:x:3010:3010::/home/xiaomage:/bin/bash

格式:(用户:密码:UDI:GID:用户全名或注释:家目录:当前所用的shell)

shadow 文件格式  (用户密码及其相关属性)

登录用户

用户密码:一般用sha512加密

从1970年1月1日起到密码最近一次被更改的时间

密码再过几天可以被变更(0表示随时可被变更)

密码再过几天必须被变更(9999表示永不过期)

密码过期前几天系统提示用户(默认为一周)

密码过期几天后帐号会被锁定

从1970年1月1日算起,多少天后帐号失效。

例如:~]# cat /etc/shadow

执行果结果:xiaomage:$6$3C3XJDxs$2sUoIOWp3IoHu6jzz3lXVVCmUcq.ABX8LQv/YywLSFWhowlmN1eWKWUWmkl.HQ.gYufi030F3m0XnfE9jLslo/:17015:0:99999:7:::

格式   (用户名:加了密的密码:最近一次更改密码的日期:密码的最小使用期限:密码的最大使用期限:提示密码警告时间段:密码禁用期:账户过期日期:保留字段)

密码的加密解密机制

加密:明文- 密文

解密: 密文- 明文

单项加密:哈希算法,原文不同,密文必不同

相同算法定长输入,获取密文不可逆推原始数据

雪崩效应:初始条件的卫校改变,引起结果的巨大改变

sha256:256bits

sha512:512bits

更改加密算法 authconfig --passalgo=sha256 --update

group文件格式   (组及其属性信息)

群组名称

群组密码:通常不设定,密码是被记录在/etc/gshadow

GID:就是群组的ID

以当前组为附加组的用户列表(分隔符为逗号)

例如:~]# cat /etc/group

执行结果   bin:x:1:bin,daemon

格式    (组名称:组密码:组GID:当前组为组的附加组用户列表,以逗号分隔开)

gshdow文件格式    (组密码及其相关属性)

群组名称

群组密码

组管理员列表:组管理员列表,更改组密码和成员

以当前组为附加组的用户列表:(分隔符为逗号)

文件操作

vipw和vigr  (编辑密码、组、影子密码或影子组文件)

pwck (检查密码的完整性)

grpck(检查组组文件的完整性)

vipw, vigr - 编辑密码、组、影子密码或影子组文件。

vipw [选项]

vigr [选项]

描述 vipw 和 vigr 命令分别编辑 /etc/passwd 和 /etc/group 文件。使用 -s 标识时

,将编辑这些文件的影子版,即分别为 /etc/shadow 和 /etc/gshadow。这些程序

将设置相应的锁,以防止文件损坏。寻找编辑器时,首先尝试环境变量 $VISUAL,

然后是环境变量 $EDITOR,最后是默认编辑器 vi(1)。

选项:

-g, --group

编辑 group 数据库。

-h, --help

现实帮助信息并退出。

-p, --passwd

编辑 passwd 数据库。

-q, --quiet

安静模式。

-R, --rootCHROOT_DIR

适用于chroot_dir目录的变化和使用从chroot_dir目录的配置文件。

-s, --shadow

编辑 shadow 或 gshadow 数据库。

pwck (检查密码的完整性)

用户管理命令

useradd (增加用户)

usermod (修改用户)

userdel  (删除用户)

组帐号维护命令

groupadd (建立组)

groupmod (修改组)

groupdel (删除组)

useradd - 创建一个新用户或更新默认新用户信息

useradd [选项] 登录

useradd -D

useradd -D [选项]

描述

如果使用时不带 -D 选项,useradd 命令使用命令行上指定的值和系统的默认值创

建一个新用户。根据命令行选项,useradd 命令也会更新系统文件和创建新用户的

主目录并复制初始文件。

默认上,也会为用户创建组

-u, --uidUID

用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负

,默认使用大于等于 UID_MIN,且大于任何其他用户 ID 最小值。

-o, --non-unique

允许使用重复的 UID 创建用户账户。

此选项只有和 -u 选项组合使用才有效。

-g, --gidGROUP

用户初始登陆组的组名或号码。组名必须已经存在。组号码必须指代已经存在

的组。    指明用户所属基本组,可为组名也可为GID

-c, --commentCOMMENT

任何字符串。通常是关于登录的简短描述,当前用于用户全名。 用户注释信息

-d, --home-dir HOME_DIR

以指定的路径(不存在)为家目录

-s, --shellSHEL

指明用户的默认shell程序;可用在列表/etc/shell 文件中

-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]

为用户指明附加组,组必须事先存在

受到了 -g 选项给定的组同样的限制。

-N, --no-user-group

不创建私用组做主组,使用users做主组

-r, --system

创建系统用户

-m, --create-home

如果不存在,则创建用户主目录。骨架目录中的文件和目录(可以使用 -k 选

项指定),将会复制到主目录。

练习:1

创建testuser uid 1234,主组:bin,辅助组:root,ftp,shell:/bin/csh home:/testdir/testuser

#useradd testuser -u 1234 -g bin -G root,ftp -m -d home/testdir/testuser -s /bin/csh

(命令选项加家目录名称)(加选项-u创建UID)(-g创建主组) (-G创建附加组)(-d创建家目录路径-  m配合-d使用具体的看上面选项)

usermod (修改用户)

usermod [选项] 登录

描述   usermod 修改系统账户文件和在命令行上指定的相关更改。

-c, --commentCOMMENT   ('xiaomage')

用户密码文件中注释字段的新值。通常使用 chfn(1) 工具对其进行修改。新的注释信息              -u, --uidUID

用户 ID 的新数值。

这个值必须是唯一的,除非使用了 -o 选项,必须是非负值。

-g, --gidGROUP

新基本组GID   用户的新初始登录组的组名或数字代号。此组必须存在。

用户主目录中,属于原来的主组的文件将转交新组所有。

G, --groups GROUP1[,GROUP2,...[,GROUPN]]]

新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append(附加,贴上)

-s, --shellSHELL

用户的新登录 shell 的名称。将此字段设置为空会让系统选择默认的登录 shell

-d, --homeHOME_DIR

新家目录不会自动创建,原家目录的文件不会移动至新家目录;

若要创建新家目录并移动原家目录数据,同时使用-m选项。

-m, --move-home

将家目录内容移至新位置 (仅于 -d 一起使用)

-l, --loginNEW_LOGIN

修改为新的名字

-L, --lock

指定用户名字,在/etc/shadow,密码栏中增加!字符进行锁定

-U, --unlock

指定用户,在/etc/shadow,密码栏中删除!字符  进行解锁                                     -e, --expiredateEXPIRE_DATE

指明 用户账户将过期的日期。日期以 YYYY-MM-DD 格式指定。

-f, --inactiveINACTIVE

密码过期之后,账户被彻底禁用之前的天数。

0 表示密码过期时,立即禁用账户;-1 表示不使用这个功能。

此选项需要一个 /etc/passwd 文件。

userdel  (删除用户)

userdel [选项] 登录

描述   userdel 修改系统账户文件,删除与用户名 LOGIN 相关的所以项目。给出的用户

名必须存在。

-r, --remove   删除用户家目录

用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中

的文件必须手动搜索并删除。

练习:2

修改testuser uid:4321,主组:root,辅助组:nobody, loginname:test,home:/home/test 家数据迁移

~ ]# usermod -u 4321 -g root -G nobody -l test -m -d /home/test testuser

(命令加-u选项修改UID)(-g修改主组 -G改新家目录)(-l改附加组) (-d创建新家目录-m般原始数据迁移到新家目录)(原家目录)

练习:3

批量创建帐号:user1...user10  uid:3000-3009,shell:/bin/csh,home:/testdir/username

passwd:usernamepass

注意家目录相关配置,使用户正常登录

先来创建用户

]# vim u.txt 用编辑器 编辑一个自定义名称的txt文档  文档格式看下面

]# cat u.txt    查看文档的内容

user:x:3000:3000::/home/testdir/user:/bin/csh

user1:x:3001:3001::/home/testdir/user1:/bin/csh

user2:x:3002:3002::/home/testdir/user2:/bin/csh

user3:x:3003:3003::/home/testdir/user3:/bin/csh

user4:x:3004:3004::/home/testdir/user4:/bin/csh

user5:x:3005:3005::/home/testdir/user5:/bin/csh

user6:x:3006:3006::/home/testdir/user6:/bin/csh

user7:x:3007:3007::/home/testdir/user7:/bin/csh

user8:x:3008:3008::/home/testdir/user8:/bin/csh

user9:x:3009:3009::/home/testdir/user9:/bin/csh

]# newusers u.txt  (新增用用户的命令,新增文档内的用户)

~]# ll /home/testdir/ (查看路径是否成功)

总用量 40

drwx------. 2 user  user  4096 8月   2 19:58 user

drwx------. 2 user1 user1 4096 8月   2 19:58 user1

drwx------. 2 user2 user2 4096 8月   2 19:58 user2

drwx------. 2 user3 user3 4096 8月   2 19:58 user3

drwx------. 2 user4 user4 4096 8月   2 19:58 user4

drwx------. 2 user5 user5 4096 8月   2 19:58 user5

drwx------. 2 user6 user6 4096 8月   2 19:58 user6

drwx------. 2 user7 user7 4096 8月   2 19:58 user7

drwx------. 2 user8 user8 4096 8月   2 19:58 user8

drwx------. 2 user9 user9 4096 8月   2 19:58 user9

~]# cat /etc/passwd   (查看用户信息)

user:x:3000:3000::/home/testdir/user:/bin/csh

user1:x:3001:3001::/home/testdir/user1:/bin/csh

user2:x:3002:3002::/home/testdir/user2:/bin/csh

user3:x:3003:3003::/home/testdir/user3:/bin/csh

user4:x:3004:3004::/home/testdir/user4:/bin/csh

user5:x:3005:3005::/home/testdir/user5:/bin/csh

user6:x:3006:3006::/home/testdir/user6:/bin/csh

user7:x:3007:3007::/home/testdir/user7:/bin/csh

user8:x:3008:3008::/home/testdir/user8:/bin/csh

user9:x:3009:3009::/home/testdir/user9:/bin/csh

以上就是创建用户成功了

账户都有了但是没有密码,这就不正常了,下面要批量创建密码

~]# vim m.txt 用编辑器 编辑一个自定义名称的txt文档 上面已经有个用户的文档了,

尽量不要搞重名的文档,不然会报错  文档格式看下面

~]# cat m.txt    查看文档内容

user:userpass

user1:user1pass newusers

user2:user2pass

user3:user3pass

user4:user4pass

user5:user5pass

user6:user6pass

user7:user7pass

user8:user8pass

user9:user9pass

文档创建成功 ,接下来读取

~]# cat m.txt |chpasswd   (把文档用管道符 传给设置密码的命令)

~]# cat /etc/shadow     (查看用户密码及其相关属性)

user1:$6$9RYuW/M8iMIv$e5rTqpt4bPWycu9dflgmlmTxqsC5V9KVF.IvANn16YxI.QC3gRII7zXdBnEDOiiKY70SxtDeqeA/i76RgMSFh.:17015:0:99999:7:::

user2:$6$gmd.k/BQ$1Ql1A6PNP7EVG.BVfinrZYsO0vDpyuk8mp7pGkE.tkHdIQQcjQqfeI4JjtnTq5VSi.OmCy9/TvxscuYazQxy71:17015:0:99999:7:::

user3:$6$iUyAeZuXLR/Sn$Oyg98sTOyQL49LOv1.xPg4sjj6nrOHtPzIza8rXn9LFzsTg2Nfo/lODx5SKrbp9ymlZq3eBRcERoWvn8x7ptx/:17015:0:99999:7:::

user4:$6$WgQDi/WewTe$ajT38DDqkSdhTMkvdAW8koAqiWe85jo8CtrunpVu3mcF7HleO6Qr3W1u2hLkrPzPr2rAOL5F63PV7JmdzNXn70:17015:0:99999:7:::

user5:$6$RpHcooAEzPWfXE$K2enpej7BLJptsBVfgrEnhKIYVNtWHEqF5kEb450QfQ7RvGcSvyIxFhUrfz3APU68McEIlFpVR4Hj2jN/WK7J.:17015:0:99999:7:::

user6:$6$VNZIrZd/$ANJbrUlG62NKiuxM5SmiMx8.NGwdcQYcFOHbXzbIMAw1LO8DZmSoXoHvvObMaVmVd4U4MjT.JrDQRBZF5ZAqE/:17015:0:99999:7:::

user7:$6$oR0Alfvtp$2ZC6f8O3A09sc.eXZXpo3DPRnLLBWmY5AOG7mRXPwc50xg/jmmlEifLYh/mres8K9Q3VMjr.Cr9MSszcENEZT0:17015:0:99999:7:::

user8:$6$QVxA9n13$ShUI1NGBOOI5DsLcZXpUsUHPTMqIcWDn9C5aZlklrkstopXD8/ToJwvDzgj5wxF8YOXgq5XLOcVRHaY7HPoUA.:17015:0:99999:7:::

user9:$6$eWpxt/KyUX1FmNgB$ByklE1y2ESnglrfvPpOYxoaJZnIhgs/jmj4empwc.T1qILZP11zwCwNyaCBMT/3A9DBNQdIU8QP4Fvro4QLTr1:17015:0:99999:7:::

这就是成功了,当然密码经过加密了。

下面找一个没设置密码的做对比:test:!!:17015:0:99999:7:::    看格式对比就行了

关于UID和GID的创建、修改、删除;简要举例的更多相关文章

  1. Linux创建修改删除用户和组

    Linux 创建修改删除用户和组 介绍 在日常的维护过程中创建用户操作用的相对会多一些,但是在这个过程中涉及到的知识点就不单单就是useradd了,接下来就来详细了解账号管理的相关信息. 用户信息 先 ...

  2. oracle11g创建修改删除表

    oracle11g创建修改删除表 我的数据库名字: ORCL         密码:123456 1.模式 2.创建表 3.表约束 4.修改表 5.删除表 1.模式 set oracle_sid=OR ...

  3. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...

  4. Linux 创建修改删除用户和组

    200 ? "200px" : this.width)!important;} --> 介绍 在日常的维护过程中创建用户操作用的相对会多一些,但是在这个过程中涉及到的知识点就 ...

  5. Linux基础学习-用户的创建修改删除

    用户添加修改删除 1 useradd添加用户 添加一个新用户hehe,指定uid为3000,家目录为/home/haha [root@qdlinux ~]# useradd -u 3000 -d /h ...

  6. ElasticSearch.net NEST批量创建修改删除索引完整示例

    本示例采用Elasticsearch+Nest 网上查了很多资料,发现用C#调用Elasticsearch搜索引擎的功能代码很分散,功能不完整,多半是非常简单的操作,没有成型的应用示例.比如新增或修改 ...

  7. MySQL入门很简单: 4 创建 修改删除表

    1. 创建表的方法 1)创建表的语法形式 首先,选择数据库: USE 数据库名: 创建表: CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件 ...

  8. SQL Server 创建 修改 删除数据表

    1. 图形界面方式操作数据表 (1)创建和修改数据表 列名中如果有两个以上单词时,最好用下划线连接,否则可能会给将来的查询维护带来不便.我们公司美国佬做的数据库就很烦,所有列名都有空格,一旦忘记用方括 ...

  9. MySQL进阶16 - 视图的创建/修改/删除/更新--可更新性的不适用条件

    #进阶16 : 视图 /* 含义: 虚拟表,和普通表一样使用;(从5.1开始使用的:)是通过表动态生成的数据 创建语法: create view 视图名 as 查询语句; ---------- 作用: ...

随机推荐

  1. C语言处理xml文件的库

    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...

  2. Woodbury matrix identity

    woodbury matrix identity 2014/6/20 [转载请注明出处]http://www.cnblogs.com/mashiqi http://en.wikipedia.org/w ...

  3. Ubuntn系统忘记密码的解决方法(虚拟机下同样处理)

    不知道你有没有遇到过忘记了ubuntn系统密码的情况,反正我都了,一段时间没用就很容易忘记密码的,此时无奈只能修改密码了!下面分享一个简单实用的方法: 版本号为: (我用的是V-BOX虚拟机安装的ub ...

  4. 重写ScrollView 解决ScrollView嵌套viewpager事件冲突

    import android.content.Context; import android.util.AttributeSet; import android.view.GestureDetecto ...

  5. bs结构socket(udp)通信

    以前我所做的基于socket通信都是采用cs结构,现公司有一个项目需要在bs中反控设备,于是研究了一番,现将成果公布,方便以后查阅. 服务端: #region udp int recv; byte[] ...

  6. SQL Server Profiler工具

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...

  7. linux shell:mysql bin_log定期清理脚本

    需求: 1.自动处理mysql bin日志脚本 2.输出可读log 3.保留1周的日志 4.对所有数据库统一处理.   实现过程描述:   思路:两种方式实现 1.mysql目录通过ls获取bin日志 ...

  8. CSS3 旋转代码备忘

    .Aclose { -webkit-transition-property: all; -webkit-transition-duration: .3s; -moz-transition-proper ...

  9. python反射的妙用

    反射的简单含义: 通过类名获得类的实例对象 通过方法名得到方法,实现调用 实例: import sys class Webserver(object): def __init__(self,host, ...

  10. bzoj4130: [PA2011]Kangaroos

    Description 定义两个区间互相匹配表示这两个区间有交集. 给出长度为N的区间序列A,M次询问,每次询问序列A中最长的连续子序列,使得子序列中的每个区间都与[L,R]互相匹配 N<=50 ...