Linux 之五:权限管理(文件权限和用户管理)

news2024/11/16 7:36:08

1. 文件权限

在Linux系统中,文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。

每个文件或目录都有一个包含9个字符的权限模式,这些字符分为三组,每组三个字符,分别对应文件所有者的权限、所属组的权限和其他用户的权限。

具体来说,这三个权限位组按顺序排列如下:

  1. 文件所有者(Owner)的权限
  2. 所属组(Group)的权限
  3. 其他用户(Others)的权限

每个权限位组内的三个字符代表读(r)、写(w)和执行(x)三种权限:

  • r(Read):允许读取文件内容(对于目录,意味着可以列出其下的文件列表)
  • w(Write):允许修改或删除文件内容(对于目录,意味着可以在该目录下创建、移动或删除文件)
  • x(Execute):允许运行程序脚本或进入目录(对于目录,意味着可以通过cd命令进入该目录)

当某个权限不存在时,则用 - 来代替相应的字符。

此外,还有一种特殊的情况,如果一个文件设置了suid、sgid或者sticky bit,那么权限位上可能出现sStT等符号,它们分别表示:

  • s 或 S:设置了setuid/setgid位,表示执行该文件时将拥有文件所有者的权限(对于可执行文件)或临时加入到文件所在组(对于目录)。
  • t 或 T:只针对目录,设置了粘滞位(sticky bit),表示即使非文件所有者或所在组成员也可以删除或修改自己的文件,但不能删除其他用户的文件。

例如,一个文件可能有如下的权限设置:

-rwxr-xr--

这表示:

  • 文件所有者具有读(r)、写(w)和执行(x)权限。
  • 所属组具有读(r)和执行(x)权限,但没有写(w)权限。
  • 其他用户只有读(r)和执行(x)权限,同样没有写(w)权限。

使用 ls -l 或 ll 命令时:

[root@zhangpeng mydir]# ll
total 8
drwxr-xr-x. 3 zhang zhang  68 Aug 14 17:35 a
-rw-r--r--. 1 zhang zhang  93 Aug 16 10:00 Test1.java
-rw-r--r--. 1 zhang zhang   0 Aug 14 17:34 Test5.java
-rw-r--r--. 1 zhang zhang 106 Aug 16 09:48 Test.java
-rw-r--r--. 1 zhang zhang   0 Aug 14 17:34 Test.txt

从上面文件详细信息列表中,可以查出文件操作权限及所属用户、用户组、时间、大小等信息

drwxr-xr-x :

d :表示目录 (文件类型)

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

rwx: 表示可读可写可执行(文件所属用户)

r-x: 表示可读不可写可执行 (文件所属组)

r-x : 表示可读不可写可执行 (Other 其他用户)

数字模式:

rwx: 111 ---7

r-- : 100 ---4

r-x : 101 ----5

举例:

-rw-r--r--. 用数字表示是: 110 100 100 转为十进制 644 。

修改文件所属

chown - change file owner and group

[root@wang dir]# ll
total 16
drwxr-xr-x. 4 root root  29 Aug 24 03:17 dest
drwxr-xr-x. 2 root root 107 Aug 24 03:08 newdir
-rwxr--r-x. 1 root root   0 Aug 24 03:23 testfile.txt
-rw-r--r--. 1 root root   0 Aug 24 04:13 Test.java
-rw-r--r--. 1 root root  61 Aug 24 04:14 Test.xx
-rwxr-xr--. 1 root root  13 Aug 24 04:29 T.java
-rw-r--r--. 1 root root   8 Aug 24 03:06 TT.txt
-rw-r--r--. 1 root root  23 Aug 24 04:34 Word.java
drwxr-xr-x. 2 root root  74 Aug 24 03:17 xyz
[root@wang dir]# chown zhang newdir            
[root@wang dir]# ll
total 16
drwxr-xr-x. 4 root  root  29 Aug 24 03:17 dest
drwxr-xr-x. 2 zhang root 107 Aug 24 03:08 newdir
-rwxr--r-x. 1 root  root   0 Aug 24 03:23 testfile.txt
-rw-r--r--. 1 root  root   0 Aug 24 04:13 Test.java
-rw-r--r--. 1 root  root  61 Aug 24 04:14 Test.xx
-rwxr-xr--. 1 root  root  13 Aug 24 04:29 T.java
-rw-r--r--. 1 root  root   8 Aug 24 03:06 TT.txt
-rw-r--r--. 1 root  root  23 Aug 24 04:34 Word.java
drwxr-xr-x. 2 root  root  74 Aug 24 03:17 xyz
[root@wang dir]# 

2.用户管理

查看用户信息

1)su username 切换用户名 2)whoami 查看当前用户

[root@zhangpeng mydir]# whoami
root

3)id: 查看当前用户的编号,所属组号,所属组的信息

[root@zhangpeng mydir]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

4)id zhang: 查看zhang用户的编号,组号等信息

[wangwu@zhangpeng ~]$ id zhang
uid=1000(zhang) gid=1000(zhang) groups=1000(zhang)

5)groups: 查看当前用户所属组

[wangwu@zhangpeng ~]$ groups
wang

6)groups zhang: 查看用户zhang所在组

[wangwu@zhangpeng ~]$ groups zhang
zhang : zhang

7)用户信息文件: /etc/passwd 存储用户账号 /etc/group 存储组账号 /etc/shadow 存储用户账号的密码 /etc/gshadow 存储用户组账号的密码

添加用户

8)添加组

[root@wang ~]# groupadd zhou
[root@wang ~]# useradd zhouyu -g zhou
[root@wang ~]# id zhouyu
uid=1010(zhouyu) gid=1009(zhou) groups=1009(zhou)

9)添加用户

[root@zhangpeng wangwu]# useradd lisi -g li  ## 添加用户时,指定所属组 -g
[root@zhangpeng wangwu]# useradd li -g li
[root@zhangpeng wangwu]# id li                ## 查看指定用户所属组
uid=1006(li) gid=1004(li) groups=1004(li)

useradd zhang # 默认创建 zhang 用户,同时创建同名zhang的组。

[root@zhangpeng wangwu]# useradd zhao
[root@zhangpeng wangwu]# id zhao
uid=1007(zhao) gid=1007(zhao) groups=1007(zhao)
重置密码

passwd

[root@wang ~]# passwd caozhi
Changing password for user caozhi.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@wang ~]# 

用户创建成功后,默认会在 /home 目录下自动创建以用户名为目录名的一个目录。目录直接所属新增的这个用户

[root@wang etc]# ls /home
caopi  caozhi  guan  li  lisi  liu  wang  wangwu  zhang  zhangsi  zhao
[root@wang etc]# 
用户删除

userdel username : 注意 删除时,不能删除关联的 home 下的目录及其他附属信息

userdel -r username : 彻底删除,删除/home 目录及关联其他信息

注意:删除用户时,此用户是组中最后一个用户,会关联删除组

[root@wang home]# useradd huang
[root@wang home]# id huang
uid=1010(huang) gid=1010(huang) groups=1010(huang)
[root@wang home]# userdel -r huang        
[root@wang home]# 
用户组删除
[root@wang home]# useradd huang         # 同时创建组
[root@wang home]# tail -3 /etc/group    # 查看组
cao:x:1008:
zhou:x:1009:
huang:x:1010:
[root@wang home]# groupdel huang          # 删除组   不能删除存在用户的组
groupdel: cannot remove the primary group of user 'huang'
[root@wang home]# 

[root@wang home]# groupadd zhang    # 创建空组
[root@wang home]# groupdel huang    # 可以直接删除成功
用户权限
[root@wang home]# ll
total 4
drwxr-xr--.  3 wangliu  wang   132 Aug 24 09:47 wangliu      # 其他用户只读
drwxr-x---.  3 wangwu   wang    78 Aug 24 09:42 wangwu
drwxr-x---. 15 zhang    zhang 4096 Aug 24 08:54 zhang
drwx------.  5 zhangsan zhang  107 Aug 24 09:47 zhangsan
[root@wang home]# su zhangsan
[zhangsan@wang home]$ cd wangliu                            # 当前zhangsan 不能进入到r-- 目录中,因为没有执行权限
bash: cd: wangliu: Permission denied
[zhangsan@wang home]$ ls wangliu                            # 可以查看文件下文件,可以使用 ls 
ls: cannot access wangliu/Test2.java: Permission denied
ls: cannot access wangliu/Test3.java: Permission denied
ls: cannot access wangliu/Test4.java: Permission denied
Test2.java  Test3.java  Test4.java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1499878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面向对象中类与对象

思考系统1000个对象逻辑结构 理解系统1000个对象物理结构 对象this 引用 类的静态变量和静态函数 静态变量和静态函数属于类本身,而不是类的实例。它们可以在不创建类的实例的情况下直接通过类名访问。静态变量在内存中只有一份拷贝,被所有实例共享&…

基于FPGA加速的bird-oid object算法实现

导语 今天继续康奈尔大学FPGA 课程ECE 5760的典型案例分享——基于FPGA加速的bird-oid object算法实现。 (更多其他案例请参考网站: Final Projects ECE 5760) 1. 项目概述 项目网址 ECE 5760 Final Project 模型说明 Bird-oid object …

关于esp8266的一些经验汇总,新手必看

说实话,esp8266的nodemcu 已经使用了2年多了,各种问题遇到过,就尝试各种解决,而现在回头来看真的是稀里糊涂的在用,当然这个问题也同样涉及到esp32. 因为最近打算自己打一块esp8266的板,之前打的比较多的是…

数据结构之单链表详解(C语言手撕)

​ 🎉个人名片:🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN…

(五)关系数据库标准语言SQL

注:课堂讲义使用的数据库 5.1利用SQL语言建立数据库 5.1.1 create Database 5.1.2 create schema...authorization... 创建数据库和创建模式的区别: 数据库是架构的集合,架构是表的集合。但在MySQL中,他们使用的方式是相同的。 …

如何修改SAP标准代码

文章目录 1 Introduction2 Method2.1 Click Change2.2 Switch off Assistent 3 Summary 1 Introduction In the sap sometimes we need change the standard code . I.E. How to comment code ? 2 Method 2.1 Click Change 2.2 Switch off Assistent This is the result wh…

GAMMA电源维修高压直流电源ES30P-5W ES系列

美国Gamma高压电源维修型号:D-ES30R-10N-5W/M,LXR30-1N,XRM5N-100W,ES50P-10W/DDPM,ES60P-10W/DDPM,RR20-20P/DDPM,ES30P-10W,ES60P-10W DDPM,RR60-18P/220V,…

iStoreOS系统内安装HomeAssistant服务

iStoreOS系统内安装HomeAssistant服务 1. HomeAssistant服务 HomeAssistant是一款基于Python的开源智能家居系统,简称HA。 HomeAssistant可以方便地连接各种外部设备,如智能设备、摄像头、邮件、短消息和云服务等,其成熟的可连接组件有近千…

rocketmq学习笔记(一)安装部署

初次使用rocketmq,记录一下全流程步骤。 1、下载安装包 首先在官网,下载安装包,可也根据官方文档进行部署,但有一些细节没说明,可能会有坑,本文会尽量详细的描述每个步骤,把我踩过的坑填补上。…

Python自动化测试:API接口自动化——requests、webSocket

接口自动化测试1 一、requests二、简单示例1.导入/引入库2.请求与响应示例1>简单访问百度主页-GET请求2>简单的登录请求-POST请求3>保存cookies至头信息headers4>其他接口请求时携带headers 三、webSocketwebSocket连接与数据收发示例 本文介绍了借助Python的reque…

Manacher 算法——Leetcode 5.最长回文子串

在了解之前,我们先要了解什么是回文串,什么是回文子串。 回文串和回文子串: 回文串是指一个字符串正序遍历和反向遍历结果相同的字符串。如 ABBA,正着读反着读结果是一样的。 有了回文串的概念,回文子串的概念也就显…

顺势交易中,用什么方法识别趋势的开始与结束?

在交易过程中,大家都知道顺势交易的重要性,但如何对趋势的开始和结束进行量化判断呢? 趋势交易需要一个正确的出发点和思想方向。也就是说,趋势交易需要关注什么呢?有哪些相关的技术手段可以利用呢? 首先&a…

springboot使用异步多线程

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 在shigen之前的很多文章中,提到了线程池: 高性能API设计…

一 windso10 笔记本刷linux cent os7.9系统

1:准备材料 16G以上U盘, 笔记本一台 镜像选了阿里云镜像:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 软件:链接:https://pan.baidu.com/s/13WDp2bBU1Pdx4gRDfmBetg 提取码:09s3 2:把镜像写入U盘,本人已经写入好了,选择镜像,点开始就是,确定等…

javascript正则深入

文章目录 一、前言二、高级`API`2.1、模式匹配的用法`(x)`2.2、非捕获括号的模式匹配`(?:x)`2.3、先行断言`x(?=y)`2.4、后行断言`(?<=y)x`2.5、正向否定查找`x(?!y)`2.6、反向否定查找`(?<!y)x`2.7、字符集合和反向字符集合的用法 `[xyz] / [^xyz]`2.8、词边界和非…

开关电源安规测试标准与测试要求

安规测试是对开关电源进行电气性能、安全性能等检测&#xff0c;确保开关电源符合规定并且安全可靠&#xff0c;为开关电源的质量把关。那么开关电源安规测试有哪些测试要求和标准呢&#xff1f; 开关电源安规测试要求 一、测试前 1. 首先&#xff0c;要检查测试环境&#xff0…

电子商务平台中商品数据采集|API数据接口采集商品的高效性体现

电子商务平台由一个个产品所构成,通过对产品的分析可以有效发掘用户需求,优化店铺产品结构,提升客户粘性、客单价、销售利润等。 一、产品行业数据采集API接口 采集产品行业数据的核心目的是了解该产品的市场需求变化情况,常用到的数据采集指标包括产品搜索指数和产品交易指数两…

项目建设计划书-word

【项目建设计划书-word】 项目描述&#xff08;项目目标&#xff0c;客户需求情况&#xff0c;项目交付清单&#xff0c;验收标准和交付期限&#xff0c;服务及约束&#xff09;项目组织&#xff08;项目组人员架构&#xff0c;职责分工&#xff0c;人员投入安排及时间点安排&…

Python爬虫——Scrapy-1

目录 简介 安装 基本使用 1. 创建爬虫的项目 2. 创建爬虫文件 3. 运行爬虫代码 scrapy项目组成 scrapy工作原理 ​编辑 58同城 scrapy架构组成 汽车之家 总结 简介 Scrapy 是一个基于 Python 的开源网络爬虫框架&#xff0c;它可以帮助开发者快速、高效地构…

MySQL和语言的连接

1.下载开发包 有了之前的基础&#xff0c;就可以使用语言来使用数据库了&#xff0c;实际上原生命令行操作数据库的场景比较少&#xff0c;语言级别的库和包才更加常用&#xff0c;接下我来带您学习如何使用 C/C 访问 MySQL 客户端。 然后创建一个可以远程登录的用户&#xf…