用户和权限管理

一、用户

Linux中用户是资源获取的标识符,资源分配,文件系统安全权限模型的核心要素之一。密码则是用户认证的凭证,用户信息和密码信息都存放在相应的文本文件中,密码信息在存放的过程用了一定的加密算法进行加密。  

1.加密算法:

资源分派:   

Authentication:认证(确认身份,也有可能好几个人一个身份)    

用户名+口令验证     

Authorization:授权(对文件操作)      

Accouting|Audition:审计(根据日志判断操作)               

加密方法(计算速度快,可以破解一切密码):

对称加密(DES,3DES,):加密和解密都是用同样秘钥,叫做对称加密

公钥加密(DSA,RSA):私钥和公钥。

私钥加密(认证用户),公钥解密。

单向加密:比较二次数据可以得知数据是否被修改

雪崩效应(蝴蝶效应):初始条件的细小改变,会导致数据的巨大变化

定长输出:

不可逆:

MD5:信息摘要,128bits定长输出

SHA1:安全的hash算法,160bits

SHA224: 224bits

SHA256: 256bits

SHA384: 384bits

SHA512: 512bits

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

  显示当前的加密算法 authconfig –test | grep hashing

diff 逐行比较两个文件的内容,列出两个文件之间不同。

    man sslpasswd (此命令可以自己按照加密方式得到密码,但是支持MD5加密算法)

openssl passwd -1 -salt 123456789  (用MD5加密,然后在密码中加了123456789字符作为盐,用来保证相同密码加密的MD5码不相同)

2.相关存放信息文件有:   

/etc/passwd  用户信息表,存放NAME、UID、GID、COMMENT、HOMEDIR、TYPE  SHELL    

/etc/shadow 用户密码信息表,存放加密后的密码,密码修改相关时限    

/etc/group 组信息表,存放GROUPNAME、GID、其他将此组当做附加组的用户名      

/etc/gshadow 组密码表,存放GROUPNAME、加密密码、其他将此组当做附加组的用户名       

3.相关环境配置文件:    

/etc/login.de 控制创建用户时系列参数      

/etc/default/useradd   也是控制创建用户时的系列参数      

/etc/shells 当前系统中存在的shell类型       

etc/skel   创建用户家目录时里面的文件的来源

4.Linux安全上下文(security context)

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

以进程发起者的身份运行:(是由root和mage决定的,不是cat决定,这两者执行cat的权限是不一样的)

root: /bin/cat

mage: /bin/cat

进程所能够访问资源的权限取决于进程的运行者的身份,而不是进程所有者的身份

组的类别

一个账号可以加入多个组,一个组也可以包含多个用户

例如:

group1:wang,mage,li

group2:wang,li

Linux组的类别:

用户的主要组(主组):(一个用户在创建的时候必须要指定一个组)

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

组名同用户名,且仅包含一个用户:私有组

这是默认的,新建一个用户,就会产生和用户同名的组,有且仅有一个

用户的附加组(辅助组,secondary group):

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

前提:进程有属主和属组;文件有属主和属组

(1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者

(a) 进程的发起者,同文件的属主:则应用文件属主权限

(b) 进程的发起者,属于文件属组;则应用文件属组权限

(c) 应用文件“其它”权限

5./etc/passwd 用户信息文件详解

文件格式:

NAME:X:UID:GID:COMMENT:HOME:SHELL

NAME:用户名

X  :用户密码占位符,以前用户密码存放在这里(pwconv,pwunconv。这两个命令可以将密码重新导入这里或者到导出回/etc/shadow)

UID:User IDentfie 

用户识别码,每个用户唯一的识别码,Linux系统识别用户不通过NAME来识别,是通过UID识。

根据UID的数字,将用户分为两类:

65535

管理员用户:UID(0)

普通用户:

系统用户:UID (1-499)CentOS 6

UID (1-999)CentOS 7

普通用户:UID (500+) CentOS 6

UID (500+) CentOS 7

GID:Group IDentfie

基本组GID,每个用户都有一个基本组,这个基本组可以不是唯一的。基本组GID也分为同UID一样分为两类,具体分组见上面。

COMMENT:注释信息,就finger USERNAME 得出的信息。

HOME:用户的家目录路径

SHELL:shell类型

/etc/group  存放组信息表

格式:  GROUPNAME:X:GID:附加组

GROUOPNAME: 组名

X : 组密码占位符

GID:组GID

附加组:其他用户以这个组为附加组的用户名

vigr 修改配置文件时,格式不对会提醒

/etc/passwd 存放密码的信息表

格式: login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

login name : 用户名

encrypted password:加密密码

date of last password change:最近修改密码的时间,从1970年1月1日

minimum password age:最小的修改密码时间

maximum password age:密码最长能使用的时间

password warning period:距离过期的警告时间

password inactivity period:非活动区间(账号一登陆就需要修改密码)

account expiration date: 账户有效期

vipw 修改配置文件时,格式不对会提醒

pwck 检查/etc/passwd 文件格式是否存在错误

/etc/gshadow

group name :组名

encrypted password:群组加密密码

administrators :组管理员

members :组成员

grpck 检查/etc/gpasswd 文件格式是否存在错误  

pwck和grpck

用户创建:

用户创建方式之一:useradd 命令

useradd 

-u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs

-o 配合-u 选项,不检查UID的唯一性

-g GID:指明用户所属基本组,可为组名,也可以GID

-c "COMMENT":用户的注释信息

-d HOME_DIR: 以指定的路径(不存在)为家目录

-s SHELL: 指明用户的默认shell程序可用列表在/etc/shells文件中

-G GROUP1[,GROUP2,…]:为用户指明附加组,组必须事先存在

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

-r: 创建系统用户 CentOS 6: ID<500, CentOS 7: ID<1000

默认值设定: /etc/default/useradd文件中

显示或更改默认设置:

useradd -D

useradd –D -s SHELL

默认配置文件

/etc/default/useradd

/etc/skel/*

/etc/login.defs

批量创建用户:

newusers PASSWD.TXT

PASSWD.TXT 的格式必须是/etc/passwd 下面的格式

chpasswd 批量修改用户口令

cat SHADOW.TXT |  chpasswd  

SHADOW.TXT 的格式:

ACCOUNT:明文密码

修改用户属性:

usermod

-u UID: 新UID

-g GID: 新基本组

-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;

-s SHELL:新的默认SHELL;

-c 'COMMENT':新的注释信息;

-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项

-l login_name: 新的名字;

-L: lock指定用户,在/etc/shadow 密码栏的增加 !

-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉

-e YYYY-MM-DD: 指明用户账号过期日期;

-f INACTIVE: 设定非活动期限;

chage [OPTION]… LOGIN

-d LAST_DAY

-E, –expiredate EXPIRE_DATE

-I, –inactive INACTIVE

-m, –mindays MIN_DAYS

-M, –maxdays MAX_DAYS

-W, –warndays WARN_DAYS

–l,显示密码策略

下一次登录强制重设密码

chage -d 0 tom

chage -m 0 –M 42 –W 14 –I 7 tom

chage -E 2016-09-10 tom

用户相关的其它命令

chfn 指定个人信息

chsh 指定shell

删除用户:

userdel

-r: 删除用户家目录;

设置用户密码:

passwd

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-n mindays: 指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限;

–stdin:从标准输入接收用户密码;

echo "PASSWORD" | passwd –stdin USERNAME

用户组相关信息:

groupadd [OPTION]… group_name

-g GID: 指明GID号; [GID_MIN, GID_MAX]

-r: 创建系统组;

修改和删除组

组属性修改: groupmod

groupmod [OPTION]… group

-n group_name: 新名字

g GID: 新的GID;

组删除: groupdel

groupdel GROUP

更改组密码

组密码: gpasswd

gpasswd [OPTION] GROUP

-a user: 将user添加至指定组中;

-d user: 从指定组中移除用户user

-A user1,user2,…: 设置有管理权限的用户列表

newgrp命令:临时切换基本组;

如果用户本不属于此组,则需要组密码

更改和查看组成员

groupmems [options] [action]

-g, –group groupname 更改为指定组 (只有root)

-a, –add username 指定用户加入组

-d, –delete username 从组中删除用户

-p, –purge 从组中清除所有成员

-l, –list 显示组成员

groups 显示用户组信息

显示用户相关信息:

id 

-g, –group   仅仅显示有效GID

      -G, –groups  显示所有组的GID

-n, –name 

              print a name instead of a number, for -ugG

       -r, –real

              print the real ID instead of the effective ID, with -ugG

       -u, –user

              print only the effective user ID

        finger

原创文章,作者:fighter,如若转载,请注明出处:http://www.178linux.com/28892

(0)
fighterfighter
上一篇 2016-08-05
下一篇 2016-08-05

相关推荐

  • 程序包管理之rpm

    程序包管理器不同公司的发行版:                         debian:dpt管理器 &…

    Linux干货 2016-08-22
  • Linux基础指令(1)

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及相关实例演示  文件管理工具:cp mv rm cp命令 : 单源复制: cp [option]… [-T]  SOURCE DEST     -bash-4.1# …

    Linux干货 2016-11-09
  • N25-第1周博客作业

    计算机概述及命令 一、计算机原理及其组成功能 计算机作为一个整体,由软件和硬件两大部分组成:  (1)计算机硬件系统。        计算机的硬件系统结构有哈佛结构和冯·诺伊曼结构两种。 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内…

    Linux干货 2016-12-03
  • linux下的文件查找命令对比(locate,find,grep,sed)

        在linux下,文件系统占据着非常重要的位置,而我们对于文件系统的操作也显得尤为重要。 如果我们想熟悉的操作文件系统,其中,我们需要对文本的查找,截取等命令需要熟悉的掌握。 这里就不得不说几个关于文本操作的几个命令的作用详细介绍和对比。比如: locate,find ,grep ,sed等。 这里,grep ,…

    Linux干货 2016-08-15
  • vim练习题

    #复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符vim /tmp/profile%s@^[[:space:]]+@@g#复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号vim…

    Linux干货 2017-06-03
  • lvm逻辑卷管理

    lvm逻辑卷管理: 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统,将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的 在物理卷上创建的逻辑卷是由物理区域(PE)组成 可以在逻辑卷上创建文件系统 创建: 创建物理卷: pvcrea…

    Linux干货 2016-09-01