Linux权限、组管理和访问控制列表(ACL)
一、用户组管理 创建组 groupad命令: groupadd[OPTION]...group_name -gGID:指明GID号;[GID_MIN,GID_MAX] -r:创建系统组;CentOS6:ID<500CentOS7:ID<1000 组属性修改 groupmod命令: groupmod[OPTION]...group_name -g:GID,改变组id -n:改变组名 groupmod-nmutestmysystem groupmod-g10010mytest 删除组 groupdel命令: groupdelgroup_name groupdelmytest 组密码 gpasswd命令: gpasswd[OPTION]GROUP -auser:将user添加至指定组中; -duser:从指定组中移除用户user -Auser1,user2,...:设置有管理权限的用户列表 newgrp命令:临时切换基本组; 如果用户本不属于此组,则需要组密码 newgroupmytest 更改和查看组成员 groupmems命令: groupmems[options][action]options: -g,--groupgroupname更改为指定组(只有root)Actions: -a,--addusername指定用户加入组 -d,--deleteusername从组中删除用户 -p,--purge从组中清除所有成员 -l,--list显示组成员列表 groups[OPTION].[USERNAME]...查看用户所属组列表 二、用户权限管理 文件基本权限说明: [root@centos7~]#ll total4 -rw-r--r--.1rootroot11Aug412:26file -:文件类型 rw-:所有者权限 r--:所属组权限 r--:其他用户权限 .:selinux是否开启 1:链接次数,引用次数 root:所属主 root:所有者 11:文件大小 Aug412:26:文件创建时间 file:文件名 文件属性操作: 修改文件的属主、属组 chown[OPTION]...[OWNER][:[GROUP]]FILE... 用法: OWNER OWNER:GROUP :GROUP 命令中的冒号可用.替换; -R:递归chown[OPTION]...--reference=RFILEFILE... chown-Rnginx.nginx/var/html/www/ chowngentoo:hadoopfile chown:rootfile chownhadoopfile chown--reference=/etc/shadowfile 修改文件属组,只有管理员才有此权利: chgrp[OPTION]...GROUPFILE...chgrp[OPTION]... --reference=RFILEFILE... -R递归 chgrpgentoochen.txt chgrp--reference=/tmp/chen.out/root/file chgrp-Rhadoop/var/html/www/ 文件权限详解: r:读w:写x:执行r=4w=2x=1 管理员创建文件默认权限如下: [root@centos7~]#ll total4 -rw-r--r--.1rootgentoo0Aug413:20chen.txt drwxr-xr-x.2rootroot6Aug413:27dir -rw-r--r--.1rootroot11Aug412:26file [root@centos7~]#umask 0022 umask:遮罩码 管理员: 目录权限:777-umask755 文件权限:666-umask644 [root@centos7~]#su-gentoo [gentoo@centos7~]$touchfile [gentoo@centos7~]$mkdirdir [gentoo@centos7~]$ll total0 drwxrwxr-x.2gentoogentoo6Aug413:32dir -rw-rw-r--.1gentoogentoo0Aug413:31file [gentoo@centos7~]$umask 0002 普通用户: 目录权限:777-umask775 文件权限:666-umask664 umask原理: umask从目录文件上屏蔽掉最大权限相应的位,从而得出默认的权限 dir:777-umask file:666-umaks如果是基数加一,偶数不变 umask值可以用来保留在创建文件权限 新建FILE权限:666-umask 如果所得结果某位存在执行(奇数)权限,则将其权限+1 新建DIR权限:777-umask 非特权用户umask是002 root的umask是022 umask:查看 umask#:设定 umask002 umask–S模式方式显示 umask–p输出可被调用 全局设置:/etc./bashrc用户设置::~/.bashrc 设定文件属性命令: chattr[-RVf][-vversion][mode]files... chattr+A加上则访问文件三时间不变 chattr+i不能删除,改名,更改 chattr-i解锁 chattr+a只能增加 chattr-a lsattr显示特定属性 [root@centos7~]#chattr+ifile [root@centos7~]#lsattrfile ----i-----------file [root@centos7~]#rm-rffile rm:cannotremove‘file’:Operationnotpermitted [root@centos7~]#echo"love">>file -bash:file:Permissiondenied [root@centos7~]#chattr-ifile.. [root@centos7~]#chattr+afile [root@centos7~]#lsattrfile -----a----------./file [root@centos7~]#rm-rffile rm:cannotremove‘file’:Operationnotpermitted [root@centos7~]#echo"love">>file [root@centos7~]#catfile love 三、访问控制列表 ACL:AccessControlList,实现灵活的权限管理 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限 CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。 CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。 需手动增加:tune2fs–oacl/dev/sdb1mount–oacl/dev/sdb1/mnt ACL生效顺序:所有者,自定义用户,自定义组,其他人 ACL文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限 getfacl可看到特殊权限:flags 默认ACL权限给了x,文件也不会继承x权限。 baseACL不能删除 setfacl-kdir删除默认ACL权限 setfacl-bfile1清除所有ACL权限 getfaclfile1|setfacl--set-file=-file2复制file1的acl权限给file2 setfacl命令: setfacl-setfileaccesscontrollists setfacl[-bkndRLPvh][{-m|-x}acl_spec][{-M|-X}acl_file]file... 选项:-b:删除所有权限 -k:清除默认权限 -m,x:定义acl权限 -R:递归 setfacl-mu:wang:rwxfile|directory setfacl-Rmg:sales:rwXdirectory setfacl-Mfile.aclfile|directory setfacl-mg:salesgroup:rwfile|directory setfacl-md:u:wang:rxdirectory setfacl-xu:wangfile|directory setfacl-Xfile.acldirectory setfacl-mm::rwfile 本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1834328,如需转载请自行联系原作者