linux账号与权限管理

一、管理用户账号

1.1 概述

linux基于用户身份对资源访问进行控制
1.用户账号
1)超级用户:root用户
2)普通用户:由管理员创建,在自己的宿主目录下才有完整权限
3)程序用户:一般不允许登录到系统,如bin、daemon、ftp、mail等
2.组账号
1)基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。
2)附加组(公共组):用户除了基本组以外,额外添加指定的组。
3.UID和GID
1)UID:User IDentify,用户标识号
2)GID:Group IDentify,组标识号

用户 UID GID
root 0 0
程序用户 Centos5,6:1-499,Centos7:1-999 Centos5,6:1-499,Centos7:1-999
普通用户 Centos5,6:500-60000,Centos7:1000-60000 Centos5,6:500-60000,Centos7:1000-60000

1.2 用户账号文件/etc/passwd

1.用途:保存用户名称、宿主目录、登录shell等基本信息(任何用户都可读取),每一行对应一个用户的账号记录
2.文件位置:/etc/passwd
3.内容解析:root:x:0:0:root:/root:/bin/bash ###7个字段,用:隔开
1)root:用户名
2)x:密码占位符“x”或密码加密的字符串
3)0:UID号(属主)
4)0:GID号(属组)
5)root:用户名描述信息
6)/root:宿主目录
7)/bin/bash:登录shell信息,一般是/bin/bash
举例:head - 2 /etc/passwd
vim /etc/passwd
注:结尾是/sbin/nologin,这些程序账号是用来访问服务,不能用来登录系统

1.3 用户账号文件/etc/shadow

1.用途:保存用户的密码、账号有效期等信息(默认只有root用户能够读取),每一行对应一个用户的密码记录
2.文件位置:/etc/shadow
3.内容解析:root:6SBb76V0:17470:0:99999:7::: 共9个字段,用:隔开
1)root:账户名
2)6SBb76V0:mde5密码加密信息,当为“*”或“!!”则不能登录到系统。如果为空,则表示无需密码也可以登录
3)17470:上次修改密码时间,从1970年1月1号到最近修改密码间隔的天数
4)0:密码的最短有效天数,自本次修改后,至少经过该天数才能修改密码。默认为0表示不进行限制
5)99999:密码的最长有效天数,自本次修改后,经过该天数必须再次修改密码。默认为99999表示不进行限制
6)7:提前多少天告警密码将过期,默认是7
7)可为空:在密码过期之后多少天禁用此用户
8)可为空:账号失效时间,此字段指定了用户作废的天数(从1970.1.1起计算),默认为空表示账号永久可用
9)可为空:保留字段(未使用)
举例:head - 2 /etc/shadow
vim /etc/shadow

二、用户账号管理的具体操作

2.1 useradd命令-添加用户账号

1.格式:useradd或者adduser [选项] 用户名
2.常用选项:
-u:指定UID号,要求该UID号未被其他用户使用
-d:指定宿主目录位置(不能与-M连用,不生效)。只能用绝对路径指定目录,且不需要事先创建目录
-e:指定账户失效时间,格式YYYY-MM-DD
-g:指定用户基本组(或使用GID号),对应的组名必须已存在
-G:指定用户附加组(或使用GID号),对应的组名必须已存在
-M:不建立宿主目录
-s:指定用户登录的shell(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登录系统)
举例:1.useradd 1111
linux账号与权限管理
直接创建1111用户,UID和GID号默认从上一个账号+1,并且目录位置为当前用户的家目录
2.useradd -d /root -g test -G test -e 2021-12-31 -s /sbin/nologin 2222
linux账号与权限管理

2.2 passwd命令-设置/更改用户密码

1.格式:passwd [选项] 用户名
2.常用选项:
-d:清空指定用户的密码,仅使用用户名就能登录系统
-l:锁定用户账号,锁定的用户账号将无法再登录系统
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账号
注:在为用户账号设密码时,root用户可以指定用户名做参数,对指定账号密码进行管理;不指定用户名时,修改当前账号的密码。普通用户却只能执行单独的“passwd”命令修改自己的密码。

2.3 usermod命令-修改用户账号属性

1.格式:usermod [选项] 用户名
2.常用选项:
-u:修改UID号
-d:修改宿主目录位置
-e:修改账号失效时间,用YYYY-MM-DD格式
-g:修改基本组名(或使用GID号)
-G:修改附加组名(或使用GID号)
-s:指定登录shell
-l:更改用户登录的名称
-L:锁定用户
-U:解锁用户

2.4 userdel命令-删除用户账号

1.格式:userdel [-r] 用户名
2.选项:添加-r选项时,表示连用户的宿主目录一并删除

2.5 用户账号的初始配置文件

2.5.1 文件来源

1.useradd命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件。
2.这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。

2.5.2 主要初始配置文件

1.用户宿主目录下的初始配置文件只对当前用户有效:
1)/.bash_profile:文件中命令将在该用户每次登录被执行,会调用该用户的/.bashrc文件
2)~/.bashrc:文件中的命令在每次加载/bin/Bash 程序(包括登录)执行,会调用该用户的/etc/bashrc文件
3)~/.bash_logout:文件中的命令将在每次退出登录时或退出bash shell执行
2.全局配置文件对所有用户有效
1)/etc/profile:这个文件是为系统全局变量配置文件,可通过重启系统或执行source /etc/profile命令使profile文件被读取
2)/etc/profile.d/:这个文件是/etc/profile的子目录,存放一些应用程序所需的启动脚本
3)/etc/bashrc:每一个运行bash shell用户都会执行文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取
举例:vi /etc/profile
在配置文件里添加export PS1="[\e[1;36m][\u@\h \W]\$[\e[0m]
我们就可以配置用户的文本颜色了并且切换bash不会失效了

三、管理组账号

3.1 /etc/group与/etc/gshadow

1.与用户账号文件类似
1)/etc/group:保存组账号基本信息
2)/etc/gshadow:保存组账号的密码
2.4个字段说明
linux账号与权限管理
postfix:组账号的名称
x:占位符“x”
89:组账号的GID号
可为空:组账号包含的用户成员(一般不包含基本组对应的用户账号),多个成员之间用逗号隔开

3.2 groupadd命令-添加组账号

1.格式:groupadd [-g GID] 组账号名
2.举例:groupadd -g 1000 market ---添加market组账号 GID号为1000

3.3 gpasswd命令-添加删除组成员

1.格式:gpasswd [选项] 组账号名
注:设置组账号密码(极少用)、添加/删除组成员
2.常用选项:
-a:向组内添加一个成员
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号隔开

3.4 查询账号信息

3.4.1 groups

1.格式:groups 用户名
2.用途:查询用户所属组

3.4.2 id

1.格式:id 用户名
2.用途:查询用户身份标识

3.4.3 finger

1.格式:finger 用户名
2.用途:查询用户账号的登录属性(需要先安装finger软件包)

3.4.4 w、who、users

1.用途:查询已登录到主机的用户信息

3.5 groupdel-删除组账号

1.格式:groupdel 组账号名
2.举例:groupdel market 删除组账号market

四、文件/目录的权限和归属

4.1 访问权限

1.读取r:允许查看文件内容、显示目录列表
2.写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
3.可执行x:允许运行程序、切换目录

4.2 归属(所有权)

1.属主:拥有该文件或目录的用户账号
2.属组:拥有该文件或目录的组账号

4.3 查看文件/目录的权限及归属

举例:[root@localhost ~]# ls -ld /var/log/messages
-rwxrw—x 1 root root 2743497 2015-07-22 21:31 /var/log/messages
之前已经分析过具体字段的意思了,这里我们主要解析一下权限分配情况
linux账号与权限管理

4.4 设置目录/文件的权限及归属

4.4.1 chmod

1.格式一:chmod [ugoa] [+-=] [rwx] 文件/目录
2.选项:
1)“ugoa”表示该权限设置针对的用户类别。(缺省时为a)
‘u’ 代表文件属性
‘g’ 代表文件属组内的用户
‘o’ 代表其他任何用户
‘a’ 代表所有用户
2)"+ - ="表示设置权限的操作动作。
‘+’ 代表增加相应权限
‘-’ 代表减少相应权限
‘=’ 代表仅设置对应的权限
3)“rwx”是权限的字符组合形式,也可以拆分使用。
3.格式二:chmod nnn 文件/目录
每个n代表一个八进制数,每个八进制数值得是权限的数字表示形式的和

4.4.2 chown

1.格式:
1)chown 属主 文件/目录
2)chown :属组 文件/目录
3)chown 属主:属组 文件/目录
2.常用选项:-R 递归修改指定目录下所有子目录及文件归属

4.4.3 umask

1.用途:
1)控制新建的文件或者目录的权限
2)默认权限去除umask的权限为新建的文件或者目录的权限(新建的文件或者目录的权限为默认最大权限减去umake 。普通文件的最大默认权限为6, 目录的最大默认权限为7。)
2.umask设置:umask 022
3.umask查看:umask

linux账号与权限管理

上一篇:Ubuntu20.04自带输入法词库启用


下一篇:Linux基本命令