当前位置: 首页 > 科技观察

Linux系统设置文件权限,多用户模式下文件权限管理

时间:2023-03-14 20:37:30 科技观察

Linux系统中的文件权限设置,多用户模式下的文件权限管理还有一个超级管理员root,就是项目负责人CTO,负责整个项目的进度周期。但是Linux中的命令非常灵活,对专业性的要求也很高。如果一个刚实习的程序员拥有root权限,不小心删除了重要的文件或数据,那么整个项目就有可能毁于一旦。或者员工离职跑路直接删除公司数据库。这样的案例在业内并不少见。因此,需要为每个用户分配不同的权限。比如每个用户对自己创建的文件都拥有最高权限,同时开发组中的用户可以修改组中的文件。每个操作都会被记录下来。但是开发团队进入运维组目录,只能查看,不能更改。每个部门设置一个共享目录,共享目录不能修改,只能将内容复制到自己的目录中。这样就可以更好的保证Linux系统的安全。一方面可以防止自己内部人员的危险操作,另一方面也可以防止黑客入侵。大规模破坏行动。权限的基本概念Linux下Everythingisafile,不同的用户对文件有不同的权限。在多用户计算机系统的管理中,权限是指特定用户具有使用特定系统资源的权利。在Linux中,分别有读、写和执行权限:权限是针对文件的权限和针对目录的。readr表示可以查看文件内容,可以查看目录下的文件名。写w意味着你可以改变文件的内容。fileorcreateanewsubdirectory(执行x表示文件中记录的程序是否可以打开,一般指二进制文件(.sh)表示是否可以进入该目录查看文件权限在Linux中,不同的用户角色创建不同默认权限的文件,root用户创建文件的默认权限如上图所示。-表示文件类型为普通文件。红色框代表文件所有者用户。绿色方框代表该文件所属群组group中的其他用户。蓝色框代表其他用户。如果是目录,则文件类型为d。它们分别是:-:普通文件d:目录文件l:软链接(类似Windows快捷方式)b:块,块设备文件(如硬盘、光驱等)p:管道文件c:字符devicefiles:socketfile/datainterfacefile文件权限设置-letterchmod[option]权限设置文件或目录名选项说明:-R:递归设置,对于文件夹(目录)权限设置:1:确认以哪个身份设置权限,u,g,o,ugo(a)2:确认是增加权限(+),删除权限(-)还是授予权限(=)3:确认这个用户对这个文件或文件夹设置了什么权限,r,w、xsudochmod-Rugo=rwxAA/sudochmod-Ra=rwxAA/文件权限设置-数字权限对应数字含义r4可读w2可写x1可执行-0无权限chmod7771.txt文件所有者及归属groupsettingownersettingchown[option]newfileownername文件名选项说明:-R:表示递归修改,mainly为文件夹chownblackcat1.txt所属组设置chgrp[option]newfile属于组名filename选项说明:-R:代表递归修改,主要针对文件夹修改属主和组它属于哪个。chown[option]fileownername:文件所属组的文件名或chown[option]fileownername。文件所属组名文件名选项说明:-R:递归修改,主要针对文件夹特殊权限风险位SETUID(针对二进制文件)作用:为了让普通用户暂时拥有该文件的执行权限文件所属的主/组。例如:/usr/bin/passwd在执行时需要修改/etc/passwd、/etc/shadow等文件。除了root,其他用户对这些文件没有写权限,但是为了让普通用户可以修改自己的密码,怎么办呢?去掉S位权限chmodu-s/usr/bin/passwd或chmod0755/usr/bin/passwd添加S位权限chmodu+s/usr/bin/passwd或chmod4755/usr/bin/passwd强制位SETGID(fordirectory)作用:如果一个目录有强制位,那么用户在这个目录下创建的任何文件都将继承这个目录的group。去掉S位权限chmodg-s目录名添加S位权限chmodg+s目录名或chmod2xxx目录名stickybitT(fordirectories)作用:只有文件的创建者和root用户才可以删除文件(以防止意外删除权限位)删除粘性位chmod-Ro-t/share或chmod-R0777/share添加粘性位chmod-Ro+t/share或chmod-R1777/shareumaskumask以指示创建文件时的默认权限(即创建文件时无需设置自然权限)我们创建普通文件最大权限为666,创建文件夹最大权限为777。实际文件权限=highestpermission-umaskvalue获取用户umask值umask0022注:0022中第一个0代表特殊权限位,不可设置。umask的默认值在root和普通用户下是不一样的,分别是022和002。修改umask值(一般不要改)临时修改umask002777-002=775永久修改vim~/.bashrc1:在文件末尾添加umask0022:保存退出3:ACL权限ACL对新打开的终端,这是访问控制列表(AccessControlList)的缩写。好处是让权限控制更精准。installaclaptinstallacl获取ACL权限getfacl文件或目录名setACL权限setfacl[option]文件或目录名选项说明:-m:修改acl策略-x:移除某个用户或组的权限-b:全部删除acl策略-d:该目录下新建的文件和目录会继承acl策略,现有的不会-R:该目录下已有的文件和目录会继承acl策略,但新建的没有掩码:指用户或组所能拥有的最大ACL权限,即为用户或组设置的ACL权限不能超过掩码指定的权限范围,超过则失效。示例-为用户添加acl权限:setfacl-mu:hioier:rw1.txt示例-删除用户acl权限:setfacl-xu:hioier1.txt示例-为用户组添加acl权限:setfacl-mg:blackcat:rw2.txt示例-删除用户组的acl权限:setfacl-xg:blackcat2.txt示例-删除所有权限:setfacl-b1.txtmask权限设置:setfacl-mm::r1.txt目录递归授权