【知识要点】
1.用户身份与能力;2.文件权限与归属;3.文件的特殊权限;4.su命令与sudo服务;5.文件访问控制列表。
【要点讲解】
一、用户身份与能力
1)root用户拥有极高的系统权限,能够管理系统的各项功能,如:添加/删除用户等等。
2)每个用户都有一个UID值,超级用户即root用户UID值默认为0;系统用户UID值为1~999,用于操作系统中不同的系统服务,默认被限制登录系统;普通用户UID值为1000~,即用于日常操作而不能管理系统的普通用户;账户名称与UID保存在/etc/passwd文件中,而账号密码保存在/etc/shadow文件中。
3)GID即组ID,可将多个用户加入组中,方便指派任务或工作;用户组名称和GID保存在/etc/group文件中。
二、文件权限与归属
权限项 读 写 执行 读 写 执行 读 写 执行
字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
权限分配 文件所有者 文件拥有组 其他用户
1)权限位的第一个字符表示文件类型,-代表普通文件,d代表目录文件,l代表链接文件,b代表块设备文件,c代表字符设备文件,p代表管道文件
例:drwxrw-r-- ,代表这是一个目的文件,拥有者可读写可执行,所有组可读写,其他用户可读。
三、文件的特殊权限
1)SUID:让执行者临时拥有属主的权限;SGID:让执行者临时拥有属组的权限。
2)chmod 777 /linux_test/test2/,即修改test2文件为组所有者及其他用户可读写可执行文件,通过其他用户登录系统时可修改文件。
3)chmod -Rf g+s /linux_test/test2/,即修改test2文件为有SGID的权限,例:权限项是drwxrxsrwx,小写"s"表示原本具有可执行权限,大写“S”则表示原本不具有可执行权限。
四、文件的隐藏属性
1)chattr命令用于设置文件隐藏属性,chattr [参数] 文件:
i 参数表示将无法对文件进行修改,若设置目录则只能修改子目录而不能重新新建或删除;
a 参数表示仅允许补充但不能覆盖或删除;
S 参数表示文件内容变更后立即同步到硬盘。
2)lsattr命令用于显示文件隐藏的属性,lsattr [参数] 文件:
a 参数表示显示所有文件和目录;
i 参数表示显示隐藏属性的全称;
R 参数表示递归处理。
五、su命令和sudo服务
1)su命令切换用户,su 后不面加“-”,从root切换到普通用户不用输入密码,从普通用户切换其他用户需要输入密码(exit命令退出);如果su后面加“-”,切换用户不需要输入密码,logout退出切回用户。
2)sudo命令是提供给普通用户额外权利来完成原本是超级用户才能完成的任务,sudo [参数] 命令名称;
sudo命令的特殊功能:限制用户执行指定的命令;记录用户每条执行的命令;配置文件(/etc/sudoers)提供集中的管理用户、权限与主机等参数;验证过密码后5分钟内无需再验证密码,更加方便。
3)sudo常用的参数:
-h 表示列出帮助信息
-l 表示列出可执行的命令
-u 用户名或UID 表示以用户身份执行命令
-b 表示在后台执行指定命令
-p 表示更改询问密码的提示语
4)只有超级用户才能使用visudo命令编辑sudo的配置文件(/etc/sudoers),e键修改sudo配置文件,x键不保存退出,Q键强制保存退出。
例:在非超级用户系统下使用sudo执行某条命令会提示输入该系统用户的密码,每次输入密码过于麻烦,可在sudo配置文件中添加命令:weiyc ALL=NOPASSWD:ALL,保存退出即可。
六、文件访问控制列表
1)对某个指定用户进行单独的权限设置。
2)setfacl命令用于增加或修改acl规则,setfacl [参数] 文件,参数包含:
-R 表示可作用于递归的文件(用于目录);
-m 表示设置acl规则;
-b 表示删除acl规则。
3)getfacl命令用于限制文件acl规则,getfacl [参数] 文件。