Linux中的用户及权限管理

用户及权限管理

Linux具有Muliti-task(多任务)Muliti-Users(多用户)的环境。


用户:为了保护所有使用计算机者的权益不受到损害,所以要实现资源的使用隔离机制,为了实现资源的使用隔离机制,就要标识每一个使用者,而这每一个使用者就是用户。


用户ID:每一个使用者的唯一标识,计算机用来识别使用者。


用户密码:用户的认证手段。Authenticationg(认证)Authorization(授权),Auditiong(审计) 3A


用户类别:分为管理员和普通用户,普通用户又分为系统用户和登录用户。


用户标识UserID,简称UID。默认采用16bits二进制数字。采用范围:0-65535。管理员的UID0,永远不变。普通用户:1-6553560000,系统用户:1-499CentOS6),1-999CentOS7),登录用户:500-60000CentOS6,1000-60000(CentOS7)。用户登录后自动转换为数字标识进行使用,用户登录系统后会有名称解析的过程来识别用户。


名称解析:简单来讲就是名称转换的过程,Username< - - >UID,根据名称解析库进行,这个库包含了用户的全名,家目录等全部信息,位于/etc/passwd。还额外保存了用户的其他附加信息。


:用户组,“盛放“用户的容器。单一的逻辑组件,便于实现权限的分配。


组类别:管理员组和普通用户组,类似于用户分类,普通用户组又分为系统组和登陆组。顾名思义,组也需要组标识。与用户的分类方式不同的是,组的分类更为细致。在用户的角度来看,用户组又可以分为用户的主组(基本组)和用户的附加组。根据组中包含的是一个用户还是多个用户,又可以将组分为私有组和公共组,顾名思义,私有组就是组名和用户名相同且只包含一个用户。组内包含了多个用户就是公共组。


组标识GroupID,简称GID。管理员组:0普通用户组:1-6553560000,系统用户组:1-499CentOS6),1-999CentOS7),登录用户组:500-60000CentOS6,1000-60000(CentOS7)。组同样也需要名称解析。


名称解析groupname,< - - >GID 解析库:/etc/group

 

认证信息:通过比对事先存储的,与登陆时提供的信息是否一致。

  passwd/etc/shadow    /etc/gshadow 。为了安全,密码采用字符串的形式存放在/etc/shadow    /etc/gshadow 密码库中,并采用单向加密(只能加密,不能解密;提取数据特征码)的机制。

            密码的使用策略:1.使用随机密码;2.最短长度不要低于8位;3.应该使用大写字母,小写字母,数字和标点符号四类字符中至少三类;4.定期更换。


     ~密码的加密算法共有六种:md5sha1sha224sha256sha384sha512。为了避免两个用户密码相同,在计算时加入salt添加随机数。

~用户信息库中各种数值从左至右所表达的含义:name:用户名,passwd:可以是加密的密码,也可以是占位符xUID:用户的id号;GID:用户所属的主组的ID号;GECOS:注释信息;directory:用户的家目录;shell:用户的默认shell,登录时默认shell程序。如图:wKiom1ZxOfSRwRkuAAAI5T-azCQ279.png

~用户的密码从左至右各数值所表达的含义:用户名;加密的密码;最近一次修改密码的时间;最短使用期限;最长使用期限;警告期限;过期期限;保留字段;如图:wKioL1ZxOk7gdycuAAAK1Tsu9wQ317.png

~组的信息库从左至右各数值表达的含义:组名;密码;GID;以此组为附加组的用户的用户列表。如图:wKioL1ZxOm3RaM0wAAAFpQBt2jc218.png




相关命令:


useradd:添加用户;useradd [OPTION] user_name;-u: 指定UID; -g:指定基本组ID,此组事先要存在;-c:指明注释信息;-G:指明用户所属的附加组,多个组之间用逗号隔开; -d:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名来实现,指定的家目录如果事先存在,则不会为用户复制环境配置文件。-s:指定用户的默认shell,可用的shell列表存储在/etc/shells文件中; -r:创建系统用户。

       useradd �CD:显示创建用户的默认配置;

       useradd �CD 选项 :修改默认选项的值。也可编辑/etc/default/useradd来修改。

注:创建用户时产生的诸多默认设定配置文件为etc/login.defs

注:系统用户:为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统。



usermod:修改用户属性:usermod [OPTION]  username-u:修改用户的ID为指定的新UID -g:修改用户的基本组;-G:修改附加组,原来的附加组会被覆盖;-a:追加附加组,与-G一同使用。-c:修改注释信息; -d:修改家目录,但用户信息不会移动;-m:与-d一同使用,保留原来家目录的内容; -l:修改用户名 -s:修改修改默认shell-L:锁定用户密码禁止登录;-U:解锁用户密码。                                                 

 

groupadd:添加组;groupadd  [OPTION]group_name;-g:指定GID,默认为上一个组的GID+1 ; -r:创建系统组。



groupmod:修改组属性;groupmod  [OPTION] group_name-g:修改GID -n:修改组名。


userdel:删除用户; userdel [OPTION] username ; -r:删除用户时一并删除其家目录。


passwdpasswd  [OPTION] [USERNAME]1passwd 修改用户自己的密码; 2passwd username修改指定用户的密码,但仅有root有此权限。-l  -u:锁定和解锁用户; -d:用户密码串; -e DAYS :过期期限,日期。-i  DAYS: 非活动期限; -n DAYS: 密码的最短期限; -x DAYS: 密码的最长使用权限; -w DAYS: 警告期限。

--stdinechostring | passwd �Cstdin 用户名 (快捷添加用户密码)。


gpasswdgpasswd [OPTION] group -a:向组中添加用户。 -d:从组中移除用户


newgrpnewgroup [-] [group]临时切换指定的组为基本组,id查看,exit退回原来基本组。

               -: 会模拟用户重新登录以实现重新初始化其工作环境。


chage:更改密码过期信息。chage [OPTION] 登录名。-d:修改密码修改期限; -E:修改过期日期; -m:修改最短使用期限; -M:修改最长使用期限。


id:显示用户的真实和有效ID信息。id [OPTION] ….[USER].-u:仅显示有效的UID -g:仅显示用户的基本组ID; -G: 仅显示用户所属的所有组ID -n:显示名字而非ID;-r:显示用户真实的ID


suswitch user切换用户。分为登录式切换:会通过重新读取用户的配置文件来重新初始化。su �C USERNAME;su -l USERNAME  

非登录式切换:不会读取目标用户的配置文件进行初始化   


 -csu �C 目标用户 �Cc ‘COMMAND’不切换用户,仅以指定用户的身份运行此处指定的目录。

     注:管理员可无密码切换至其他任何用户,非管理员切换至其他用户许给出目标用户密码。



权限管理:

进程的安全上下文:进程以其发起者的身份运行;进程对文件的访问权限取决于发起此进程的用户的权限。

   权限r:读; w:写  x:执行。采用ls �Cl [FILE]..命令查看文件权限等信息。如图:wKioL1ZxRCCjkQe9AAAMouIBgPM263.png

   文件信息从左至右第一位表示文件类型,左边三位表示文件属主的rwx权限,中间三位表示文件属组的rwx权限,右边三位表示其他用户rwx权限。

权限应用模型:发起进程的用户如果是文件属主,则应用左三位文件属主权限,如果发起进程的用户不是文件的属主,而属于该文件的属组,则应用中三位属组权限,否则既不属于属主,又不属于属组,则应用右三位其他权限。

   

 文件:r:可获取文件的数据; w: 可修改文件的数据;x:可将此文件运行为进程.

       

目录:r :可使用ls命令获取其下的所有文件列表;w:可修改此目录下的文件列表,即创建或删除文件;x:可cd至次目录中,且可使用ls �Cl来获取所有文件的详细属性信息。


 mode模型rwxrwxrwx:左三位定义userowner)的权限,中三位定义group的权限,右三位:定义other的权限。


      owenershipusergroup


权限组合机制--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7


权限管理命令

               chmod命令:(1chmod [OPTION]... MODE[,MODE]...FILE...

                      2chmod [OPTION]... OCTAL-MODE FILE...

                      3 chmod [OPTION]...--reference=RFILE FILE...

            三类用户:u:属主; g:属组 o:其他; a:所有


(1)       chmod[OPTION]... MODE[,MODE]... FILE...

       MODE表示法:赋权表示法:直接操作一类用户的所有权限位rwx  u=g=o=a=。授权表示法:直接操作一类用户的一个权限位u+ u-g+ g-o+ o- a+ a-


(2)       chmod[OPTION]... OCTAL-MODE FILE...


(3)       chmod[OPTION]... --reference=RFILE FILE...


                  选项:-R:递归修改。

          注:用户只能修改属主为自己的那些文件的权限。




从属关系管理命令chmodchgrp

           chown:(1chnown [OPTION]…[OWENR][:[GROUP]] FILE…

                    ( 2 )chown [OPTION] …--reference=RFILE FILE……

                         选项:-R递归修改


           chgrp:(1chgrp [OPTION]... GROUP FILE...

               2chgrp [OPTION]... --reference=RFILEFILE...

        注:仅管理员可修改文件的属主和属组;

     umask:文件的权限反向掩码;遮罩码  文件:666 �C umask;目录:777 �C umask

         注:之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需要将其加1;

   umask023   666-023=644  777-023=754

  umask命令umask 查看当前umask umask MASK :设置umask

学习心得:在linux系统中采用的多用户机制会让用户操作起来更方便,更加便于管理,更加安全。用户就像是进入系统的一把钥匙,而用户组就像是一把钥匙串,系统就像是这所房子。这把钥匙串上有多个钥匙,有的钥匙能打开房屋的所有门,有的只能打开个别门。而这些门就像是对用户的权限,有了这把钥匙就可以进入屋内进行想要的操作,顾名思义就是对系统进行规定允许范围内的事情,而权限管理机制又给每个用户设定了对文件的各种权限,在linux系统中一切皆文件,用户有了相应的操作文件的权限就等于有了操作系统的各种权限,要注意的是尽量避免使用管理员的身份操作文件,因为管理员权限太大,防止我们在一些失误操作时造成不必要的损失。


你可能感兴趣的:(linux,入门,学习,用户组,权限管理)