前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >09-1 权限

09-1 权限

作者头像
见贤思齊
发布2020-08-05 12:19:15
5520
发布2020-08-05 12:19:15
举报
文章被收录于专栏:初见Linux初见Linux

本章将介绍系统安全的基础知识以及如下命令的使用。

  • id: 显示用户身份标识。
  • chmod: 更改文件的模式。
  • umask: 设置文件的默认权限。
  • su: 以另一个用户身份运行 shell 。
  • sudo: 以另一个用户身份执行命令 。
  • chown: 更改文件所有者。
  • chgrp: 更改文件所属群组。
  • passwd: 更改用户密码。

一、所有者、组成员和其它所有用户

给一个文件区分所有者、所属组和其他人,就是为了分配权限方便

ls命令-l选项.png
ls命令-l选项.png

在之前学习 ls 命令以长格式显示结果时提到过,命令的第 3 列 pyvip 用户就是文件的所有者,第 4 列 pyvip 组就是文件的所属组。

1.用户

在 UNIX 安全模型中,一个用户可以拥有(own)文件和目录。 当一个用户拥有一个文件或目录时,它将对该文件或目录的访问权限拥有控制权

2.所有者

文件的所有者就是这个文件的建立者。 此外,系统中绝大多数系统文件都是由 root 建立的,所以大多数系统文件的所有者都是 root

3.群组(用户组)

用户又归属于一个群组(group),该群组由一个或多个用户组成(也就是就是一组用户的集合),组中用户对文件和目录的访问权限由其所有者授予。 除了可以授予群组访问权限之外,文件所有者也可以授予所有用户一些访问权限(所有用户是指整个世界)。 许多类 UNIX 系统会把普通用户分配到一个公共的群组中(比如:users),然而现在的 Linux 操作都是创建一个独一无二的,只有一个用户的群组,而且组名和用户的名字相同,这使得特定类型的权限分配变得更加容易

(1)为什么?

为什么要把用户放入一个群组中呢? 当然是为了方便管理。想想看,如果我有 50 位用户,而这 50 位用户对同一个文件的权限是一致的,那我是一位用户一位用户地分配权限方便,还是把 50 位用户加入到一个群组中,然后给这个用户组分配权限方便呢? 可想而知,一定是给一个用户组分配权限更加方便。

4.概念举例

比如:我买了一台电脑,那我当然是这台电脑的所有者,可以把我的读者加入一个用户组,其他不认识的路人当然就是其他人了。分配完了用户身份,就可以分配权限了,所有者当然对这台电脑拥有所有的权限,而位于所属组中的这些学生可以借用我的电脑,而其他人则完全不能碰我的电脑。

5.id-显示用户身份标识

(0)简介

id 命令 可以显示真实有效的用户ID(uid)和组ID(gid)。uid 是对一个用户的单一身份标识。组ID(gid)则对应多个uid。 id命令已经默认预装在大多数 Linux 系统中。要使用它,只需要在你的控制台输入id。不带选项输入id ,结果会输出使用活跃用户。

① 应用

当我们想知道某个用户的 uid 和 gid 时 id命令 是非常有用的。一些程序可能需要 uid 和 gid 来运行。id 命令使我们更加容易地找出用户的 uid 和 gid 而不必在/etc/passwd/etc/group文件中搜寻。 此外,你也可以在控制台输入man id进入id的手册页来获取更多的详情。

(1)用户身份标识
① 用户ID和有效组ID

创建用户账户的时候,用户将被分配一个称为 用户ID 或者 uid 的号码(用户ID与用户名一一映射)。 同时用户也将被分配一个 有效组ID 或者 gid,而且该用户也可以归属于其它的群组

1)不同系统结果不同

注意: 在 Fedora 系统中,普通用户账号是从 500 开始编号的。 而在 Ubuntu 系统中,是从 1000 开始编号的。 同时,Ubuntu 系统中的用户归属于更多的群组,这和 Ubuntu 系统管理系统设备和服务权限的方式有关。

2)主组和附加组的区别

在创建用户的时侯可以用 -g 和 -G 选项来指定用户所属组 和 附属组。 基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组。 附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。 用户不论处于基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本组

② 信息来源

类似于 Linux 系统中的很多情况,这些信息来源于一系列的文本文件。 用户账户定义在文件 /etc/passwd 中,用户组定义在 /etc/group 文件中。 在创建用户账户和群组时,这些文件随着文件 /etc/shadow 的变动而修改,文件 /etc/shadow 中保存了用户的密码信息。 对于每一个用户账户,文件 /etc/passwd 中都定义了对应用户的用户(登录)名、uid、gid、账户的真实姓名、主目录以及登录 shell 信息。如果查看文件(/etc/passwd )和文件( /etc/group )的内容,那你将会发现除了普通用户帐户信息之外,文件中还有对应于超级用户(uid = 0)和其它不同种类的系统用户的账户信息。

(2)语法格式

id [选项]... [用户名]

代码语言:javascript
复制
'''
 功能: 显示用户身份标识(比如:用户ID(uid)、有效组ID(gid))。

 参数: 
 ① 用户名: 指定用户后,将会显示 指定用户 的身份标识。
 (也可以不指定用户名,只写一个命令,这样就会显示当前用户的身份标识)
 ② 

 选项:
 ① -a :忽略同其它版本兼容。

 ② -g , --group :只显示 组ID。

 ③ -G , --groups :只显示 附加组。

 ④ -n, --name :显示 名字 而不是 数值。

 ⑤ -r, --real :显示 真实ID 而不是 有效ID。

 ⑥ -u, --user :只显示 用户ID。

 ⑦ --help :显示 帮助 并且退出。

 ⑧ --version :显示 版本信息 并且退出。

 如果不附带任何选项,程序会显示一些可供识别用户身份的有用信息。
​
 返回值: 用户身份标识.
'''
示例
① 显示当前用户的所有信息

id

② 显示指定用户的所有信息

id root

③ 打印用户名、用户ID、所属的所有组

id -u

④ 显示用户ID

id -u 或 id --user

⑤ 显示用户所属群组的ID

id -g

⑥ 显示所属组的名字

id -ng

⑦ 显示用户所属附加组的ID

id -G

⑧ 显示用户所属附加组名字

id -nG

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、所有者、组成员和其它所有用户
    • 1.用户
      • 2.所有者
        • 3.群组(用户组)
          • (1)为什么?
        • 4.概念举例
          • 5.id-显示用户身份标识
            • (0)简介
            • (1)用户身份标识
            • (2)语法格式
        相关产品与服务
        访问管理
        访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档