用户组和权限

用户、组和权限

 

资源分派

      Authentication   认证

      Authorization    授权

      Accouting|Audition  审计

 

认证:验证用户的身份,验证你是张三 还是李四

授权:确认了身份之后才考虑授权,给用户大的权限还是小的权限,允许你还是拒绝你。

权限分为很多种,比如说文件是否可读、可写。

审计:所谓审计就是监控,可以对系统的使用情况做日志。

认证

linux中通常用用户名和口令来验证用户的身份。

 

用户user

令牌 token identity

Linux用户  username/UID

管理员     root  0

普通用户   1-65535

系统用户   1-499CENTOS6)  1-999对守护进程获取资源进行权限分配

登录用户   500CEENTOS6+  ,  1000+  交互式登录

在计算机中,如果你通过了验证,用户就拿到了令牌,系统就认为你是某个人,然后权限就有了,就可以去访问各种资源了。

令牌如何得到呢?需要用户在登录的时候输入正确的用户名和密码来实现的。

系统用户启动就会运行,不需要登录。

 

group

Linux组  groupname/GIO

管理员组  root   0

普通组: 500+   1000+

      系统组   1-499   1-999

      

linux中允许组和用户同名,这跟windows中是有差别的。

Security  context 安全上下文

     运行中的程序:进程  process

     以进程发起者的身份运行:

            Root  /bin/cat

            Mage  /bin/cat

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

 

linux中,当用户去运行程序的时候,用root登录,运行/bin/cat程序,那么该命令再去访问某些文件,但是该文件设置了访问权限。用户就会收到该文件的控制。当用户去访问该文件的时候,该文件的权限也是这个访问用户的权限。

谁去运行一个程序,那么得到的权限就是由这个人而决定的。而和进程本身无关。

用户通过进程来访问某个文件的时候,用户得到的权限是由进程运行者的身份来决定的。

 

Primary group  主组

     用户的主要组(主组):

           用户必须属于一个且只有一个主组。组名同用户名,且仅包含一个用户。

一个账号可以属于多个组,但是用户必须要属于一个组,那就是主组。事实上当用户在创建的时候会自动的指定一个组做主组,而且这个主组是必须有的。其中一个是主组,那么其他组自然也就成了辅助组。

 

Secondary group 附加组

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

辅助组是可以有也可以没有的。主组是必须要有的。并且有且只有一个。

主组可以理解成一个人的身份。

如何去查看一个用户属于什么组呢?

用“id”命令查看

用户组和权限 

linux中默认主组的用户名和用户是同名的。换句话说就是创建一个张三,就会有一个张三组。

 

用户和组的配置文件

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

       Username :x: uid : gid :comment : home : shell

       /etc/group     组及其属性信息

       Groupname : x : gid :groupmember

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

       Groupname : password : password age : min :max :warn : inactive : usernameage :

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

           Groupname : password : groupadmin : groupmember

 

前两个是关于用户和组的配置文件

后两个是关于用户和组的口令文件

Passwd

我们现在讲的passwd是一个文本文件。而不是二进制可执行程序。只不过名字相同罢了。

 用户组和权限

用户组和权限 

是一个文本文件,里面描述了用户的登录账号和用户信息。对于所有人都有读的权限。但是对于其他用户是不能写的,只有超级管理员才能写。

cat  /etc/passwd  查看用户及属性信息

Pwunconv   显示用户口令,不过是加密的

Pwconv     隐藏用户口令

zzdx 1000 1000 zzd /home/zzd /bin/bash

Zzd   用户名

X     口令

1000  UID

1000  所属主组的ID

zzd   描述,有没有无所谓。可以自己加。

/home/zzd  家目录

/bin/bash   $SHELL类型   “chsh  -s  /bin/bash用户” 此命令可以修改$SHELL类型

Getent  passwd想当于cat /etc/passwd查看用户类型

口令文件   

cat  /etc/shadow   只能root用户去查看,普通用户查看不了

用户组和权限 

$6表示sha512加密方式  在centos5中是$1表示md5128位)加密方式

Cat/etc/group

Groups 用户名   查看用户属于哪个组

Root :x:0:

Root    组名

X       组口令

0       ID

:      组成员  一般来讲是辅助组。

默认情况下,当一个用户创建文件的时候,这个文件的所有者就是这个用户,所属组就是这个用户的主组,而不是辅助组。

Newgrp  组名   可以切换主组辅助组,但是该命令是临时的,当重新登录时,又会回到原        来的组里。                                                                                                         

用户组和权限 

切换所属组需要知道切换组的密码,但是系统默认是不设密码的,所以无法切换。

组的口令是放在 /etc/gshadow文件中的。可以用cat命令查看并做设置。

用户组和权限 

Bin   组名

:   组的口令

:   bin组管理员的用户账号  默认情况下是空的,代表着只能root管理员能做设置。

Bindaemon  组成员

gpasswd  组名   对组进行设口令

用户组和权限 

密码加密

     加密   明文    密文

     解密   密文    明文

   单向加密  哈希算法  原文不同  密文必不同

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

           雪崩效应  初始条件的微小改变,引起结果的巨大改变

           Md5      128bits

           Sha1      1690bits

           Sha224    224bits

           Sha256    256bits

           Sha384    384bits

           Sha512    512bits

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

密码复杂性策略

使用数字  大写字母   小写字母及特殊字符中至少3

足够长

使用密码

定期更换  不要使用最近使用过的密码

 

 

安全修改配置文件的命令

Vipw = vi  /etc/passwd

vigr =vi  /etc/group

pwckgrpck  检查修改完成后的配置文件语法是否错误。

Vipwvigr都具有语法检查功能,当修改配置文件时出现错误,系统会自动报警。比nono修改要安全的多。

 

 

用户和组管理命令

      用户管理命令    useradd    usermod    userdel

      组账号维护命令  groupadd   groupmod   groupdel

 

Uesradd    创建新用户或更新新用户的信息

用户组和权限  

但是该用户默认是没有口令的

用户组和权限 

上图中“!!”表示禁止登陆。如果没有密码并且允许登录,“!!”位置是空的。可以用nano进行修改,删除“!!”。

可以用命令usermod  -L  用户名  进行对“!!”的添加。  加锁

可以用命令usermod  -U  用户名  进行对“!!”的删除。  解锁

-u  指定用户ID

用户组和权限 

用户组和权限 

-o  配合-u使用,不提示ID的唯一性,也就是数一个ID号可以有两个用户,且两个用户权限一样。注意:配合使用时-o要写在-u前面,位置不能变,也就是-ou

-g  可以给用户指定一个现成的主组,不用再新创建和自己同名的主组。

 用户组和权限

-G  可以给用户指定一个或几个现成的辅助组

下图中并没有为用户指定主组,所以用户主动创建了一个叫zhao的主组。

用户组和权限 

-N  不创建私有组作为主组,使用users作为主组。

用户组和权限 

– d  为用户指定家目录  但是指定的路径中的文件夹必须是不存在的,否则会报错

 用户组和权限

– s  指定用户$SHELL类型

用户组和权限 

如果账号是给系统用的,建议设置一个特殊的属性,叫系统属性。让该账号成为系统账号。使用选项“-r”,“-r”表示该账号是个系统账号,其将来的ID1000以内的。

用户组和权限 

对于系统账号也是不会生成家目录的。

当我们创建用户的时候,大部分情况下会自动创建其家目录,而家目录里会自动的创建一些隐藏的文件,而这些文件一旦被破坏,用家目录中的用户登录会报错。

/etc/skel是新创建用户家目录的模板文件夹。该目录将来在新建用户时会自动复制相关的文件,作为用户家目录的模板。(用来恢复将来有可能被破坏的家目录)。

/etc/default/useradd目录定义了新创建用户的默认属性。也可以用useradd  -D做修改。

用户组和权限 

 

 

 

 

 

 

 

 

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