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用户的文件
- 为cat程序添加上suid权限
chmod u+s /usr/bin/cat- 使普通用户运行cat。暂时获得root权限
添加权限之前普通用户无法访问,添加之后普通用户可以访问root的文件
删除suid权限
chmod u-s /usr/bin/cat
2.文件属性chattr
(一)用途
常用于锁定某个文件,拒绝修改。
- 分类
这项指令可改变存放在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