linux用户管理

一、名词理解

用户、组和权限

用户:

   标识符:

       用户名,用户ID

登录:用户名,密码

认证机制:

认证,授权,审计(日志)

进程(动态):以特定用户身份运行

文件(静态的):以属主,属组等从属关系

组:将多个用户与权限建立关联关系的容器

权限:资源的支配边界

用户有两类:

      管理员:root  UID:0

      普通用户:    UID:1-60000

            系统用户:

                  CentOS6:1-499

                  CentOS7:1-999

                  仅用于运行某些服务类进程而存在,一般不用于登录系统

            普通用户:

                   CentOS6:500+

                   CentOS7:1000+

                  交互式登录

组有两类:

     管理员组:root GID:0

     普通组:1-65535

          系统组:1-499

                  1-1000

          普通组:500+

                  1000+

权限:             文件                         目录

   r:readable   可使用查看工具看内容    可以使用ls命令列出其内容所有文件或子目录的相关信息

   w:writable   可编辑其内容            可在此目录内创建或删除文件         

   x:executable 可将此文件内核提请启动为进程 可以cd进此目录,可以使用ls -l查看其内部所有文件或子目录的相关详细信息


安全上下文:用户启动某进程访问某文件资源时,权限匹配机制:

1、首先查看此进程的属主,与被访问的文件的属主是否是同一个用户,如果是,则以被访问的文件的属   主的身份来访问,从而应用权限为属主的权限,如果不是,则2

2、查看此进程的属主是否属于被访问的文件的属组,如果是,则以被被访问的文件的属组的身份来访   问,从而应用权限为属组的权限,如果不是,则应用其它人的权限


组的类别:一个用户可同时属于多个组

     以用户为中心:

             基本组

             附加组

二、管理用户和组:useradd,passwd,userdel,usermod,groupadd,gpasswd,groupdel,groupmod

useradd:

useradd [OPTION]... USERNAME

     -u UID 指定UID

     -g GID 指定基本组的GID,也可使用组名,GID或组名必须事先存在

     -G GID 指定附加组的GID,也可使用组名,GID或组名必须事先存在

     -c 指定注释信息

     -d 指定家目录

     -s 指定使用的shell

     -r 创建系统用户, -s /sbin/nologin


     -m 必须给用户创建家目录

     -M 不给用户创建家目录

     -D 设定用户创建时useradd的默认行为:

注意:创建用户时如果没有指定基本组,则useradd会自动添加一个与当前用户同名的组,且GID同UID

passwd:

passwd:      修改自己的密码

passwd USERNAME:修改指定用户的密码,只有管理员root有此权限

     -l 锁定帐号

     -u 解锁帐号  更改此帐号的密码也可解锁

     -S 查看用户密码状态

     --stdin 

[root@localhost ~]# echo '123321'|passwd --stdin xiewei
更改用户 xiewei 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@localhost ~]#

userdel:删除用户

userdel [-r] USERNAME 删除指定用户

      -r:删除用户的同时,删除其家目录

usermod 修改用户信息

     -g 修改用户的基本组

     -G 修改用户的附加组 注意:会修改用户的之前的附加组 -a 添加附加组而不会改变原有的附加组,但是-a一定要放在-G前面,否则报错

     -s 修改用户的默认shell 

     -c 修改用户的注释信息

     -L 锁定帐号

     -U 解锁帐号

     -M 不给用户创建家目录


     -d 修改用户的家目录,-m 修改家目录后把家目录原文件复制新位置

     -l 修改用户的登录名  #但是家目录不会更改,所以改后就不能登录了?

groupadd

groupadd GROUPNAME 删除指定组

    -g GID:指定使用的GID

    -r 创建系统组

gpasswd GROUPNAME :为组添加密码

      -a 添加附加用户

      -d 删除指定的附加用户

-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

gpasswd -A peter users           
这样peter就是users群组的管理员,就可以执行下面的操作:             
gpasswd -a mary users
gpasswd -a allen users


groupdel GROUPNAME:删除组

groupmod GROUPNAME:修改组属性

   -g  修改GID

   -n  修改组名

ID [OPTION] USERNAME 显示指定用户的UID ,GID,所有组

   -u UID 仅显示UID

   -g GID 仅显示基本组

   -G 显示所有组

   -n 显示名称而非ID

newgrp 

    newgrp GROUPNAME 切换当前用户的基本组为指定组,如果该组为该用户的附加用户则不用输入组密码,否则需要组密码(该组没设密码就切换不了)   #重启后失效


finger USERNAME 查看用户信息

chsh   修改shell

  -l 列出当前系统上可用shell

  -s 修改为指定shell

chfn   修改用户注释信息  

su 切换用户帐号

su [OPTION]... [-] [USER]

 [USER]省略时,表示切换为root

 su USERNAME:非登录切换,意味着仍然使用原用户的环境设定

 su - USERNAME:登录式切换,意味着使用目标用户的环境设置,原用户失效

 su - USERNAME -c 'COMMAND' 以目标用户身份执行一次命令后退出,不作真正切换

 注意:返回原用户,使用exit命令,


三、用户,组相关的配置文件详解

1、/etc/passwd 

 account:password:UID:GID:GECOS:directory:shell

 用户帐号:x:UID:GID:GECOS:用户家目录位置:用户的默认shell

         密码占位符

                   用户注释信息         用户必须有一个合法可用的shell,/etc/shells


名称解析:把用户名解析为UID,或UID解析为用户名,基于名称解析库,以某个字段为搜索键(搜索标准),这些库文件位于/lib64,/usr/lib64目录,通常以libnss开头


/etc/group

group_name:passwd:GID:user_list

              以此组为附加组的用户列表,以都好分隔

相关的其它配置文件

 /etc/shadow - 使 用 者 帐 号 资 讯 加 密

 /etc/group - 群 组 资 讯

 /etc/default/useradd - 定 义 帐号信息和家目录,家目录下的文件等

 /etc/login.defs - ogin.defs是设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准

 /etc/skel - #家目录下的文件(隐藏文件)


/etc/shadow:

oracle:!!:16668::::::

用户名

加密后的密码串

最近一次修改密码的日期,起始于1790.1.1至上次密码修改所经过的天数

密码的最小使用期限:0表示不限制,按天计算,相对于上次修改密码的日期而言的相对时长

密码最大使用期限,99999表示不限制,相对于上次修改密码的日期而言的相对时长

密码警告期限:0表示不警告,默认是倒数7天警告

密码的非活动区限:超过该区限,帐号将被锁定,0和默认是表示密码过期后立即失效,-1表示密码永远不会失效

帐号的过期期限:为一个日期(天)

预留字段


/etc/gshadow

组名:组密码加密后的字符串:组管理员:附加用户


加密/解密:

明文、密文

常用的加密的方法:

对称加密:

公钥加密:密钥对儿,公钥产生于私钥之中,

单向加密:之能从明文产生密文,反之不成,严格意义上来讲,它实现的是提取数据特征码

      同一个数据,使用同一个算法,多次计算得到的结果一定相同,所以常用于验证数据完整性

      定长输出,无论原数据大小是什么,加密后结果输入大小相同

      $加密算法$8位随机字符$加密后的密码

      md5:(centos5)

      sha1:

      sha256

      sha512 (centos6,7采用)

chage:修改用户帐号密码的过期信息

    -l 查看用户的过期信息

    -d 修改密码最后一次更改日期(/etc/shadow第三个字段)

    chage -d 0 USERNAME    #这个命令其实是把密码修改日期归0了,这样用户一登陆就要修改密码了

一次用户创建经历的过程:

1、在/etc/passwd文件中添加一行信息

  USERNAMEx:UID:GID:c:/home/USERNAME:shell

2、在/etc/group文件中添加一行信息

  GROUPNAME:X:GID:附加用户

3、创建家目录/home/USERNAME

  复制/etc/skel目录中的隐藏文件至用户的家目录中,并修改其属主,属组及权限

4、在/etc/shadow创建用户密码及相关属性信息


你可能感兴趣的:(linux)