用户的权限

news/2024/11/8 17:13:03/

Linux基础

提示:个人学习总结,仅供参考。
一、Linux系统部署

二、服务器初始化

三、文件和用户管理

四、用户的权限


提示:文档陆续更新整理

用户的权限

  • Linux基础
  • 一、基本权限UGO
    • 1. 权限对象:
    • 2. 权限类型
    • 3. 设置权限
      • (一)更改权限
        • A. 使用符号
        • B. 使用数字
      • (二)更改属组
        • A.chown命令
        • B.chgrp命令
    • 4. 案例
  • 二、基本权限ACL(了解即可)
    • 1.区别
    • 2.语法
    • 2.用法
      • (一)设置
  • 三、特殊权限(了解)
    • 1.特殊位suid
      • (一)高级权限的类型
      • (二)示例
    • 2.文件属性chattr
      • (一)用途
    • 3.进程掩码umask
      • (一)概述
      • (二)示例1:观察系统默认掩码
      • (三)示例2:修改shell umask值(临时)



提示:以下是本篇文章正文内容

一、基本权限UGO

1. 权限对象:

	权限的三类对象属于组:u属组:g其他人:o特殊对象:所有人:a(u+g+o)

2. 权限类型

	权限的三种类型读:r=4写:w=2执行:x=1

3. 设置权限

(一)更改权限

A. 使用符号

		语法使用符号:u用户,g组,o其他,r读,w写,x执行语法:chmod  对象(u/g/o)赋值符号(+/-/=)权限类型(r/w/x) 文件/目录		如:chmod      u         +     r          1.txt命令    对象      加减   权限      文件或目录

chmod a=rx 1.txt
//a,所有人 所有人都有读和执行权限

chmod a=r-x 1.txt
//所有人都有读和执行的权限 =,赋值符号, r-x 对应3个权限类型

使其他用户,没有读写执行的权限(三种方法):
chmod o= 1.txt
chmod o=— 1.txt
chmod o-rwx 1.txt

示例
1. 了解普通文件的基本权限
[root@localhost tmp]# ll file1
-rw-r--rr--,1 root root 04月 13 20:49 file1
//权限           属主 属组                文件[root@localhost tmp]# ll filel1 
-rw-r--r--.      1       root   root   0      4月 13 20:49     filel
类型和权限(11个)  链接     属主   属组   大小    创建时间       文件/目录名用户  组   其他人
rwx  rwx   rwx2. 编写程序
[root@localhost tmp]#vim file1.txt
echo "hello 2023"
read -p "请输入您的名字:"  name
echo "哈哈  $name 是大笨蛋"3. 增加执行权限
chmod u+x file1.txt4. 运行测试。成功
[root@localhost tmp]#./file1.txt
hello 2023
请输入您的名字:test
哈哈,test是大笨蛋
[root@localhost tmp]#5. 去除权限。执行失败
[root@localhost tmp]#chmod u-x file1.txt
[root@localhost tmp]#./file1.txt
-bash:./file1:权限不够6. 更多的修改权限练习

B. 使用数字

通过chmod 数字授权,用户读写执行,组读写,其他无
权限的三种类型读:r=4写:w=2执行:x=1[root@localhost tmp]#chmod 760 /tmp/file1.txt   //用户读写执行,组读写,其他无

(二)更改属组

A.chown命令

	chown:设置一个文件属于谁,属主语法:  chown   用户名.组名  文件
//改属主,属组
[root@localhost ~]#chown alice.hr file1//只改属主
[root@localhost ~]#chown alice file1//只改属组
[root@localhost ~]#chown .hr file1

B.chgrp命令

	chgrp:设置一个文件属于哪个组,属组语法:   chgrp  组名  文件   -R  是递归的意思
//改文件属组
[root@localhost ~]#chgrp hr file1//改文件夹属组		
[root@localhost ~]#chgrp -R hr dir1

4. 案例

需求:针对hr部门的访问目录(/home/hr)权限,需求如下:1. root用户和hr组的员工可以读、写、执行2. 其他用户没有任何权限操作思路:1. 创建组2. 创建用户3. 修改属主和属组4. 设置权限
操作规范
[root@localhost ~]#groupadd hr
[root@localhost ~]#useradd hr01 -G hr
[root@localhost ~]#useradd hr02 -G hr
[root@localhost ~]#mkdir /home/hr
[root@localhost ~]#chgrp hr /home/hr
[root@localhost ~]#chmod 770 /home/hr
[root@localhost ~]#ll -d /home/hr/     -d,表示文件夹
drwxrwx---. 2 root hr 4096 4月5  10:34:11  /home/hr

二、基本权限ACL(了解即可)

1.区别

user01 rwx file1
user02 rw file1
user03 r file1
user04 rwx file1
user05 rw file1

ACL文件权限管理:设置不通用户,不通的基本权限(r,w,x)。对象数量不同
UGO设置基本权限:只能针对一个用户,一个组和其他人

2.语法

setfacl -m u:alice:rw /home/test.txt
命令 设置 用户或组:用户名:权限 文件对象

2.用法

(一)设置

1. 准备文件
[root@localhost ~]#touch /home/test.txt
[root@localhost ~]#ll /home/test.txt
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt2. 设置ACL
//查看文件有那些ACL权限
[root@localhost ~]#getfacl /home/test.txt//设置用户alice,jack权限
[root@localhost ~]#setfacl -m u:alice:rw /home/test.txt
[root@localhost ~]#setfacl -m u:jack:-    /home/test.txt//请思考命令中的o是什么作用
[root@localhost ~]#setfacl -m o::rw /home/test.txt3. 查看和删除
//如何删除一条acl,如何删除所有acl呢?
[root@localhost ~]#ll /home/test.txt
-rw-rw-r--+ 1 root root 0 10-24 13:23 /home/test.txt[root@localhost ~]#setfacl /home/test.txt
[root@localhost ~]#setfacl -m g:hr.r /home/test.txt//删除组hr的acl权限
[root@localhost ~]#setfacl -x g:hr  /home/test.txt//删除用户alice的acl权限
[root@localhost ~]#setfacl -x u:alice  /home/test.txt//清除所有acl权限
[root@localhost ~]#setfacl -b /home/test.txt   //以报表的形式每个一秒钟查看一次/home/test.txt 的权限
watch - n1 'll /home/test.txt'

三、特殊权限(了解)

1.特殊位suid

(一)高级权限的类型

suid,(sgid)针对文件/程序时,具备临时获得属主的权限。
suid是真对文件锁设置的一个特备的权限。
功能:使调用文件的用户,临时具备属主的能力。

分析:root运行是超管的权限,普通用户运行时是普通用户的权限
root /usr/bin/cat(root) /root/file.txt OK
alice /usr/bin/cat(alice) /root/file.txt

(二)示例

设置suid,使普通用户通过suid临时提权,查看超管root用户的文件

  1. 为cat程序添加上suid权限
    chmod u+s /usr/bin/cat
  2. 使普通用户运行cat。暂时获得root权限
    添加权限之前普通用户无法访问,添加之后普通用户可以访问root的文件
    删除suid权限
    chmod u-s /usr/bin/cat

2.文件属性chattr

(一)用途

常用于锁定某个文件,拒绝修改。

  1. 分类
    这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
    a:让文件或目录仅供附加用途。
    b:不更新文件或目录的最后存取时间。
    c:将文件或目录压缩后存放。
    d:将文件或目录排除在倾倒操作之外。
    i:不得任意更动文件或目录。
    s:保密性删除文件或目录。
    S:即时更新文件或目录。
    u:预防意外删除
案例
1. 先创建新文件进行对比。查看默认权限
[root@localhost ~]#touch test.txt2. 加上不能删除的属性
[root@localhost ~]#chattr +i test.txt   //不能更改,重命名,删除3. 查看不同属性
[root@localhost ~]#lsattr test.txt
-----i--------- test.txt4. 尝试删除
[root@localhost ~]#rm -rf test.txt
rm:cannot remove 'test.txt':Operation not permitted5. 将属性还原
[root@localhost ~]#chattr -i test.txt注意设置文件属性(特殊权限),针对所有用户,root是否

3.进程掩码umask

(一)概述

新建文件、目录的默认权限会收到umask的影响,umask表示药剪掉的权限

(二)示例1:观察系统默认掩码

在shell进程中创建文件,先查看当前用户的umask权限
[root@localhost ~]#umask
0022
[root@localhost ~]#touch test.txt//首个7代表特殊位
[root@localhost ~]#chmod 7777 test.txt

(三)示例2:修改shell umask值(临时)

[root@localhost ~]#umask 000
[root@localhost ~]#mkdir dir900
[root@localhost ~]#touch file900


http://www.ppmy.cn/news/53064.html

相关文章

AD9208的4通道 14-bit、2.4GSPS采样率之中文版资料

板卡概述 FMC137 是一款基于 VITA57.4 标准规范的 JESD204B 接口FMC 子 卡 模 块 , 该 模 块 可 以 实 现 4 路 14-bit 、 2GSPS/2.6GSPS/3GSPSADC 采集功能。该板卡 ADC 器件采用 ADI 公司的 AD9208 芯片,,与 ADI 公司的 AD9689 可以实现…

Docker 在Linux-CentOS上的安装使用

Linux CentOS 虚拟机安装及与windows远程登录_XiaoGuaiSs的博客-CSDN博客 一、如果安装过程有兼容问题,执行更新 yum 包(生产环境中此步操作需慎重) 注意​ yum -y update:升级所有包同时也升级软件和系统内核;​ …

JQuery快速入门

JQuery是一个快速、简洁且功能丰富的JavaScript库,它封装了JavaScript常用的操作,提供了一种简单的方式来操作HTML文档、处理事件、创建动画、处理AJAX请求等。JQuery不仅可以减少编写代码的工作量,也可以提高代码的可读性和可维护性。 load…

Java每日一练(20230428)

目录 1. 搜索旋转排序数组 🌟🌟 2. 用栈实现队列 🌟 3. x 的平方根 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 搜索旋转排序…

VirboxLM-免服务版授权码,快速实现一机一码

一、产品介绍 ​ 授权码是由深盾科技开发的一款软件保护及授权管理产品 ​,一方面要保护软件代码不被逆向,另一方面要控制软件的授权使用。软件用户只需要输入授权码(由数字和字母组成的一串字符),激活授权码后即可使…

Android 基于NumberPicker自定义弹出窗口Dialog整合日期选择器

Android实现把年月选择器放到AlertDialog中_左眼看成爱的博客-CSDN博客 Android使用NumberPicker实现年月滚动选择器_左眼看成爱的博客-CSDN博客 前面两篇文章我们分别讲了 1,如何用NumberPicker实现年月选择器 2,如何把1中的用NumberPicker实现的年…

闲聊Java中$符的各种使用场景

前言 在Java编程中,我们会经常看到$符的身影,比如经常在配置文件中看到$符号作为变量占位符,用于在运行时动态地获取变量值。这种做法有助于提高代码的灵活性和可维护性。除了在配置文件中使用$符号外,我们还会在其他场景中遇到这…

统计学习方法第二章——感知机

x.1 前言 perceptron感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例类别(取-1,1)。perceptron旨在求出将训练数据进行线性划分的分离超平面,属于classification判别模型,策略为基于误分类的损失函数&…