码迷,mamicode.com
首页 > 其他好文 > 详细

5,用户管理,权限管理

时间:2014-10-27 07:06:42      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:权限   用户管理   

用户管理文件及介绍:

    当 一台 计算机 被 多个 人 使用 时, 为了 保留 这些 人 之间 的 隐私, 所以 提出 了 “用户” 这个 概念, 不同 用户 之间 的 访问 是 需要 一些 权限 的, 这 可以 很好 的 保护 用户 之间 的 隐私, 而 有些 情况 下, 人们 希望 可以 共享 一些 文件, 多以 就 提出 了 “组” 这个 概念, 人们 可以 把 一些 用户 规划 成 一个 组, 以 方便 的 共享 某一类 问题, 所以, 组 也 可以 认为 是 用户 的 容器, 用户 的 一个 “文件夹”。

    用户 这种 东西, 当然 还是 要有 用户名 和 密码 得啦~, 不过 有 密码 就 不得不 说 一下 加密 了,系统 里的 密码 当然 是 要 加密 的。。, 要不 密码 被 其他人 看到 那 这个 密码 就 没什么 意义 了。。, 这里 我们 先 说一下 加密。

    

加密:

    常用 的 加密 形式 有 三种, 分别是:

    对称加密:这个就是 用 什么 秘钥 加密 的  就 用 什么 秘钥 解密, 比较 流行 的 对称加密 有 DES, 3DES, AES。

    公钥加密:这个 有 两个 秘钥, 一个 是 公开 的, 一个 是 隐藏 的, 用 公钥 进行 加密 的 文件 只能 用 私钥 进行 解密, 反之亦然, 也就是 说, 这 是 一对 秘钥, 用 其中 一个 加密 的话 就要 用 另一个 进行 解密。。, 流行 的 加密 算法 有: DSA, RSA

    单向加密:这个 加密 是 不需要 解密 的, 他 加密 之后 生成 的  密文 可以 作为 这个 文件 的 唯一 标示符, 相当于 是 文件 的 ***, 一旦 文件 被 改变, 密文 也会 随之改变, 哪怕 文件 里面 只 改变 一个 字符, 也会 引起 密文 的 巨大变化, 流行 加密 算法 有 : MD5, SHA1, SHA256, SHA512, 例如 MD5 就是 应用 于 光盘 上 的, 一般 网上 下载 光盘镜像, 或者 其他 什么 的(是 什么 自己 想。。),  都会有 一段 公开 的 MD5 密文, 一旦 这个 文件 被 人更改, 那么 MD5 密文 就会 改变 的, 所以, 只要 对照 MD5 密文 就 可以 知道 这个 文件 是否 被 篡改 了, 另外, 用户 的 密码 也 可以 用 这种 形式 加密 的, 因为 这个 加密 是 单项 的, 所以, 即使 被 别人 得到 了 密文 也 不知道 这个 用户 的 密码 是 什么(。。。, 理论 上 是 这样 的, 不过 md5 解密 网站 上面 那 160t 的 密文 数据库 可 不是 闹着玩 的), 也 正是 因为 有 这种 相当 暴力 的 破解 md5 的 方法, 所以, 在 Linux 中 的 密文 是 分为 两段 的, Linux 在 加密 你的 密码 文件 时 , 会 自动 向 密码 里面 随机 加一点 其他 东西, 也就是 加点 盐,这时 即使 我们 能 解密 这个 密文 也 不会 很容易 的 得到 相应 的 密码 了。。

    先 看一下 密码 加密后 是 什么 样子 的 把~, 虽然 什么 也 看不懂。。

bubuko.com,布布扣

    这里面 使用 : 进行 分隔 的, 一共 8 个 段

    1、 用户名

    2、 加密形式 和 盐 和 加密后 的 密文

            这三个 之间 是 用 $ 分隔 的

            第一段 两个 $6$ 之间 的 6 是 表示 加密 方式

            1: MD5 加密

            2: Blowfish 加密

                        5: SHA-256 加密

                        6: SHA-512加密

                        第二段 就 是 盐 了, 也 就是 加密 之前 就 加进 密码 里 的 杂质

                        第三段 就是 加密 之后 的 密文 了。

        3、  密码 修改 日期, 就是 距离 1970-1-1 的 天数。。, 这个 有点 蛋疼,怎么 什么 都是 1970.1.1

        4、  密码 不可修改 的 天数, 这里 是 0.。。, 也就是 说 可以 随时 修改 密码 的

        5、  密码 用 多少天 之久 就 需要 更改 密码。,这里 的 天数 也是 以 1970.1.1 为 起点 计算 的, 又蛋疼 了 一次。。。 这里 是 99999, 也 就是 永久 的 意思, 反正 现在 人类 还 活不到 那一天。。

        6、 距离 密码 修改 期限 前 n 天 发出 警告, 我 这里 是 提前 一种 会 提醒 用户 更改 密码。

        7、 密码 过期 宽限, 我这里 是 空, 如果 用户 没有 在 规定 时间 内 修改密码 , 那么 这个 用户 就会 给 锁定, 只能 通过 管理员 进行 解锁

        8、 账号 失效 的 期限, 这个 还是 1970.1.1 为 起点 的。 , 有些 时候 需要 一些 临时 账号 的,所以 就 有了 这条 设置。。

 

OK, 这个 密码 文件 就 差不多 说完 了, 这个 文件 位于 /etc/shadow, 

对了, 还有 最后 一个 要 说 的, 。。 

bubuko.com,布布扣

注意 到 了 把。。, 这里 的 第二段, 也就是 密码段 是 两个 叹号, 这个 的 意思 是 这个 用户 已经 被 锁定 了, 

--------------------------------------------------------------------------------

        另外 一个 比较 重要 的 文件 也 说一下 把, 刚才 说 的 那个 是 密码 文件, 现在 要说 的 是 用户 文件, 这个 是 用来 存放 用户 的 基本 信息 的, 位于 /etc/passwd bubuko.com,布布扣

就是 这个 了~~, 这个 只是 其中 的 一条 哦。。

        1、 用户名

        2、 密码,。。 这里 的 x 只是 象征性 的 一个 密码, 最开始 的 系统密码确实 是 存放在 这里 的, 而且 是 不加密 的, 后果 可想而知。。, 这样 的 密码 当然 是 没意义 的, 后来 就 改了, 把 密码 单独 作为 一个 文件, 就是 刚才 的 那个 /etc/shadow

        3、 用户的属主, 就可以 说 是 用户 id, 用户 的 唯一标识号, 这里 用户 id 范围 是 0-65535, 其中 0 是 root 的 id, 1-499 作为 系统保留,用于 管理 账号, 500 - 65535 是 普通 用户 可用 id

         4、 用户的属组, 也就是 用户 的 组id, 这里 的  id 范围 的 分配和 用户属主 是 一样 的,就不说 了

        5、 用户的备注, 这里 存放 一些 用户 信息, 不过 我 这里 没有 写 备注。

        6、 用户 的 家目录, 普通 用户 的 家目录 一般 会在 "/home" 这个 目录 下 , 而 root 的 家目录 就是 /root, 这就是 普通 用户 和 管理员 的 不同。。, 管理员 是 万能 的, 千万 别 得罪 管理员。。

        7、 用户 的 默认 shell, 我 这里 是  bash, 其实 我 也 就 会 那么 一丢丢 bash。。。

------------------------------------------------------------------------------------------------

            还有 几个 文件 也 一起 说 了 算了。。, 先 把 用户 管理 的 体系 都 介绍 一下, 最后 再说 命令 把。。

              /etc/group        : 这个 文件 是 用来 存放 用户 的 属组 信息 的, 要 强调 一点, 用户 属组 和 用户 是 相互 独立 的 两个 东西, 就像 文件夹 和 文件 一样, 没有 文件, 文件夹 依然 可以 存在, 但 没有 文件夹, 文件 就 不知道 往哪里 放 了, 所以, 每个 用户 都 必须 有 一个 基本组 来 存放 这个 用户 , 这个 基本组 可以 在 创建 用户 时 设定, 如果 没有 设定 就会 自动 创建 一个 和 用户 同名 的 组, 作为 基本组, 另外, 一个 用户 也 可以 属于 多个 组, 这个 就 是 用户 的 附加组, 好了, 还是 回过头 来 看看 /etc/group 这个 文件 把。。

bubuko.com,布布扣

一般 会 分为 三段, 

    1、 组名

    2、 组密码, 这里 也是 用 x 来 代替 的

    3、 组 id

不过 大家 有没有加 注意到 , 组 jing 这个 里面 有 4个 字段, 这事 怎么 回事 呢。。, 因为 这个 是 user1 把 jing 当做 了 自己 的 附加组, 而 这个 信息 并没有 记载 在 存放用户信息 的 passwd 里面, 而是 把他 记载 在 存放  在 group 这个 文件 里面, 意思 是 说 jing 这个 组 的 附加 成员 都 会 记录在 这里 了, 再 说 一句 废话 把, 这里 并 没有 记载 这个 组 的 基本 成员, 因为 没意义。。。。, 用户 的 基本组 是 在 passwd 文件 里面 记载 的。

还有, 组密码 也是 单独 存放 一个 文件 的 , 位于 /etc/gshadow, 形式 和 /etc/shadow 差不多, 这里 就 不说 了。。

-------------------------------------------------------------------

        /etc/default/useradd        : 这个 是 最后 一个 要 说 的 文件 了。。, 这个 文件 存放 的 是 创建 一个 用户 时 默认 的 一些 基本 信息。 

bubuko.com,布布扣

    1、 可 创建 的 普通 组,

    2、 把 普通 用户 的 家目录 存放 在 "/home“ 这个 文件夹 下

     3、 是否 启用 账号 过期 停权, -1 表示 不启用, 宽限天数: 0一下 都是 无效数字。。

    4、 账号 终止日期, 不设置 就是 没有,( 账号 失效日期 如 : 20141212)

    5、 默认 shell 类型, 我 这里 是 bash 的, 

      6、 创建 用户 时, 这个 用户 的 家目录 环境。。, ”/etc/skel“ 这个 是 一个 目录, 里面 存放 着 一个 用户 家目录 的 模板, 在 创建 家目录 是 会 把 这个 skel 目录 复制 一份 到 “/home” 下 的。

    7、是否 创建 用户 邮件 缓冲, 这里 默认 是 创建 的。


好了, 最后 再 看一下 /etc/skel 这个 目录 下 的 文件夹把。, 不过 这里 并 不打算 说 点 什么。。bubuko.com,布布扣 


用户管理命令:

useradd        : 添加用户

useradd   选项   用户名

        -u        UID : 指定 UID, 指定 用户ID

        -g        GID: 指定 用户 基本组

        -G        GID: 指定用户 附加组

        -d    /path/to/somewhare            : 指定 用户 家目录

        -c  ”Comment“  : 指定 用户的 备注

        -s /path/to/shell        : 指定 默认 shell, 应该 使用 /etc/shells 中 出现 的 shell,

        -m:  创建 用户 时, 强制 给 用户 创建 家目录:, 默认 也是 创建 的。。

        -M: 创建 用户 时, 不 创建 家目录。

        -r  : 创建 系统 用户, 

                    id : 1-499, 系统 用户 是 无 家目录 的 , 默认  shell 为 /sbin/nologin, 也就是 不允许 登录

bubuko.com,布布扣

------------------------------------------------------------------------

groupadd           Group_name      : 创建组

        -g GID: 指定 组 ID

bubuko.com,布布扣

-----------------------------------------------------------------------

passwd      :  修改 密码

        直接 使用 passwd 命令, 这个 可以 修改 自己 的 密码, 

        passwd 用户名, 这个 可以 修改 这个 用户 的 密码, 不过 这个 只有 管理员 可以 使用。。。

        bubuko.com,布布扣    

这里 说 一下, 输入 密码 时 密码 是 隐藏 的, 他 不会 显示 到 屏幕 上,只要 输入 就 好了, 两次 输入 的 密码 是 一样 的 就 ok。。, 另外 也 可以 避免 输入 密码 这种 人机 交互 的, 批量 添加 用户 时 很有用。。   echo ”密码“ | passwd --stdin [用户]

bubuko.com,布布扣

OK, 这就 可以 避免 和 人机 交互 了。, 至于 echo 后面 的 | 是 管道 的 意思, 他 是 把 输出 的 字符串 传给 下一个 命令 的 意思, 以后 还会 详细 说 的, 这里 就 先 用着。。


另外, 还有 -l 和 -u 两个 选项, 他们 分别 是 锁定用户 和 解锁用户

passwd -l 用户名, 锁定 这个 用户

passwd -u 用户名, 解锁 这个 用户

---------------------------------------------

gpasswd  组名, 这个 和 passwd 差不多 拉~, 添加 组密码, 这里 就 不细说 了。。, 有的 时候  会 有用 的,


---------------------------------------------

usermod   修改 用户 的 属性定义, 也就是 修改 uid, gid 什么 的。。, 

-u UID:        修改 UID

-g GID:        修改 GID

-G GID: 默认会 覆 盖原有的附加组; 如果是 添加,则同 时使用-a选项; 

-c "String": 修改 备注

-d /path/to/New_Home: 修改 家目录, 不过 默认不会 迁移用户的家目录;如果要迁移,则同时使用-m

-s SHELL:     修改 默认 shell, /etc/shells/###

-l New_login_name: 换一个 用户名


-L: 锁定用户帐号

-U: 解锁


这里 也 就 不演示 了, 这个 命令 太简单 了。。。

-----------------------------------------------

groupmod    :  修改 用户 的 组定义, 这个 比较少, 因为 /etc/group 这个 文件 比较简单。。

        -g  : 修改 GID

        -n new_group_name :  修改 组名

这个 更 简单。。。。

------------------------------------------------

userdel  用户名:  删除 用户

        -r : 删除 用户 同时 删除 家目录

-------------------------------------------------

groupdel   组名, 删除 组, 这里 要 注意 一点, 这个 组 必须 是 空的, 也就是 不能 包含 任何 用户 的 组, 否则 是 禁止 删除 这个 组 的, 其实 从 逻辑 上 也 应该 是 这样 的。。, 要不然 这个 就 乱套 了 。

-----------------------------------------------

id  用户名   :  查看 用户 的 详细 信息

这个 刚才 已经 演示 过 了。。

-----------------------------------------------

su  用户名 : 切换用户

        -l  : 完全 切换

        -c  “命令”  : 临时 切换 用户, 并 以 这个 用户 的 权限 执行 一个 命令, 这个 挺好玩 的。。

bubuko.com,布布扣

---------------------------------------------

chage  :  修改 密码 属性, 比如 密码 最长 使用 天数 什么 的。, 也就是 修改                           /etc/shadow 这个 文件

  -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。

  -M 密码保持有效的最大天数。

  -W 用户密码到期前,提前收到警告信息的天数。

  -E 帐号到期的日期。过了这天,此帐号将不可用。

  -d 上一次更改的日期(这个 选项 就 有点 自欺欺人 了。。。)

  -i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

---------------------------------------------

chfn     :    更改 你的 备注, 这个 挺好玩 的。。 是个 交互 试 的 命令

    bubuko.com,布布扣

第五段, 用户备注 信息, 用 逗号 隔开 的, 其实 也可以 暴力点, 手动 自己  去 改 passwd。。。。, 

--------------------------------------------

chsh    :  更改 shell, 这个 其实 也 可以 暴力 改 的。。这里 我 没改, 我 只会 用 bash。。

bubuko.com,布布扣

---------------------------------------------

newgrep  组名

登入 另外 一个 群组, 有些 组 也是 可以 有 密码 的 哦。 有的 是 不能 轻易 登录 的, 因为 登录 这个 组 就 可以 得到 这个 组 里 的 某些 资源, 。。, 当然 对于 本身 就是 这个组 的 用户 来说 是 不用 输入 密码 的..


用户权限:

权限 一共 有 四种, 分别 是 

r        w        x        -

读       写       执行     无权限占位符


关于文件:

        r: 可以读取这个文件里的内容

        w: 可以编辑这个文件里的内容

        x: 可以运行这个文件,发起一个进程


关于目录:

        r: 可以用ls命令查看目录内容的文件信息

        w: 可以创建、删除文件

        x: 可以使用 ls -l 命令 查看 目录 内容 的 信息, 并且 可以 使用 cd 切换至 此目录

---------------------------------------------

同样, 用户 也有 三种, 所以, 权限 应该 是 由 9个 字符 组成 的。

属主     属组     其他

u        g        o

---------------------------------------------

先 看一下 ls -l 把, 

bubuko.com,布布扣


这里 看 ls -l 命令 的 第一段, 一共 由 10个 字符 组成, 其中 第一个 字符 是 文件 的 类型

文件 类型 就 不说 了, 前面 说过 了。。, 之后 后 九个 字符 是 三个 一组, 分为 三组

分别 表示 文件 对( 属主, 属组 和 其他 ) 三类 用户 的 权限。


当然, 权限 也可以 用 数字 表示 的, 毕竟 数字 才是 计算机 比较 敏感 的 东西。这个 也叫 八进制 的 权限。

000    : ---  : 0   : 无权限

001    : --x  : 1   : 执行

010    : -w-  : 2   : 写

011    : -wx  : 3   : 写,执行

100    : r--  : 4   : 读

101    : r-x  : 5   : 读,执行

110    : rw-  : 6   : 读,写

111    : rwx  : 7   : 读,写,执行


所以 , 例如 rw-r--r-- 也 可以 表示 为 644


文件 的 权限 也是 一种 元数据, 存储在 这个 文件 的 inode 中, inode 中 存储 的 是 文件 的 一些 基本 信息, 如 权限, 属主, 属组 什么 的, 不过 文件名 是 存放 在 文件夹 中 的, 而 文件 的 真正 数据 是 存放 在 block 中 的, 这些 东西 一会 还会说, 这里 只是 先 说一下。。

------------------------------------------------------

chmod        修改 文件 的 权限, 一共 有 三种 形式。。

形式1: 修改三类用户的权限

        chmod [-R] 八进制权限 文件

bubuko.com,布布扣

形式2: 修改  一类或多类  用户的  一个或多个  权限

        chmod [-R] {u,g,o,a} {+|-} {r,w,x} 文件

        这里 u, 表示 属主

             g, 表示 属组

             o, 表示 其他

             a, 表示 全部, 就是 ugo 合起来 的 意思

             +|-, 表示 增加 或 减少 权限 的 意思

             r,w,x 这个 就 不解释 了。。

bubuko.com,布布扣

形式3: 参照其他文件权限修改当前文件权限

        chmod --reference=要参照的文件 要修改权限的文件

bubuko.com,布布扣

 chmod 这个 就 差不多 了。。


下面 说 一下 默认 权限, 权限 的 应用 模型

默认 权限, 就是 在 创建 文件 时, 系统 默认 给 用户 的 权限, 这里 有 一个 环境变量, 不过 这个 变量 存放 的 是 文件 权限 的 反码, 需要 用 777 或 666 减去 这个 反码 才能 得到 用户 创建 时 的 权限。


umask  : 

        创建文件: 666-umake

            文件 默认 决不允许 出现 执行 权限 的, 假如 一个 文件 给 o类 用户 一个 wx 权限,那么 o类 用户 就 可以 修改 这个 文件, 而且 这个 文件 还 具有 执行 权限, 这样 的 文件 是 很危险 的。。

        目录创建: 777-umake

        管理员 默认 是 022, 

        如果 普通用户名 和 基本组 组名 一直: 002, 否则 022

------------------------------------------------------

权限应用模型:

进程的属主,是否与文件的属主相同;如果相同,进程则以文件属主的权限来访问文件;否则

进程的属主所属的组,是否其中之一与文件的属组相同;如果相同,进程则以文件属组的权限来访问文件;否则,

进程则以文件的其它用户的权限来访问文件;


chown : 修改 文件 的 属主, 也可 以 修改 文件 的 属组, 

        chown [option] UserName[{:|.}GroupName] file。。

        chown --reference=要参照的文件 要修改权限的文件, 这里 也 支持 这种 形式

bubuko.com,布布扣

-----------------------------------------------------

chgrp : 修改 文件 的 属组

        chgrp 组 文件, 

        chgrp --reference=参照的文件   要修改 的 文件, 同上。。

bubuko.com,布布扣


ok, 差不多 就 这些 命令 了 把。。, 感觉 这个 权限 写的 不太 清楚 啊, 我 这里 也是 云里雾里 的, 以后 经验 多了 再 整理 把。。

本文出自 “宁静淡泊” 博客,请务必保留此出处http://vrgfff.blog.51cto.com/6682480/1568197

5,用户管理,权限管理

标签:权限   用户管理   

原文地址:http://vrgfff.blog.51cto.com/6682480/1568197

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!