linux文件权限设置与磁盘配额设置 |
您所在的位置:网站首页 › linux如何清理磁盘空间 › linux文件权限设置与磁盘配额设置 |
一、Linux文件权限 1.r --读取权限---对应八进制4 2.w --写权限 ---对应八进制2 3.x --可执行权限-对应八进制1 4.- --无任何权限-对应八进制0 rwx r-x r-x 7 5 5 二、文件权限 1.u: user --文件的属主(用户) 2.g: group --文件属主所在的组 3.o: other --其他的用户 4.a: all以上三种 三、文件权限修改命令 1)数字表示权限的方法: 1.r --读取权限---对应八进制4 2.w --写权限 ---对应八进制2 3.x --可执行权限-对应八进制1 4.- --无任何权限-对应八进制0 chmod 命令 +使用数字形式修改(八进制数值) 例如:修改文件abc.txt文件权限 -rw-rw-r-- 改成 rwx r-x r-x 6 6 4 7 5 5 命令: chmod 755 /home/tubin/abc.txt 2)使用字母表示权限的方法 操作符号包括: + --增加指定的权限 - --去除指定权限 = --清除所选的权限并将设置为指定权限 权限任意组合:rwx 任一组合方式 chmod +rwx /home/tubin/aaa.txt chmod -rwx /home/tubin/aaa.txt chmod =rwx /home/tubin/aaa.txt 实训训练项目内容: 知识运用: 1.文件、目录常用权限管理 2.修改文件、目录的默认权限 3.修改文件、目录的隐藏权限 4.使用ACL进行Linux高级权限管理 5.Linux系统下磁盘限额的方法 1.准备工作 为虚拟机添加一个大小为10G的磁盘作为单个文件管理的磁盘 a.对虚拟机添加一块新的磁盘,进行处理磁盘 1.分区 2.格式化 3.挂载分区 b.Linux系统管理设置在/dev 文件目录下,要使相应的设备挂载到目录中去 进行管理和使用,设备通过文件系统进行管理 步骤: 1)分区 使用命令:fdisk /dev/sdb 命令(输入 m 获取帮助):n --添加一个分区 Partition type: p --选择分区类型(p-代表主分区) p primary (0 primary, 0 extended, 4 free) e extended 分区号 (1-4,默认 1):1 --选择分区编号 起始 扇区 (2048-20971519,默认为 2048):设置起始地址 使用默认值 2048 --设置分区(扇区)的大小为2G Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G --查看磁盘分区的信息 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x5676267c 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux --保存设置 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘 2)格式化分区(windows操作系统格式化成FAT,FAT32,NTFS等格式) 将第一主分区/dev/sdb1 格式化成Linux文件系统(ext3,ext4,xfs等格式) 命令:mkfs -t ext4 /dev/sdb1 Allocating group tables: 完成 ---提示完成格式化 正在写入inode表: 完成 Creating journal (16384 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 3)挂载分区(将sdb1主分区挂载到目录中) (1) 手动挂载 --系统重启后手动挂载点就无效了 创建目录: mkdir /data 手动挂载命令:mount /dev/sdb1 /data 查看挂载磁盘的信息:df -hT /dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /data (2) 自动挂载(开启计算机自动挂载磁盘) 1)使用命令卸载挂载点: umount /data 查看挂载磁盘的信息:df -hT --查看不到/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /data 这条信息了 2)编辑配置文件/etc/fstab 使用命令: vim /etc/fstab 输入信息: /dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0 usrquota--用户磁盘限额(开启) grpquota--用户组磁盘限额(开启) 3)自动挂载 mount -a 4)查看挂载磁盘信息:df -hT /dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /data --自动挂载成功 2.准备工作(创建用户和组) 1)创建用户: useradd user1 useradd user2 2)创建用户的密码 echo "redhat"|passwd --stdin user1 --设置user1的密码为redhat echo "redhat"|passwd --stdin user2 --设置user2的密码为redhat 3)设置文件相关的权限 cd /data 创建文件和文件目录 touch aa.txt -rw-r--r--. 1 root root 0 4月 20 17:43 aa.txt --权限使用八进制数字为644 mkdir dir1 drwx r-x r-x. 2 root root 4096 4月 20 17:43 dir1 --权限使用八进制数字为755 只有root用户访问dir1有写入的权限,root组和其他用户和组都没有写入权限 [root@localhost data]# su user1 [user1@localhost data]$ cd dir1 [user1@localhost dir1]$ ls 命令:chmod 700 dir1 drwx --- --- dir1权限设置成只有root用户可以访问、读取、执行权限,其他的用户组和用户都不能访问(root组中其他成员) drwx r-x r-x ----> drwx --- --- 权限使用八进制数字为700 [root@localhost data]# su user1 [user1@localhost ~]$ cd /data [user1@localhost data]$ ls aa.txt dir1 lost+found [user1@localhost data]$ cd dir1 -bash: cd: dir1: 权限不够 4)修改文件的所有者 命令:chown 用户名 文件名(文件路径下的文件名) 修改当前的/data下的aa.txt的所有者为user1 chown user1 aa.txt [root@localhost data]# chown user1 aa.txt [root@localhost data]# ll 总用量 20 -rw-r--r--. 1 user1 root 0 4月 20 17:43 aa.txt aa.txt当前的所有者由root变成了user1,对user1用户拥有rw权限 验证权限: [root@localhost data]# su - user1 上一次登录:四 4月 20 18:37:13 CST 2023pts/0 上 [user1@localhost ~]$ cd /data [user1@localhost data]$ cat aa.txt abcdef hijklmn [user1@localhost data]$ vim aa.txt [user1@localhost data]$ cat aa.txt abcdef hijklmn I love you!~ 5)修改文件的所属组 [user1@localhost data]$ ll 总用量 24 -rw-r--r--. 1 user1 root 4 4月 20 18:44 aa.txt ---权限使用八进制数字为644 修改aa.txt权限修改成664 -rw-rw-r-- chmod 664 aa.txt [user1@localhost data]$ chmod 664 aa.txt [user1@localhost data]$ ll 总用量 24 -rw-rw-r--. 1 user1 root 4 4月 20 18:44 aa.txt a.让user1用户和 所属组root具备了读写权限 将root所属组修改成user2组,让user2组具有读写权限,组中的成员user2具备读写权限 修改所属组的命令: chgrp 用户组 文件名称(文件路径下的文件名) chgrp user2 aa.txt [root@localhost data]# chgrp user2 aa.txt [root@localhost data]# ll 总用量 24 -rw-rw-r--. 1 user1 user2 4 4月 20 18:44 aa.txt 修改后的user2所属组具有读写权限,让user2也具备了读写权限 [root@localhost data]# su user2 [user2@localhost data]$ ls aa.txt dir1 lost+found [user2@localhost data]$ vim aa.txt --编辑aa.txt [user2@localhost data]$ cat aa.txt abcdef 6)同时修改所有者和所属组 当前的aa.txt文件所有者和所属组分别是user1 user2 [user2@localhost data]$ ll 总用量 24 -rw-rw-r--. 1 user1 user2 7 4月 20 19:07 aa.txt 命令:chown --change own 改变所有权 chown 所有者:所属组 文件名称 将aa.txt文件所有者和所属组修改成root [user2@localhost data]$ chown root:root aa.txt --提示用户没有这个权限 chown: 正在更改"aa.txt" 的所有者: 不允许的操作 在root用户下修改当前路径下的aa.txt的所有者和所属组修改成root: [root@localhost data]# chown root:root aa.txt [root@localhost data]# ll 总用量 24 -rw-rw-r--. 1 root root 7 4月 20 19:07 aa.txt 7)文件访问控制列表(ACL)权限和访问控制列表的设置都是由root用户去设置 例子1:在aa.txt文件中添加user1用户设置rw权限,其他设置权限不改变 不改变所有者和所属组的属性配置 对文件采用单独访问控制设置,引入文件访问控制列表ACL 命令:setfacl -m u:用户名:文件权限 文件名称(路径下的文件名称) --创建文件控制访问列表 命令:getfacl 文件名称 --获取文件控制访问列表信息 set --设置 get --获取 f --文件 acl --访问控制列表 -m --定义访问控制列表(创建) -x --去除访问控制列表 u: --用户 aa.txt文件在添加ACL前: [root@localhost data]# ll 总用量 24 -rw-rw-r--. 1 root root 7 4月 20 19:07 aa.txt 查看aa.txt的文件控制访问列表 getfacl aa.txt 在aa.txt文件添加ACL后:在aa.txt的文件权限属性中多出一个+号,+号代表文件创建了ACL,受ACL的控制 将aa.txt添加一个user1用户的rw权限,并且不改变原有所有者和所属组的权限 setfacl -m u:user1:rw aa.txt [root@localhost data]# setfacl -m u:user1:rw aa.txt [root@localhost data]# ll 总用量 28 -rw-rw-r--+ 1 root root 7 4月 20 19:07 aa.txt 查看aa.txt的文件控制访问列表 getfacl aa.txt [root@localhost data]# getfacl aa.txt # file: aa.txt # owner: root # group: root user::rw- user:user1:rw- --添加一个用户user组具备了rw权限 group::rw- mask::rw- other::r-- 使用user1去验证aa.txt受到文件访问控制列表中user1用户的权限控制 使得user1具备了aa.txt的rw的权限 [root@localhost data]# su - user1 上一次登录:四 4月 20 18:44:39 CST 2023pts/0 上 例子2:在aa.txt文件中添加user2用户组设置rw权限,其他设置权限不改变 不改变所有者和所属组的属性配置 命令:setfacl -m g:用户组:权限 文件名称 查看文件aa.txt文件访问控制列表 [user1@localhost data]$ getfacl aa.txt # file: aa.txt # owner: root # group: root user::rw- user:user1:rw- group::rw- mask::rw- other::r-- setfacl -m g:user2:rw aa.txt [user1@localhost data]$ setfacl -m g:user2:rw aa.txt --提示user1用户没有权限 setfacl: aa.txt: 不允许的操作 使用root用户去操作文件访问控制列表 [root@localhost data]# getfacl aa.txt # file: aa.txt # owner: root # group: root user::rw- user:user1:rw- group::rw- mask::rw- other::r-- [root@localhost data]# setfacl -m g:user2:rw aa.txt [root@localhost data]# getfacl aa.txt # file: aa.txt # owner: root # group: root user::rw- user:user1:rw- group::rw- group:user2:rw- --添加一个user2组具备了rw权限 mask::rw- other::r- user2是在user2组中的,user2具备了对aa.txt的rw的权限,使用user2用户去验证aa.txt受到ACL控制 [user2@localhost data]$ vim aa.txt [user2@localhost data]$ cat aa.txt abcdef hijklmn [user2@localhost data]$ 二、除了文件添加文件访问控制列表外,目录也可以添加文件访问控制列表 1.针对目录设置文件访问控制列表,对目录中的文件或子目录不设置,不影响目录中文件或子目录 不受原有的目录的ACL的控制 对dir1目录设置文件访问控制列表,添加一个user1用户的rwx权限,并且不改变原有所有者和所属组的权限 setfacl -m u:user1:rwx dir1 [root@localhost data]# ll 总用量 28 -rw-rw-r--+ 1 root root 30 5月 4 09:36 aa.txt drwx------. 2 root root 4096 4月 20 17:43 dir1 [root@localhost data]# setfacl -m u:user1:rwx dir1 [root@localhost data]# ll 总用量 32 -rw-rw-r--+ 1 root root 30 5月 4 09:36 aa.txt drwxrwx---+ 2 root root 4096 4月 20 17:43 dir1 [root@localhost data]# getfacl dir1 # file: dir1 # owner: root # group: root user::rwx user:user1:rwx group::--- mask::rwx other::--- 在目录dir1创建dd.txt,不受到dir1的ACL的控制 [root@localhost dir1]# touch dd.txt [root@localhost dir1]# ls dd.txt [root@localhost dir1]# ll 总用量 0 -rw-r--r--. 1 root root 0 5月 4 10:28 dd.txt [root@localhost dir1]# getfacl dd.txt # file: dd.txt # owner: root # group: root user::rw- group::r-- other::r-- 总结:文件目录dir1下的dd.txt不受到上级目录的ACL的控制 2.针对目录中dir1下的子目录和子文件设置ACL控制列表 对dir1中的子文件夹设置ACL控制列表 命令:setfacl -m d:u:user1:rwx dir2 [root@localhost data]# setfacl -m d:u:user1:rwx dir2 [root@localhost data]# getfacl dir2 # file: dir2 # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:user1:rwx default:group::r-x default:mask::rwx default:other::r-x 在dir2下创建子目录或者子文件,会受ACK访问控制列表控制 [root@localhost dir2]# mkdir aaa [root@localhost dir2]# getfacl aaa # file: aaa # owner: root # group: root user::rwx user:user1:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:user1:rwx default:group::r-x default:mask::rwx default:other::r-x 5.Linux系统下磁盘限额的方法: 1.假设用户user1,设置usr1用户对dev/sdb1分区进行磁盘限额配置 将user1对blocks的soft设置为5000,hard设置为10000; inodes的soft设置为10,hard设置为15 1)使用user2去查询用户的磁盘的配额信息 quota 命令--查看磁盘配额信息 [user2@localhost ~]$ quota --说明没有产生磁盘配额文件 /data/quota.user quota: Cannot open quotafile /data/aquota.user: 没有那个文件或目录 2)使用root用户去检查/etc/fstv文件需要进行磁盘配额分区管理,检查用户的配额和用户组的配额信息, 检查没有配额文件,就去生成配额 命令:quotacheck -cugvmf /data -c 检查 -ug 分别是用户、用户组配置 -v 检查过程中详细信息 -m 创建配额文件 [root@localhost ~]# quotacheck -cugvmf /data quotacheck: Checked 6 directories and 2 files quotacheck: Old file not found. quotacheck: Old file not found. --没有发现磁盘配额文件 生成了用户的配额和用户组的配额 [root@localhost ~]# cd /data [root@localhost data]# ls aa.txt aquota.group aquota.user dir1 dir2 lost+found [root@localhost data]# ll 总用量 56 -rw-rw-r--+ 1 root root 30 5月 4 09:36 aa.txt -rw-------. 1 root root 6144 5月 11 08:30 aquota.group --用户组额信息,权限600 只有root用户可以读和写 -rw-------. 1 root root 6144 5月 11 08:30 aquota.user --用户配额信息,权限600 只有root用户可以读和写 b)创建和修改配额设置 将user1对blocks的soft设置为5000,hard设置10000 将inodes的soft设置为10,hard设置为15 使用命令:edquota -u user1 --为user1用户创建配额信息 Disk quotas for user user1 (uid 1002): Filesystem blocks soft hard inodes soft hard /dev/sdb1 0 5000 10000 0 10 15 使用i编辑文档,使用esc键盘:wq保存退出 c)启用配置 在root用户下: 使用命令:quotaon -vug /data /dev/sdb1 [/data]: group aquota turned on /dev/sdb1 [/data]: user aquota turned on [root@localhost data]# su - user1 --切换到user1上查询user1的配额信息 上一次登录:四 5月 4 11:38:33 CST 2023pts/0 上 [user1@localhost ~]$ quota Disk quotas for user user1 (uid 1002): none 使用命令:touch 文件名称 --使用user1用户创建了五个文件 -rw-rw-r--. 1 user1 user1 0 5月 11 08:47 bbbbb.txt -rw-rw-r--. 1 user1 user1 0 5月 11 08:46 bbbb.txt -rw-rw-r--. 1 user1 user1 0 5月 11 08:46 bbb.txt -rw-rw-r--. 1 user1 user1 0 5月 11 08:46 bb.txt -rw-rw-r--. 1 user1 user1 0 5月 11 08:46 b.txt --查看user1的磁盘配额信息: [user1@localhost dir1]$ quota Disk quotas for user user1 (uid 1002): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 0 5000 10000 5 10 15 [user1@localhost dir1]$ touch bbbbbb.txt [user1@localhost dir1]$ touch bbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbbbb.txt sdb1: warning, user file quota exceeded. ---创建文件到了第十一个时系统警告用户配额已经达到最大(soft配额信息警告) [user1@localhost dir1]$ quota --已经创建了是十一文件,超过了设置soft配额10个,soft软配额10会在6天后自动转换成hard设置15 Disk quotas for user user1 (uid 1002): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 0 5000 10000 11* 10 15 6days [user1@localhost dir1]$ touch bbbbbbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbbbbbbbb.txt [user1@localhost dir1]$ touch bbbbbbbbbbbbbbbb.txt sdb1: write failed, user file limit reached. --如果创建第十六个文件,系统提示操作磁盘超过了磁盘的限额 touch: 无法创建"bbbbbbbbbbbbbbbb.txt": 超出磁盘限额 [user1@localhost dir1]$ quota --查看user1的磁盘配额信息 Disk quotas for user user1 (uid 1002): --15个文件已经达到了文件最大的磁盘限额,15个文件占用了所有配置限额了 Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 0 5000 10000 15* 10 15 6days d)删除所有的文件,清除配额 [user1@localhost dir1]$ rm -rf * -删除所有文件 [user1@localhost dir1]$ ll 总用量 0 [user1@localhost dir1]$ quota Disk quotas for user user1 (uid 1002): none --说明user1用户没有使用设置磁盘配额资源 e)定义文件大小的配额 1)向dir1目录中写入文件5个大小为1M的文件 使用命令:dd if=/dev/zero of=aa.dat bs=1M count=5 [user1@localhost dir1]$ dd if=/dev/zero of=aa.dat bs=1M count=5 sdb1: warning, user block quota exceeded. 记录了5+0 的读入 记录了5+0 的写出 5242880字节(5.2 MB)已复制,0.140431 秒,37.3 MB/秒 [user1@localhost dir1]$ dd if=/dev/zero of=aa.dat bs=1M count=5 sdb1: warning, user block quota exceeded. --说明针对user1超过磁盘存储分配block soft配额 记录了5+0 的读入 记录了5+0 的写出 5242880字节(5.2 MB)已复制,0.140431 秒,37.3 MB/秒 [user1@localhost dir1]$ quota Disk quotas for user user1 (uid 1002): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 5120* 5000 10000 7days 1 10 15 [user1@localhost dir1]$ dd if=/dev/zero of=bb.dat bs=1M count=5 --写入5个文件大小分别为1M文件bb.dat sdb1: write failed, user block limit reached. dd: 写入"bb.dat" 出错: 超出磁盘限额 --提示的写入的大小超过了用户hard配额大小的限制 记录了5+0 的读入 记录了4+0 的写出 4997120字节(5.0 MB)已复制,0.0216811 秒,230 MB/秒 [user1@localhost dir1]$ quota --查看user1的磁盘配额信息 Disk quotas for user user1 (uid 1002): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 10000* 5000 10000 6days 2 10 [user1@localhost dir1]$ ls -lh --查看写入文件的大小和属性(不会超过最大hard限额100000) 总用量 9.8M -rw-rw-r--. 1 user1 user1 5.0M 5月 11 09:21 aa.dat -rw-rw-r--. 1 user1 user1 4.8M 5月 11 09:22 bb.dat --删除所有的文件,user1没有使用任何配额资源 使用命令:rm *.dat [user1@localhost dir1]$ rm *.dat [user1@localhost dir1]$ quota --说明user1用户没有使用设置磁盘配额资源 Disk quotas for user user1 (uid 1002): none |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |