Linux系统之用户、群组和权限

一、用户管理

  • 创建用户时,系统为用户分配一个唯一的编号UID,同时为用户创建一个同名的组,并为组分配一个编号GID,并把该用户加入该组中。

   系统规定: 

    uid: 0       特权用户
        uid: 1~499  系统用户
        uid: 500+   普通用户

  • 任何一个用户有且只有一个私有组,一个用户可以加入多个组
  • 家目录:系统还会为用户在/home/创建一个与用户名同名的主目录
  • 家目录的模板:系统还会把/etc/skel目录中的内容复制到用户的家目录,作为基本的配置文件
  • 同名的邮箱:/var/spool/mail/创建一个与用户同名的邮箱

  1、和用户相关的文件或目录:

    用户信息:/etc/passwd    #密码最后修改时间,从UNIX元年到现在多少天

         Linux系统之用户、群组和权限
             用户名:密码点位符:uid:gid:描述:家目录:用户的shell
    用户密码:/etc/shadow    #密码前有!表示锁定

         Linux系统之用户、群组和权限
                       用户:密码:密码最后修改时间:多久不可修改秘密天数:多久内必须要更换密码:密码失效前的警告天数
    组信息:/etc/group      #此文件中记录组的信息,此文件可查看组内成员

        Linux系统之用户、群组和权限
                     组名:组密码:GID:组成员(缺省有与组名同名的用户)
    组密码:/etc/gshadow      #存放组的密码信息

        Linux系统之用户、群组和权限

     家目录:系统会为用户在/home/创建一个与用户名同名的主目录

        家目录的模板:系统还会把/etc/skel目录中的内容复制到用户的家目录,作为基本的配置文件

         Linux系统之用户、群组和权限

     同名的邮箱:/var/spool/mail/创建一个与用户同名的邮箱

        Linux系统之用户、群组和权限

  2、useradd命令及选项

    a) –u:指定用户的UID
      b) –g:指定用户所属的群组
      c) –d:指定用户的家目录
      d) –c:指定用户的备注信息
      e) –s:指定用户所用的shell

    例:在系统中创建一个名为fox的用户,UID为600,属于heilong组,描述信息为this is a fox

      Linux系统之用户、群组和权限

  3、usermod命令及选项

    usermod命令:修改用户信息

    选项:

        a) –u:修改用户的UID
      b) –g:修改用户的GID
      c) –G:将一个用户加入到指定的群组中
      d) –d:修改用户的家目录
      e) –c:修改用户的备注信息
      f) –s:修改用户所用的shell
      g) -L: 锁定用户
      h) -U: 解锁用户

    例:

      修改fox用户的家目录为/home/babies的命令:

       Linux系统之用户、群组和权限
      将fox用户添加到tom这个群组中的命令:

       Linux系统之用户、群组和权限
      将fox用户的的gid变更为tom群组的命令:

       Linux系统之用户、群组和权限

      将fox用户锁定,无法登录Linux系统

       Linux系统之用户、群组和权限

        Linux系统之用户、群组和权限

        Linux系统之用户、群组和权限

      将fox用户解锁

        Linux系统之用户、群组和权限

        Linux系统之用户、群组和权限

  4、userdel命令

    userdel:删除用户    注:删除用户信息,不包括用户的家目录和邮箱

      -r选项:在删除用户信息的同时,删除用户的家目录和邮箱

二、用户组管理:

    # groupadd 组名

    # groupadd net01 -g 2000  添加组net01,并指定gid 2000

    # groupdel net01    删除组net01

    # grep 'net01' /etc/group  查看/etc/group中组net01信息

    # groupmod -n 新组名 旧组名

            -g 从新指定GID

    gpasswd [参数] user 组名称

          -a 添加用户到组中

          -d将用户从组中删除

    gpasswd 组名   为组设置密码

    groups  查看当前用户的组信息

三、权限管理

  1、文件权限

    Linux系统之用户、群组和权限

    第一列:文件的类型和权限信息

    第二列:硬连接数

    第三列:属主,文件的拥有着

    第四列:属组,文件所属群组

    第五列:文件的大小,默认单位是bytes

    第六列:文件的创建日期或是敢后的修改日期

    第七列:文件名

    

    第一列的第一个字符:

      d:目录

      -:普通文件

      l:链接文件,类似windows的快捷方式

      b:块设备文件

      c:字符设备文件,例如:键盘,鼠标

      p:管道文件,解决多个程序同时存取一个文件的问题

      s:套接字文件,通常用于网络上的数据承接,很多存在于/var/run

      文件权限:

        r->读权限,cat、less、more等

        w->写权限,可以编辑文件内容

        x->执行权限,可以被执行

  2、目录权限:

      r->可以查看该目录下的文件或目录,如ls命令

      w->可以在该目录下创建文件或目录,删除文件或目录,重命名文件或目录,移动该目录下的文件或目录

      x->用户可以进入该目录,使该目录成为工作目录

  

  3、更改文件的属主、属组

    chown 改变文件的拥有者和群组

    chown [参数] [用户] [:或者.组] 文件名

        -R-递归更改

    [root@tianyun ~]# chown alice.hr file1  //改属主、属组

    [root@tianyun ~]# chown alice      file1   //只改属主

    [root@tianyun ~]# chown        .hr  file1  //只改属组 =chgrp:

    [root@tianyun ~]# chgrp group file1     //改文件属组

    [root@tianyun ~]# chgrp -R group dir1    //改文件属组

  4、更改权限

    a. 使用字符      对象  赋值符  权限类型

            u    +    r      + 在原基础上加权限

            g     -    w                 -R 递归更改

             o    =    x          - 在原基础上减权限

      [root@tianyun ~]# chmod u+x file1   //属主增加执行

      [root@tianyun ~]# chmod a=rwx file1  //所有人等于读写执行

      [root@tianyun ~]# chmod a=- file1   //所有人没有权限

      [root@tianyun ~]# chmod ug=rw,o=r file1//属主属组等于读写,其他人只读

      [root@tianyun ~]# ll file1         //以长模式方式查看文件权限

      -rw-rw-r-- 1 alice it 17 10-25 16:45 file1   //显示的结果

    b. 数字   r=4,w=2,x=1

      [root@tianyun ~]# chmod 644 file1

      [root@tianyun ~]# ll file1

      -rw-r--r-- 1 alice it 17 10-25 16:45 file1

    

上一篇:淘宝WAP版小BUG分析


下一篇:一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片