红帽用户和文件
用户身份:
相信咱们或许了解过linux系统是一个多用户、多任务的操作系统;多用户意味着多用户同时操作系统;多任务意味着多项任务同时进行(后台执行,不影响操作);所以本文中针对用户和文件两种事物来描述涉及到的权限;
大家是否知道linux系统中管理员是root;其实这是有问题的--并不是因为它叫做root而是系统管理员(最高权限用户)而是因为身份号(UID=0)来表示此管理员叫做root(预设名)。——ID指令即可查看该用户的UID和GID号码;
---------------------------------------------
在较新的系统版本:
系统用户1~999:默认某些服务由独立的系统用户所管理运行,防止被控制从而破坏系统。
普通用户则从1000开始,具体数值没有统计过(几十万个是可以的):用于日常操作系统用户。
有些旧版本中系统用户从1~500;普通用户则是从501开始;不过没有太大的区别。
---------------------------------------------------------------------------------------------------------------
在创建用户的同时还会为用户创建同名的组(GID)和扩展组(方便其它用户添加到此),但是此GID组只保留该用户。如果将此用户划分到其它用户组用,则此用户组称为扩展组---将不同的用户加入到同一扩展组里面(划分相同的权限或分配任务);与window类似,只不过windows中关于这方面我们体会的比较少,一般我们都通过提升管理员权限。
这里会涉及到linux系统的相关操作;比如执行指令---对应修改某些文件或服务的配置文件;
比如:passwd 用户名 ---对应于修改/etc/shadow(此配置文件,加密文件)
useradd 用户名---对应于修改/etc/passwd(此配置文件,不加密)
涉及到指令useradd、groupadd、usermod(修改用户属性---变更关于用户的相关信息)、passwd、userdel等等;相关参数一次性无法记忆,可以随时查阅。
文件权限:
linux系统中一切皆文件,但是还是存在理论上的目录(保存文件),关于文件的权限(r/w/x-读/写/执行);
读:读取文件信息;写:修改(增、删、改)文件信息;执行:运行文件程序。
目录的权限也是一样的,不过不同的是
读:读取列表信息;写:(增、删、改)文件;执行:可访问此目录。
chmod(修改文件或目录的权限;包括用户、所属组(group)、其他人)、chown(修改文件或目录的所有者和所属组)----两者进行相关操作的时候经常会用到递归操作;即-R参数。
-----------------------------------------------------------------------------
但是有些时候超级管理员权限不可以泄露,那么如果让普通用户拥有更高些的执行权限呢?
SUID:
文件的执行者临时获取该文件的归属主人的权限(示例:钦差拿着皇上御赐的尚方宝剑来代表皇上的身份执行某些自己不具有的行为。)——其实实质上此用户只是凭借超级管理员的权限执行行为。
SGID:
文件的执行者临时获取文件属组的权限和在某个目录中创建文件后自动继承该目录的用户组权限。
第一种情况类似于SUID中的方式;这里聊聊第二种:当开发项目组长创建一个数据库文件后需要改开发组中所有的人都可以访问,此时即可为该目录添加SGID权限;---只允许此开发扩展组成员可以访问。
SBIT:
保护位,保证此目录下的文件仅仅归属于此文件的所有者操作;其它用户无法访问。
例如:/tmp/任何目录或文件;形式如下
针对SUID--chmod u+s 文件名、针对SGID--chmod g+s 文件名、针对SBIT--chmod o+t 文件名;
这里的SUID和SGID还有SBIT也仿照r、w、x三者的数字赋予权限的;
----------------------------------------------------------------
当然除了这里提及的两种权限(普通和特殊)之外,还存在一种隐藏权限;此权限称作隐藏权限。一般会涉及到无法删除某些文件或者针对文件进行操作——在一定程度上也保证了系统的安全性。
chattr [参数] 文件名;既然有防护作用的盾后岂能没有矛呢?
lsattr [参数] 文件名。——即可查阅此文件权限哪里被隐藏。
-------------------------------------------------------------------------------------------
以上关于一般权限、特殊权限、隐藏权限等等都是针对某一类用户操作的(指定目录或文件);所以以下命令即可指定用户对某些目录或文件的访问权限(指定用户)
su和sudo服务
linux系统保证了在当前用户不退出系统的情况下还可以进行其它用户登录操作;不过在切换的时候要切记按照如下格式操作。
su - 用户;——保证完全切换此用户的环境变量;
当然还有sudo服务;——提升普通用户的某些权限,之前提及的指令之类的都是修改的文件对用户开放权限;此sudo服务与此完全不同。示例:皇上提升某九品官员为宰相等等——此操作即是提升权限。
可以直接修改vim sudoers;不过缺点就是无法提示任何操作的报错信息;所以一般都通过visudo这个指令来修改。
然后可以通过操作:sudo 执行的命令之类的;例如:sudo cat /etc/sudoers---查看配置文件(缺少sudo指令还会报权限不过的报错信息);
但是这样也挺麻烦的,每次操作都需要输入当然用户的密码,如果确保此用户不会对系统造成实质性的伤害后,可以通过修改以下信息。