您现在的位置是:首页 >其他 >用户的权限网站首页其他

用户的权限

形如陌人 2023-07-07 16:00:02
简介用户的权限

Linux基础

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

二、服务器初始化

三、文件和用户管理

四、用户的权限


提示:文档陆续更新整理



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

一、基本权限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   rwx

2. 编写程序
[root@localhost tmp]#vim file1.txt
echo "hello 2023"
read -p "请输入您的名字:"  name
echo "哈哈  $name 是大笨蛋"

3. 增加执行权限
chmod u+x file1.txt

4. 运行测试。成功
[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.txt

2. 设置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.txt

3. 查看和删除
//如何删除一条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.txt

2. 加上不能删除的属性
[root@localhost ~]#chattr +i test.txt   //不能更改,重命名,删除
			
3. 查看不同属性
[root@localhost ~]#lsattr test.txt
-----i--------- test.txt

4. 尝试删除
[root@localhost ~]#rm -rf test.txt
rm:cannot remove 'test.txt':Operation not permitted

5. 将属性还原
[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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。