Linux系统——用户、用户组、权限和文件属性
gudong366 2025-04-01 13:09 29 浏览
前言:
学Java的过程中就接触到了不少Linux命令,什么cd、pwd、ls等,但是从未系统学习过,还好遇见了一本秘籍——《鸟哥的Linux私房菜-基础学习篇(第三版)》,于是便有了如下的学习笔记,本篇主要包括如下内容:
- Linux的概念
- 用户和用户组
- 文件属性
- Linux下的权限
- 书中小栗子
另外,鸟哥的Linux私房菜还有官网:鸟哥的 Linux 私房菜 官网看书也很方便了~感谢鸟哥!
1.Linux的概念
Linux是类Unix的,支持多用户多任务的分时操作系统,拥有多套发行版(分支),其内核是Linus Torvalds在1991年开发的,现如今的Linux是服务器和开发人员首选的操作系统,广泛应用于嵌入式系统、服务器、超级计算机等,手机上的安卓操作系统也是基于Linux内核开发的。
2.用户和用户组
2.1用户的概念
linux是多用户多任务的分时操作系统,不同用户可以"同时"在一台服务器上执行不同的任务,CPU时间片轮转执行这些任务,不同的用户会产生不同的文件,有些文件可能不想让其他用户查看更改,于是用户可以给文件设置相应的权限。
用户权限:用户对文件/目录的权限有读r、写w、执行x。
2.2用户组的概念
学过Java安全/权限框架(如Shrio)的同学应该知道,权限校验的核心在于三点:
1.用户
2.角色
3.权限
一个用户可以有多个角色,每个角色又可以有特定的一些权限。
Linux系统中一个用户可以加入多个用户组,一个用户组就相当于一种"角色",其存在的目的就在于不同角色拥有不同权限,只是Linux下的权限是对于文件or目录而言的。
2.3小栗子
假设一台Linux服务器上有6个用户:root、lucifer、michael、user1、user2、user3,其中root是系统管理员,lucifer和michael是辅助管理者,user1~3则是普通用户。现在root用户创建了一个系统日志文件system.log,此时希望root可以读写执行,辅助管理者可以读不可以写、普通用户不可以读写执行,那么就可以通过用户组来实现。
创建用户组:admingroup,用来表示辅助管理者,组内包含lucifer和michael两个用户。
创建用户组:tempuser,表示普通用户,将user1~3加入其中。
将admingroup组的权限设为r-x,tempuser组权限设为---,然后更改system.log文件所属群组admingroup,再更改文件权限为-rwxr-x---即可
3.文件属性
文件属性,就是文件相关的属性,主要包括文件使用者的权限、文件连接数、文件所有者、文件所属群组、文件大小、文件最后修改时间、文件名等。
3.1用户分类的概念
Linux系统中,用户组的概念和文件是息息相关的,对于文件/目录来说,其存在的意义就是被用户使用,而用户主要分为三类:
- 文件所有者Owner
- 文件所属群组用户Group
- 其他用户Others
文件所有者,即文件的拥有者,文件所有者!=文件创建者,因为文件被创建后可以用chown命令改变文件所有者;群组用户即文件所属的用户组内的所有用户,此处需注意,文件所属群组也是可以人为改变的,命令是chgrp;其他用户即除了所有者和同组用户外的其他用户。
3.2文件属性的组成
可以用ls -l命令查看详细的文件/目录的属性:
-rw-r--r-- 1 root root 42304 Nov 15 10:32 install.log
初看符号会有点蒙,可以看下文字版的:
文件类型+文件使用者权限+文件连接数+所有者+所属群组+大小+最后修改时间+文件名
文件类型
第一个字符表示文件类型,-表示文件;d则表示目录;l表示链接文件,c表示设备里的串行端口如鼠标、键盘;b则表示设备里可存储的接口......
如:drwxrwxrwt 7 root root 4096 Sep 27 18:23 /tmp
第一个字符:d,表示这是一个目录
文件使用者权限
类似于rw-r--r--的一串符号,此段分为三个固定部分:文件所有者、所属群组用户、其他用户
每个部分用3个符号表示,r表示可读(read);w表示可写(write);x表示可执行(execute),这三个权限的位置是固定的,如果没有权限,则用 - 来表示。
所以rw-r--r--表示:
对于文件所有者来说,有r和w权限;对于同组用户,有r权限;其他用户,有r权限。
文件连接数
表示有多少文件名连接到此节点(i-node),此处为1。
所有者和所属群组
此处root root表示该文件属于root用户,属于root群组。
文件大小
这个文件的容量大小,默认单位为B。
最后修改时间
记录了文件的创建日期,或者最近的修改日期。
文件名
可以看到,该文件的文件名为:install.log,如果是隐藏文件,文件名以"."开头。
3.3改变文件属性和权限
chgrp:改变文件所属用户组
chown:改变文件所有者
chmod:改变文件权限
4.Linux下的权限
Linux下可以拥有多用户,每个用户的权限不外乎r、w和x三种,权限主要作用于文件和目录(文件夹)上,即对文件的读写修改删除、对文件夹的操作等,但具体到文件和目录时,权限的体现有所不同。
4.1权限对于文件的意义
一般情况下,文件是实际存储数据的地方,如文本文件、数据库内容文件、二进制可执行文件等,对于这类文件来说,权限的意义如下:
r(read):
读,可读取文件的实际内容,如文本文件中的文字内容等。
w(write):
写,即可以新增、编辑、修改文件内容,但是不包括删除。
x(execute):
执行,即表示该文件具有可被系统执行的权限。
4.2权限对目录的意义
目录和文件的关系紧密,因为目录下通常存放了文件名列表,那么对于目录,r、w、x分别有何意义呢?
r(read):
读,表示拥有读取目录列表的权限,有此权限表示可以读取该目录下所有的文件名,即可以通过ls命令来显示出来。
w(write):
写,表示拥有修改目录结构的权限,主要包括:
- 在该目录下新建新的文件和目录
- 删除该目录下已存在的文件和目录(而不管它们的权限)
- 重命名该目录下所有的文件和目录(包括自身)
- 转移该目录下的文件和目录(修改路径)
x(execute):
执行,表示该用户是否可以切换到此目录,即进入该目录使其成为当前工作目录,如果没有x权限,则不可以通过cd命令切换到此目录。
4.3权限分
对于三类不同的用户——Owner、Group和Others,每一类用户都有r、w、x三类权限,权限的更改可以通过chmod命令完成。除了用类似:-rw-r--r--的符号来表示和设定用户权限,为了方便,还可以通过权限分的方式来更改用户权限。
计分规则如下:
r :4
w:2
x :1
-rw-r--r--对应的分数表示为:644
rw- 6(4+2)
r-- 4 (4+0+0)
r-- 4 (4+0+0)
-rwxrwxrwx 计分:777
-rwxr-xr-x 计分:755
5.书中小栗子
例1(第6章P143):
假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?
-rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai
1.test.txt文件拥有者为root,文件所属群组为root,拥有者有读写此文件的权限,但是不可执行,群组和其他用户有只读权限。
2.ping_tsai文件拥有者为test1用户,文件所属群组为testgroup,拥有者有读写和执行权限,群组成员拥有可读可执行权限(但是不可以写和修改),其他用户仅可读。
例2(第6章P143)
如果我的目录为下面的样式,请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?
drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/
此目录拥有者为test1用户,所属testgroup群组,拥有者test1的权限是rwx,即可读可写可执行,testgroup群组用户权限是r-x,即可读可执行,其他用户r--表示仅可读。
testgroup组的用户拥有x权限,故可以进入(cd)此目录,其他用户不可进入此目录。
- 上一篇:3、linux命令-权限管理
- 下一篇:Linux 选择题大全
相关推荐
- linux sed系列 第四篇:sed工业实战——日志处理与数据清洗
-
“掌握了sed的编程能力后,我们如同装备精良的工匠,终于可以踏入真实的工业战场。本篇将聚焦sed在日志分析、数据合规化、多文件批处理等场景中的应用,看它如何在海量数据中游刃有余,展现文本处理的...
- Linux下sed的简单使用(linux中sed是什么意思)
-
1、sed简介stremeditor流编辑器,它是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大,sed编辑器是一行一...
- linux基础命令之date命令(linux中的date)
-
date命令主要用于显示或者设置系统时间语法格式:date参数对象使用date命令时,最好先使用date--help命令查看支持哪些参数,有些小型Linux系统下的date命令,只支持一些基本参...
- Ubuntu linux 常用命令(ubuntu常用的50个命令)
-
使用dpkg命令来安装.deb包。sudodpkg-i~/example.deb如果在安装过程中遇到依赖问题,可以使用以下命令来修复:sudoapt-getinstall-f将flut...
- Linux基础命令-sed命令(linux教程:sed命令的用法)
-
Sed全名streameditor流编辑器,它是一个强大的文本处理工具,它可以从文件中接受输入,也可以接受来自标准输入流的输入,它擅长取行。Sed的用途非常广泛,包括:1)文本替换2)选择性的输...
- linux sed系列 第二篇:sed进阶技巧——地址定位与正则表达式
-
“上一篇我们掌握了sed的基础替换,如同获得了第一把钥匙。现在,让我们更进一步,学习如何精准锁定目标行,如同拥有了导航地图,让每一次操作都直击要害!”地址定位的四种维度sed的强大,很大程度上源...
- 火狐Firefox浏览器140发布:手动Unload标签页、优化翻译体验等
-
IT之家6月24日消息,Mozilla在发布版本139不到一个月后,推出了最新的开源网页浏览器Firefox140。新版本增加了手动Unload标签页的功能,优化了垂直标签页的调...
- Linux 基本正则表达式及扩展正则表达式功能举例
-
在Linux中,正则表达式(RegularExpression)是一种强大的模式匹配工具,用于在文本中查找、匹配和处理特定模式的字符串。Linux支持两种类型的正则表达式:基本正则表达式(Basic...
- linux下find命令的经典26个使用示例
-
简介find命令是基于unix的操作系统中常用的工具之一。顾名思义,它在目录层次结构中查找文件和目录。用户可以传递不同的参数,并根据文件的名称、扩展名、类型、大小、权限、修改时间、所有者、组等搜索文件...
- linux运维中特殊符号的应用与实践
-
路径位置类的特殊符号(1)、波浪线(~)在linux系统的命令行中,~表示用户的家目录,超级用户为/root,普通用户为/home。假设我当前目录在usr/local下[root@xrylocal]...
- 开源框架log4cpp实战(开源gui框架)
-
1.Log4cpp使用Log4cpp中主要包含Category(种类),Appender(附加器),Layout(布局),Priorty(优先级),NDC(嵌套的诊断上下文)。Category、App...
- Linux find命令详解(linux find -l)
-
一、命令介绍Linuxfind命令是类unix操作系统中最重要和最常用的命令行实用程序之一。find命令用于根据指定的条件搜索和定位与参数匹配的文件和目录列表。find命令提供了广泛的选项,允许用户...
- Linux运维:单引号与双引号的使用(linux 单引号和双引号)
-
1、单引号的使用单引号可以将它中间的所有任意字符还原为字面意义,实现屏蔽Shell元字符的功能。注意不可以在两个单引号中间单独插入一个单引号,单引号必须成对出现。示例1:定义一个变量,并输出变量的...
- Linux技巧:find 命令用法详细说明,看完会有收获
-
在Linux命令中,find是比较复杂难用的命令。使用该命令搜索文件时,常常发现自己找了一些例子能用,但稍微改一下条件,就搜不到想要的结果。下面会以一些实例来说明使用find命令的关键要点和...
- Linux Shell中单引号、双引号、反引号的解释
-
1、单引号('')单引号所见即所得,直接显示单引号里的内容。即单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的。比如下面的例子,单引号所见即所得。2、双引号("...
- 一周热门
- 最近发表
-
- linux sed系列 第四篇:sed工业实战——日志处理与数据清洗
- Linux下sed的简单使用(linux中sed是什么意思)
- linux基础命令之date命令(linux中的date)
- Ubuntu linux 常用命令(ubuntu常用的50个命令)
- Linux基础命令-sed命令(linux教程:sed命令的用法)
- linux sed系列 第二篇:sed进阶技巧——地址定位与正则表达式
- 火狐Firefox浏览器140发布:手动Unload标签页、优化翻译体验等
- Linux 基本正则表达式及扩展正则表达式功能举例
- linux下find命令的经典26个使用示例
- linux运维中特殊符号的应用与实践
- 标签列表
-
- linux一键安装 (31)
- linux运行java (33)
- ln linux (27)
- linux 磁盘管理 (31)
- linux 内核升级 (30)
- linux 运行python (28)
- linux 备份文件 (30)
- linux 网络测试 (30)
- linux 网关配置 (31)
- linux jre (32)
- linux 杀毒软件 (32)
- linux语法 (33)
- linux博客 (33)
- linux 压缩目录 (37)
- linux 查看任务 (32)
- 制作linux启动u盘 (35)
- linux 查看存储 (29)
- linux乌班图 (31)
- linux挂载镜像 (31)
- linux 软件源 (28)
- linux题目 (30)
- linux 定时脚本 (30)
- linux 网站搭建 (28)
- linux 远程控制 (34)
- linux bind (31)