基础Linux命令 -------- 用户管理

1.用户存在和组存在的意义

-(1)用户存在的意义:用户概念在系统中是系统安全机制的一部分,用于控制权力(没有它之后这个安全机制就消失了)

  (2)组存在的意义:共享资源(开放权力)

                     组:初始组和附加组

 

2.用户的查看

   (1)查看当前用户

             whoami 

    (2)系统中用户的查看

              id                   ##查看指定用户id信息

              id          -u       ##查看用户的uid

              id          -g       ##查看用户的gid(effective)

              id          -G      ##查看用户所在的所有组的id(即这个用户都属于哪些个组)

              id           -n       ##显示名字而不显示id数字

                                   注意:-n和-u,-g,-G配合使用,用来显示用户id,组id,所有组id的名字,而不是id号

 

3.用户切换

  (1)su   -   用户名称

           注意: a:此时切换到student用户身份的环境下,不再是root的环境,不能再去访问root的桌面,此时pwd是/home/student

                         b :su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境

                         c:su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要

                                         "注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户

                         d:在root下,

                                                    su - student

                                                     su -root

                                                     此时不是回到了最初的root下,要exit退出(每su 一次,都会多一个进程)

      例子:

[root@localhost Desktop] # su  -  student

          结果演示:

                

                

  (2)su   用户名称

             注意:不加- ,则只切换用户身份,不切换用户环境;切换后,桌面还是属于原来的用户,只有打开的shell框改变了用户

       例子:

[root@localhost Desktop] # su student

            结果演示:

                  

                  此时可以student的用户身份下访问root权限下桌面上的文件,pwd 依旧是/root/Desktop

        

4.用户在系统中的存储方式

(1) /etc/passwd  ----------  用户信息文件

        文件内容的格式:

                 用户名称:密码:uid:gid:说明:家目录:默认shell

(2)/etc/group -------------   用户组信息文件

       文件内容的格式:

                 组的名字:组密码:组id:组成员

(3)/etc/shadow  -------------   认证信息文件

(4)/etc/skel/.*   -----------   默认开启shell的配置,用户的骨文件

            创建用户后,要将这个文件中的内容复制到家目录中

  (5)/home/username  ----------  用户的家目录

 

5.用户管理命令 

(1)用户的删除  --------- userdel命令

        <1> userdel            ##可以用于删除用户帐号及相关档案

              userdel student ##删除用户但不删除用户的配置文件

              此时若想彻底删除用户,则要删除  /var/spool/mail/用户名     /home/用户名 两个文件

[root@localhost Desktop]# rm -fr /var/spool/mail/jone   /home/jone

        <2> userdel   -r    student           ##删除用户并删除用户的配置文件,HOME目录下的档案也会被移除

             

            注意:userdel不允许移除正在线上使用着的帐号,必须kill此帐号现在在系统上执行的程序才能进行帐号删除

(2)用户建立  ---------  useradd命令

          以下命令的演示均是在用户信息监控命令  watch -n 1 'tail  -n 3   /etc/passwd   /etc/group;  ls  -l    /home'  下操作的:

          <1>useradd         ##建立用户

               

                 "注意":建立用户时,读取/etc/login.defs 文件内容确定规则(默认id范围 1000-60000)

                

          <2>useradd   -u    8888     westos            ##指定用户uid

                

          <3>useradd  -g   6666   westos ##指定用户初始组id,6666用户组必须是存在的"

                 

                 注意:要先建立组,组名可以和用户名相同,也可以和用户名不同

          <4>useradd    -G    72        westos                       ##指定用户的附加组id     

                  

                 注意:72用户组必须存,此时的组名不能和初始用户组组名相同(附加组名不能和用户名重名)

           <5>useradd    -c   "hello"    westos         ##指定用户的说明

                 

           <6>useradd -   d    /home/lee     westos          ##指定用户的家目录

                 

            <7>useradd    -s    /bin/sh      westos            ##指定用户的默认shell

                

            <8>groupadd          组名     ##建立用户组

            <9>groupadd    -g 888   组名          ##建立用户组并指定用户组的id

            <10>groupdel   组名          ##删除用户组(组没有配置文件)

(3)更改用户信息 ------- usermod命令

          <1> usermod    -l    新名称    westos      ##更改用户的名称

             

          <2>usermod   -u    8888    linux       ##更改用户uid

              

          <3>usermod    -g    21    linux       ##更改用户的初始组

             

          <4>usermod   -G   72    linux       ##更改用户的附加组

                  

          <5>usermod    -aG   21    linux    ##添加用户的附加组

          <6>usermod   -G   ""    linux       ##删除用户所有附加组的身份

          <7>usermod   -c   "hahahah"    linux      ##指定用户说明文字

               

         <8>usermod   -d   /home/lee    linux         ##更改用户家目录的指向(使家目录指向另外一个)

                    

          <9>usermod   -md    /home/lee    westos       ##更改用户家目录(将家目录更改)

               

         <10>usermod    -s   /bin/sh    linux       ##更改用户的shell

                

               注意:  /etc/shells 包含了所有shell文件

 

6.用户认证信息

    在   /etc/shadow  中记录用户认证信息,此文件一共有九列:

   用户名称:用户密码:用户密码最后一次被更改的时间("从1970,1,1日开始"的使用时间):用户密码最短有效期:用户密码最          长有效期:密码警告期限:用户非活跃天数:用户到期日:用户自定义列,目前没有启用

   <1>passwd   -S   westos         ##查看westos用户密码信息

       

    <2>passwd   westos             ##更改westos密码

       

           注意:

               普通用户改密码时

                1.必须知道当前原始密码

                 2.密码不能和帐号名称相似

                 3.密码不能是纯数字或纯字母

                 4.密码不能是有序的字母和数字的组合

 

注意: 以下命令演示都是在 watch -n  1 “tail -n  1 /etc/shadow” 监控下演示

      <3>passwd    -l      westos           ##在用户密码前加入“!!”,冻结

            把密码锁定,锁定强度高于usermod  -L

          

      <4>passwd   -u   westos      ##解冻

            注意:密码为空时,!!不能用passwd    -u  命令解开;可以又由 usermod  -U   命令解开一层,不能完全解开。

          

          

      <5>usermod   -L   westos           ##在用户密码前加入“!”

         

          usermod   -U    westos    ##解锁用户

         

         注意:在密码不为空时,可以通过使用两次解开passwd -l   锁;

             

       <6>passwd  -d westos ##清空westos密码

           

       <7>passwd   -e   westos            ##会改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码

              chage -d 0 westos                ##用户密码最后一次被更改的时间#两个命令功能类似

                    

        <8>passwd    -n   1     westos    ##用户密码最短有效期

               chage -m 1 westos

                  

       <9>passwd   -x   30   westos        ##设定用户密码最长有效期为30

              chage -M 40 westos

                        

     <10>passwd   -w   2   westos            ## 密码警告期限   

               chage -W 2 westos

            

      <11>passwd   -i   1    westos            ##用户非活跃天数

               chage    -I    1       westos

           

    <12>chage  -E   2018-11-11    westos      ##用户到期日

              #westos用户在2018-11-11日会被冻结(从当前日期到设定日期的天数加上当前天数)

            

 

7.用户授权

  (1)权力下放文件/etc/sudoers

             此文件可以用vim直接编辑,但是不提供语法检测

             也可以使用visudo编辑此文件,visudo命令提供语法检测

   (2)下方方式

       在 *visudo文件中添加授权内容:

                          用户   主机名称=(得到的用户身份 )    命令

例子:

            westos   localhost=(root)   /usr/sbin/useradd     ##westos用户可以在localhost主机以root用户身份执行useradd命令

            

            

            westos localhost=(root)  NOPASSWD:  /usr/sbin/useradd     

                                   ##twestos用户可以在localhost主机以root用户身份免密执行useradd命令

             "注意:在文件中加入内容后,切换至用户权限,执行赋予的命令时,命令之前要有sudo"

 

 

猜你喜欢

转载自blog.csdn.net/sinceNow/article/details/82946198