第三章 用户的权限管理

1 一个计算机系统最底层的是硬件 在硬件之上的是内核 ,内核控制硬件做基本操作,在内核之上的是 系统调用 ,所谓系统调用就是将一些功能单一的小程序 ,他没有程序的执行入口 不能单独的执行,由于功能很单一而且离硬件操作很近,在编程上很不方面,因此也就产生了库文件 ,库的调用是将系统调用的程序集中来处理一个问题,库也是不能单独执行没有执行入口,库分两种  一种是动态库(share object).so 一种是静态库 因此进行系统编程的的接口一般有两种 一种是系统调用 二种是库调用 静态库是在程序编译是将库文件直接放入程序中一起编译的因此这样的程序比较大,动态库在程序的编译时是不将整个库文件一起的编译的,只是在程序执行是系统才将动态库放入内存中 ,哪个程序发起的进程要调用时直接调用即可,且他在内存中只有一份!(

2所谓组 就是一组具有特定权限的容器 ,任何加入了这个容器的人 就拥有了某特定的权限。


3默认使用命令useradd 创建一个用户 ,就做了如下几个步骤 1 在 /etc/passwd  /etc/shadow /etc/group 三个文件中增加一行。2 在/home 目录下创建家目录  3将 /etc/skel/ 下的三个隐藏文件复制到家目录下 4 更改用户所有者 所属组 5 更改文件的权限  

3.1 先对 /etc/passwd 文件的内容进行分析 

hbash:x:498:498::/home/hbash:/bin/bash ;第一字段用户名 第二字段 密码 第三字段 所属者 第四字段所属组

第五字段 注释信息 第六字段 家目录 第七字段 默认shell ;

3.2 对 /etc/shadow 文件的内容进行分析 

root:$6$7pfir5Ysj:16983:0:99999:7::: 第一字段 用户名 第二字段密码 第三字段 上次修改密码的时间距离1970年1月1号所间隔的时间 第四字段 密码最短使用时间 第五字段 密码最长使用时间 第六字段密码到期提醒时间 第七字段密码宽限时间(此时间表示密码已到期但是还可以继续使用 每次登陆前提示必须修改密码才能使用)第八字段表示密码距离1970年1月1号多少天后上锁。

3.3 /etc/group 文件内容进行分析 

linux:x:3004:  第一字段 组名  第二字段 组密码 第三字段组id 第四字段 组成员 明细 

此时要注意两个文件 一个是/etc/default/useradd 表示创建用户时所定义的默认用户属性;一个是 /etc/login.defs 定义了 创建用户后默认用户密码相关的属性

3.4用户的类别 根据id号来区分

id 为 0 系统管理员 1-499 系统用户 500+ 普通用户 


3.4 创建用户 useradd 

useradd -u 创建用户并制定其uid 

        -g 创建用户并指定其基本组,此时的基本组要存在 

        -G 创建用户并指定其附加组 ,此时的附加组要存在

        -c commmond 创建用户并指定其注释信息

        -s 创建用户并制定其shell  注意此处的shell 一定是其完整的shell 路径 如 /bin/bash 

        -d 创建用户时指定其家目录 

        -m 创建用户是默认创建家目录 并将/etc/skel/三个隐藏文件复制到家目录下

        -M 创建用户是不创建家目录

        -r  创建系统用户

3.5 修改用户信息

usermod -u  修改uid 

        -g 修改其基本组 如修改了其基本组将从原来的基本组里面退出 

        -G 修改其附加组 如修改了其附加组 将从原先的附加组里面退出 要不退出 必须和-a 一起使用 

        -s 修改其shell信息

        -c 修改其注释信息

        -d 修改其家目录 修改了家目录 其原先家目录的东西不会自动复制过去 因此此时一般和-m 一起使用

        -l 修改用户的名字 

        -L 锁定用户账号

        -U 解锁用户账号  

userdel 删除用户信息 

         -r 删除用户信息时 连其家目录一起删除

3.6 chsh 修改用户的shell 

3.7chfg 修改注释信息

3.8 passwd 命令 

    passwd user 指定其密码 

           -d  user1 删除其密码

           -u 解锁其账号

           -l 锁定其账号

           -n 指定其最短使用时间 

           -x 指定其最长使用时间 

           -e 指定其到期时间 

          passwd --stdin 从标准输入中 接收密码 

 3.9 chage 命令 

    -E 修改到期时间

    -I 修改非活动时间

    -m 修改最短使用时间

    -M 修改最长使用时间

    -w 修改警告时间

   -d 修改最后一次登陆时间

3.10 创建用户组 groupadd -g 指定gid 

                         -r 创建其系统组 

3.11 修改用户组信息 groupmod -g 修改其gid 

                             -n 修改组名

3.12 删除用户组信息  groupdel 

newgrp 临时切换组 命令

newgrp 组名 (注意此命令只修改当前用户,不能指定用户)切换组,如果切换的是其附加组里面的组 则不需要密码,

**用户创建文件的所属组就是创建该文件的用户的所属的基本组 !***所以需要将用户切换到不同的组来保持文件的也有不同的所属组

退出该临时切换的组命令为 exit命令

umask 遮罩码 默认管理员为022 一般用户为002 当创建文件时候是666-遮罩码

当创建目录的时候是777-遮罩码

也就是说管理员在创建文件时其权限为644 =rw-r--r--

               在创建目录时其权限为755=rwxr-xr-x

普通用户在创建目录是其权限为775 =rwxrwxr-x

         在创建文件时其权限为664=rw-rwr--

注意在创建文件时如果设置的遮罩码在666-遮罩码后如果文件具有执行权限时会默认减一 如 umask=023 在创建文件时644 rw-r--r--

                   在创建目录时754 rwxr-xr--