Linux 用户、群组和权限

1.Linux 安全性模型

  Linux 使用User和Group控制使用者对文件的存取权限

  用户使用帐号和口令登录Linux

  每个文件都有一个owner,并且每个owner是属于一个Group

  每个程序都有owner和Group

2.用户概述

  每个用户都有一个User Id,唯一标识符

  在Linux中所有信息都是以文件形式存储的,那么Linux用户的信息保存在 /etc/passwd 文件中

    该文件中保存着用户的用户信息以及用户的home信息

    用户的密码保存在 /etc/shadow文件中(八个冒号分割九列,存储不同的信息)

      第一列:帐号名称 

      第二列:密码(加密后密码)

      第三列:最近修改密码日期,数字格式

      第四列:密码不能被修改的天数(0代表随时可以修改)

      第五列:密码需要被强制修改的天数

      第六列:密码需要被强制修改警告的天数

      第七列:密码过期后宽限的时间

      第八列:设置帐号的失效日期

      第九列:功能扩展列

    每个用户都有一个home目录

    每个用户未经过授权禁止访问其他文件--权限验证

    root,最高权限,拥有至高无上权限,一般不用root权限登录

3.用户群组概述

  每一个用户都属于一个Group,具有唯一标识的gid

  Group信息存储在 /etc/group 文件中

    gid 、成员等

    group的密码保存在 /etc/gshadow文件中,一般很少给group设置密码

  系统会为每一个user关联一个和user同名的group

    每个user至少会存在于与自己同名的group中

    user还可以加入其他的group

4.权限的种类

  只读权限: r

    读取文件或者列出目录的内容(ls)

  可写权限: w

    可以写、删除文件或者目录

  可执行权限:x 

    可以执行可执行文件

    可以进入目录使用cd 切换进入目录

5.Linux文件和目录权限解读

  第一列:

    - :代表文件

    l  :代表链接

    d :代表目录

  后边九列分为三组:

    r--read        读

    w--write      写

    x--execute  执行

    第一组:文件所有者拥有权限

    第二组:文件所有者同用户组拥有权限

    第三组:其他人对文件又有权限

6.Liunx权限验证流程

  如果是root,最高权限,均可验证

7.如何设置Linux文件和目录的权限

第一种方法:全部修改

  chmod +x xxx

  chmod +r xxx

  chmod +w xxx

  chmod -r xxx

  chmod -w xxx

  chmod -x xxx

第二种方法:分组修改

  chmod u+x xxx

  chmod u+r xxx

  chmod u+w xxx

  chmod g-x xxx

  chmod g-r xxx

  chmod o+w xxx

  chmod o-w xxx

第三中方法:八进制数占位修改

  chmod 777 xxx

8.用户的主要群组和次要群组

  每个文件必须有一个用户组所有者,因此必须有一个与每个用户相关的默认组,这个默认群组就是新建文件/目录的组所有者,也被成为用户的主要群组(有效群组),用户的主要群组在passwd文件的第四个字段中定义。主要群组的作用主要在新建文件/目录是有效果

  除主要群组之外,用户可以根据需要再隶属于其他群组,这个群组就被成为次要群组,在group文件中的第四个字段定义

9.如何管理用户  

  创建用户:useradd [-u][-g][-G][-mM][-c][-d][-s]

    -u:指定一个特殊的id给该帐号  

    -g:指定一个主要群组的名称,会修改passwd文件;如果不指定,系统会自动分配一个与用户同名的群组

    -G:指定一个次要群组的名称,会修改group文件;如果不指定,就不会有次要群组

    -M:强制不需要创建用户的home目录

    -m:强制创建用户的home目录,一般有帐号默认

    -c:passwd 文件中第五个字段的说明文字

    -d:指定用户home目录的位置,不需要使用默认home目录

    -s:指定默认的shell,如果没有指定,默认使用/bin/bash

  useradd -u 123 -g user1 -G user2 -c add a new user -d /home/user userName

  修改用户:usermod[-cdegGlsuLU] userName

    -c:该帐号的说明

    -d:该帐号的home目录

    -e:指定帐号禁用的日期,格式YY-MM-DD

    -g:修改主要群组名称

    -G:修改次要群组名称,会修改group文件

    -a:与-G合用,可增加次要群组

    -l:将当前帐号名称重命名为指定的名称

    -u:修改uid

    -L:暂时将用户密码冻结无法登录

    -U:解冻帐号,本质是删除shadow文件中的!字符

  usermod -a -G groupName userName

  usermod -c this is a new user userName

    passwd username ----给用户设置密码

  usermod -L userName

  usermod -U userName

  删除用户:userdel [-r] userName

   -r:会连同user的home目录也会删除

10.检查用户信息

  finger [-s] userName

   -s:仅仅列出用户的帐号、全名、登陆时间等

  id,可以查阅某人或者自己相关的uid、gid信息

  whoami 查询当前登录用户

  who&w 查询当前使用系统用户

  users 只显示当前用户的名称

  groups 显示当前用户的群组

11.默认权限以及如何控制默认权限

  内核级别,文件的默认权限是666

  内核级别,目录的默认权限是777

  然而,我们在创建的文件、目录时的权限不是上边所述那样,这是因为在内核级别的权限还需要通过umask来阻止一些权限,从而产生最终权限,umask是一个值,非管理帐号的umask是0002,root的umask值是0022,我们在shell终端通过umask命令查看该值。

  umask作用原理:

  

  

  umask 456 可以重新设置umask值

12.群组管理

  新建群组 groupadd [-g][-r] groupName

   -g:后边接特性的gid,用于指定群组id

   -r:建立系统群组

  groupadd -g 510 groupName

  修改群组 groupmod [-g][-n] groupName

  -g:修改gid

  -n:修改组名

 groupmod -g 511 -n new_groupName groupName

 删除群组 groupdel groupName

 

posted @ 2016-01-15 09:55  行者_2014  阅读(860)  评论(0编辑  收藏  举报