百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux系统——用户、用户组、权限和文件属性

ahcoder 2025-02-08 09:52 18 浏览

前言:

学Java的过程中就接触到了不少Linux命令,什么cd、pwd、ls等,但是从未系统学习过,还好遇见了一本秘籍——《鸟哥的Linux私房菜-基础学习篇(第三版)》,于是便有了如下的学习笔记,本篇主要包括如下内容:

  1. Linux的概念
  2. 用户和用户组
  3. 文件属性
  4. Linux下的权限
  5. 书中小栗子

另外,鸟哥的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)此目录,其他用户不可进入此目录。

相关推荐

Linux 6.15将更新媒体子系统:高通Iris驱动首次亮相

IT之家3月24日消息,科技媒体phoronix昨日(3月23日)发布博文,报道称Linux6.15内核将于本周启动合并窗口,首批提交的PullRequest请求之一,就...

Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新

IT之家4月18日消息,科技媒体linuxiac昨日(4月17日)发布博文,报道称代号为PluckyPuffin的Ubuntu25.04发行版正式上线,搭载最新Linu...

WordPress 6.8 版本发布:聚焦性能升级,代号“Cecil”

WordPress6.8版本发布:聚焦性能升级,代号“Cecil”全球最受欢迎的内容管理系统(CMS)WordPress正式推出最新版本6.8,代号“塞西尔”(Cecil),以此致敬传奇钢琴家...

Linus Torvalds接受微软Hyper-V升级 下一代Linux启动会更快

虽然Windows的粉丝和Linux的粉丝经常喜欢进行激烈的键盘大战,但操作系统的制造商们自己也了解彼此的优缺点。毫无疑问,微软也明白这一点,事实上,它甚至鼓励用户尝试Linux,尽管是使用...

Debian 12发布:Linux内核升级6.1(debian更新内核)

IT之家6月11日消息,Debian是最古老的GNU/Linux发行版之一,也是许多其他基于Linux的操作系统的基础,包括Ubuntu、Kali、MX和树莓派OS等。这...

Linux Mint预告新功能:升级Nemo搜索、LMDE 7支持OEM安装

IT之家4月10日消息,LinuxMint发布了最新月度简讯,宣布增强Nemo文件管理器的文件搜索功能、Cinnamon桌面环境开始支持Wayland、LMDE7(LinuxM...

Linux 6.2合并大量网络系统更新:推进Wi-Fi 7和800 Gbps网络

IT之家12月15日消息,Linux6.2合并窗口期内已经确认将会合并大量网络子系统更新。和以往版本相同,Linux6.2内核更新周期在网络功能上有大量的改进,更多的细节可以访问这条...

Linux内核升级实践指南(linux内核怎么升级)

Linux内核升级是一个需要谨慎操作的过程,但掌握正确方法后可以显著提升系统性能、安全性或硬件兼容性。以下是一份详细的实践指南,涵盖主流方法及注意事项:一、准备工作查看当前内核版本bashuname...

Linux又将迎来大版本更新 5.20版可能会被称为Linux 6.0

如果你错过了昨天Linux5.19的发布公告,那么这一消息需要回顾一下:被称为Linux5.20的开发中的内核很可能会被称为Linux6.0。根据LinusTorvalds对现代版本的划分,L...

周六的娱乐就是安装一台OracleLinux虚拟机(一)

每个人有每个人的娱乐方式。老父亲可能喜欢摆弄一些机械工具修修补补。我趁着周六安装一套OracleLinux,寓学于乐。在oracle网站上,下载VirtualBox,现在最新版本是7.0.8。在安装过...

Linux系统下Gaussian 16的安装(linux系统如何安装新软件)

Gaussian是目前使用最多的量子化学计算软件,当前最新的版本为Gaussian16C.01。理论上来说Gaussian并不需要安装,因为高斯一般是不出售源代码的,只有二进制文件,以Gaussi...

「Linux基础」VMWare虚拟机安装CentOS后配置静态ip

在VMWare中安装本地虚拟机CentOS7操作系统,动态IP地址会经常变化,不便于管理与实验。为了便于实验,考虑设置成静态IP地址,目标是本地局域网可以通过NAT网关互相访问,且能连接互联网。由于是...

Win10虚拟机,Hyper-V安装CentOS,一次成功

打开控制面板,选择程序选择启用或关闭Windows功能选中Hyper-V下所有的组件。提示我们需要,重启计算机,保存我们的文件,之后点击“立即重新启动”选择开始菜单,输入Hy,就可以打开虚拟机管理器了...

如何在Windows 10中的Hyper-V虚拟机上安装CentOS Linux

注意双重引导的一种可行且相当不错的替代方法是在虚拟机上安装各种操作系统。Microsoft正式支持CentOS作为Hyper-V的来宾OS,并且在安装时可以很好地集成。自CentOS6.4版以来,用...

安装Linux虚拟机的5个理由,以及不安装的5个原因

虚拟机(VM)允许你在不永久更改计算机的情况下探索Linux。如果你对Linux很好奇,但犹豫是否要尝试,VM提供了一个安全、灵活的解决方案。如果这是你第一次听说虚拟机,虚拟机就像“计算机中的计算机”...