Linux用户与用户权限(yum)


文件所有者、用户组与其他人的示意图:
有个人叫张小猪,他是张小猪家的人,和王大毛家没有关系,此时
无法进入王大毛家;
如果张小猪和王三毛成了好朋友,他就可以通过王三毛进入王家。
那么这个张小猪就是王家所谓的其他人( Others ),若某一用户对
于一个与他毫无关系的用户组而言 , 就可以被视作其他用户。
在这有一个特殊用户需要提及一下。 Linux 中的 root 用户(上图中
的天神) , 在整个 Linux 系统中拥有最大的权限 , 理论上能干任何事
情。
##1.1 用户
假如当你将的给你心意的女神写了封 Email 情书转存成了文件之
后,放在你自己的主文件夹中,你总不希望被其他人看见自己的情
书吧?这个时候你就可以把该文件设置成只有所有者才能查看和修
改该文件的内容,那么即使其他人知道你这个相当有趣的文件,不
过由于你设置适当权限,所以其他人自然不知道该文件的具体内
容。
由于 Linux 是多用户 , 多任务的操作系统 , 为此 , 会经常有多个用户
同时使用某一台主机。为了考虑每个用户的隐私安全以及每个用户
特殊的工作环境 , 设计了文件所有者这个概念。而文件所有者就是文
件所属的用户。
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使
用系统资源的用户,都必须首先向系统管理员申请一个账号,然后
以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行
跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组
织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的口令。用户在
登录时键入正确的用户名和口令后,就能够进入系统和自己的主目
录。
1.2 用户组
那么用户组呢?为何要配置文件所属的用户组呢?
用户组是为了团队开发资源而设计的。举例来说 : 某一台主机上
的资源有两个团队共同使用 ,team A (曹操、许褚、夏侯渊)和
teamB (刘备、关羽、诸葛亮)。
-rwxrwx--- caocao teamA wei.doc
-rwxrwx--- liubei teamB shu.doc
-rwx------ zhugeliang teamB qingshutohyy.txt
这两个团队之间是竞争关系 , 但却要提交同一份报告《如何获得
天下》,每个团队的成员需要有权修改该团队其他成员的数据 , 同时
另一个团队的成员无权查看本组自己的文件内容 , 此时用户组就起到
了关键作用。
在 Linux 下我们可以的进行简单的文件权限设置 , 就能限制非自
己团队的用户权限 , 同时 , 我们还可以设置个人私密文件 , 使团队内其
他成员无法获取私人的文件内容。除此之外 , 若是有项目主管想监督
这两个团队的开发进度 , 需要查看两个团队文件的权限 , 你便可以设置
主管账号 , 同时支持这两个用户组。换句话说 : 每个账号都可以有多个
用户组的支持。
用户组和用户关系分析案例:
可以使用 " 家庭 " 和家庭成员的关系进行分析,比如王大毛家的
三兄弟:大毛、二毛、三毛,而家庭登记的王大毛的名下,他们分
别有自己的房间。所以 " 王大毛家 " (用户组)有 3 个人(用户):大
毛、二毛、三毛;而且这三个人分别有自己的房间,并且共同拥有
一个客厅。
用户的意义: 由于王大毛家 3 个人拥有自己的房间,所以二毛虽
然可以进入三毛的房间,但是二毛不能随便翻三毛的抽屉,因为抽
屉里可能有三毛的私有物品,比如情书、日记等;这是私人空间,
所以不能让二毛随便动。
用户组的意义: 由于共同拥有客厅,所以王家三兄弟可以在客
厅看电视、看杂志、或望着天花板发呆等,总之只要是客厅的东
西,三兄弟都可以使用,大家一家人嘛。
王大毛家 -> 用户组;大毛、二毛、三毛 ---> 分别对应一个用户.
他们三个人在同一个用户组中,可以通过设置他们文件的权限,将
一些文件设置为 " 私有的 " (只能他自己访问和使用),同用户组的
其他用户无法访问和使用。而通过设置用户组共享的,则可让大家
共同分享。
d rwx r-x ---
#2 、 用户和用户组管理
在 Linux 系统当中 , 默认情况下所有的系统上的账号信息都记录
在 /etc/passwd 这个文件内 ( 包括 root 用户 ) 。而个人密码记录
在 /etc/shadow 这个文件内。所有 Linux 的组名都记录在 /etc/group
内。这三个文件非常重要 , 不要轻易做变动。在后续内容中 , 我们还会
详细做介绍。
综上 , 用户身份与用户组的概念 , 能够帮助我们的 Linux 多任务环境
变得更为容易管理。
###2.1.1 添加新的用户
useradd [ 选项 ] 用户名
选项说明 :
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用 -m 选项,可以创建主目录。
g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell 文件 指定用户的登录 Shell 。
-u 用户号 指定用户的用户号,如果同时有 -o 选项,则可以重复使用其他用户的标识号。

###2.1.2 修改帐号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、
主目录、用户组、登录 Shell 等。
修改已有用户的信息使用 usermod 命令,其格式如下:
usermod [ 选项 ] 用户名
常用的选项包括 -c, -d, -m, -g, -G, -s, -u 以及 -o 等,这些选项的意义与
useradd 命令中的选项一样,可以为用户指定新的资源值。
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
案例实战:
实例 1 :将用户 jinxf 的登录 Shell 修改为 bash ,主目录改
为 /home/z ,用户组改为 root 。

###2.1.3 删除帐号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号
就是要将 /etc/passwd 等系统文件中的该用户记录删除,必要时还删
除用户的主目录。
删除一个已有的用户账号使用 userdel 命令,其格式如下:

###2.1.4 用户口令的管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没
有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以
使用,即使是指定空口令。
指定和修改用户口令的 Shell 命令是 passwd 。超级用户可以为自己
和其他用户指定口令,普通用户只能用它修改自己的口令。命令的
格式为:
passwd 选项用户名
可使用的选项:
-u ( unlock ) 口令解锁。
-d 清除用户口令
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是 jinxf ,则下面的命令修改该用户自己的口
令:








虽然这个字段存放的只是用户口令的加密串,不是明文,但是由
于 /etc/passwd 文件对所有用户都可读,所以这仍是一个安全隐患。
因此,现在许多 Linux 系统(如 SVR4 )都使用了 shadow 技术,把
真正的加密后的用户口令字存放到 /etc/shadow 文件中,而
在 /etc/passwd 文件的口令字段中只存放一个特殊的字符,例如 "x"
或者 "*" 。
3 ) " 用户标识号 " 是一个整数,系统内部用它来标识用户。
一般情况下它与用户名是一一对应的。如果几个用户名对应的用户
标识号是一样的,系统内部将把它们视为同一个用户,但是它们可
以有不同的口令、不同的主目录以及不同的登录 Shell 等。
通常用户标识号的取值范围是 0 ~ 65535 。 0 是超级用户 root 的标识
号, 1 ~ 99 由系统保留,作为管理账号,普通用户的标识号从 100 开
始。在 Linux 系统中,这个界限是 500 。
4 ) " 组标识号 " 字段记录的是用户所属的用户组。
它对应着 /etc/group 文件中的一条记录。
5)" 注释性描述 " 字段记录着用户的一些个人情况。
例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的
用途。在不同的 Linux 系统中,这个字段的格式并没有统一。在许
多 Linux 系统中,这个字段存放的是一段任意的注释性描述文字,用
做 finger 命令的输出。
6)" 主目录 " ,也就是用户的起始工作目录。
它是用户在登录到系统之后所处的目录。在大多数系统中,各用户
的主目录都被组织在同一个特定的目录下,而用户主目录的名称就
是该用户的登录名。各用户对自己的主目录有读、写、执行(搜
索)权限,其他用户对此目录的访问权限则根据具体情况设置。

相关推荐
小何学计算机几秒前
Nginx配置基于端口的 Web 服务器
服务器·前端·nginx
菜鸟xy..5 分钟前
windows server 2008 建立ftp服务器
运维·服务器
dzq19817 分钟前
Hexo提交部署命令与Git Bash Here控制终端中按下Ctrl+C无法中断hexo s的解决办法
运维·git·hexo·部署博客·hexo s·ctrl+c·源码推送
团儿.28 分钟前
KVM磁盘配置:构建高效虚拟环境的基石
linux·运维·centos·kvm·kvm磁盘
zhqh1001 小时前
在qemu-system上跑arm-Debian
linux·arm开发·debian
昨天今天明天好多天1 小时前
【Linux】Redis 部署
linux·redis·bootstrap
hanzhuhuaa1 小时前
Linux 查看 nginx 安装目录和配置文件路径
linux·nginx
CloudJourney2 小时前
初始Docker
运维·docker·容器
惊鸿一博2 小时前
linux_电脑一运行程序就死机怎么处理?
linux·运维·电脑
环能jvav大师2 小时前
使用Ubuntu系统+VS Code开发STC51单片机
linux·c语言·开发语言·单片机·嵌入式硬件·ubuntu