Linux账号和权限管理
与windows操作系统相比,Linux系统中的用户账户和组账户的作用在本质上是一样的,同样都是基于用户身份来控制对资源的访问,只不过在表现形式及个别细节方面存在些许差异。
1.用户账户组账户概述:
用户账号:
超级用户,普通用户,程序用户
组账户:
基本组(私有组)
附加组(公共组)
UID和GID
UID 用户标识号
GID 组标识号
在Linux系统中,根据系统管理的需要将用户账户分为不同类型,其拥有的权限丶担任的角色各不相同,主要分为超级用户 普通用户 程序用户
超级用户:root用户是Linux系统中默认的超级用户账户,对本主机拥有最高的权限,类似于windws中的Administrator ROOT–UID 固定值是0
普通用户:普通用户账号需要由root用户和其他管理员用户创建,拥有的权限受到一定的限制,一般只在用户的自己的宿主目录中拥有完整的权限 普通账号UID 1000-60000
程序用户:在安装Linux系统时,会添加一些特定的低权限的用户账户,这些用户不允许登录系统,比如:bin daemon ftp mail等。 程序–UID 1—999
Linux系统中的每一个用户账号都有一个数字形式的身份标记,称为UID,和GID对于系统核心来说,UID作为区分用户的基本依据,原则上每个用户的UID号时唯一的。
UID标识:
ROOT–UID | 固定值UID是0 |
---|---|
程序用户 | UID:1—999 |
普通账号 | UID:1000-60000 |
GID标识:
ROOT–GID | 固定值UID是0 |
---|---|
程序用户 | UID:1—999 |
普通账号 | UID:1000-60000 |
Linux系统中的用户账号丶密码等信息军保存在相应的配置文件当中,直接修改文件Linux系统中的用户账号,密码等信息均保存在相对应的 配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。
与用户账号相关的配置文件主要有两个,分别是/etc/passwd, /etc/shadow、前者用于保存用户名称,宿主目录,登录Shell等基本信息,后者用于保存用户的密码,账号有效期等信息。
在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用冒号“:”进行分隔。
系统中所有用户的账号基本信息都保存在“/etc/passwd”文件当中,该文件是文本文件,任何用户都可以读取文件的内容。
每一行对应一个用户的账号记录
passwd文件的每一行内容中,包含了七个用冒号“:”分隔的配置字段,我们需要了解其含义。
shadow文件被称为“影子文件”,其中保存有各用户账户的密码信息,因此shadow文件的访问应该进行严格限制,因此默认只有root账户才能读取文件内容,而不允许直接编辑该文件内容
每一行对应一个用户的密码记录
shadow文件的每一行内容中,包含了九个用冒号“:”分隔的配置字段,我们需要了解其含义
组账号文件也有两个,分别是/etc/group, /etc/gshadow。与用户账号文件非常类似。前者用于保存组账号名称,GID号,组成员等基本信息,后者用于保存组账号的加密密码字符串等信息(但是很少使用到)。
某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用逗号“,”分隔。
例如:查看root组包括哪些用户成员,哪些组中包含root用户。
通过useradd命令新增用户账号以后,还需要为其设置一个密码才能正常使用。使用passwd命令可以设置或修改密码。
对于系统中已经存在的用户账号,可以使用usermod命令重新设置各种属性,usermod命令同样需要指定账号名称作为参数
当系统中的某个用户账号已经不再需要使用时,可以使用userdel将用户账号删除
如果只是用userdel删除用户的话,用户的家目录还是在的
添加-r时,表示连用户的宿主目录一并删除
用户账号的初始配置文件添加一个新的用户账号后,useradd会在该用户的宿主目录中建立一些初始配置文件,这些文件来自账号模板目录’/etc/skel’,基本上都是隐藏文件。因此,在’.bashrc’等文件中,我们可以添加自定义的可执行语句(Linux命令行,脚本控制语句等)来自动完成相应的任务。
主要的用户初始配置文件:
~/.bash_profile
~/.bashrc
~/.bash_logout
与组账号相关的配置文件也有两个,分别是 /etc/group /etc/gshadow,前,者用于保存账号基本信息,后者用于保存账号的密码信息
使用group命令添加一个组账号,需要指定GID号时,可以使用“-g”选项
gpasswd命令用来设置组账号的密码,实际上该命令更多的用来管理组账号和用户成员,需要添加,删除用户是,可使用“-a” “-d”选项
-a 添加用户到哪个组
-d 将用户从组中删除
groups 组名称 查看组
3.2.3groupdel命令–删除组账号
当系统中某个组账号不再使用时,可以使用groupdel命令删除组账号
在用户管理工作中,虽然直接查看用户账号,组账号的配置文件也可以查询相关信息,但不是很乐观。在Linux系统中,还可以使用几个常用的命令查询工具。
使用id命令可以快速查看指定用户账号的UID,GID等表示信息。
finger命令可以查询指定的账号的登录属性等详细信息,包括登录名称,完整名称,宿主目录,登录shell等。
使用w命令可以查询当前主机中的用户登录情况,列出登陆账号名称,所在终端,登录时间
在Linux文件系统的安全模型中,为系统中的赋予了2个属性,访问权限和文件所有者,简称权限和归属,其中权限包括读取R-4、写入W-2、可执行X-1三种基本类型,归属包括U (属主) G(属组) O(其他人)
访问权限
读取r:允许查看文件内容,显示目录列表
写入w:允许修改文件内容,允许在目录中新建,移动删除文件或子目录
可执行x:允许运行程序,切换目录
设置文件的权限时,主要通过chmod命令进行。在设置针对每一类用户的访问权限时,可以采用两种形式的权限表示方法:字符形式和数字形式。
需要设置文件归属时,主要通过chown命令进行。可以只设置属主和属组,也可以同时设置属主,属组。
umask的分数指的是“该默认值需要减掉的权限,”因此,如果执行“umask 022”,代表group和other被拿掉了权限“2”,也就是被拿掉了写的权限。
如果执行命令“umask 000”,代表文件的默认权限是“777”