一.用户账号和组账号概述
1.1 用户账号:
1.2 用户标识UID
root用户账号的UID固定值0
程序用户账号的UID默认为Centos5,6: 1~499,Centos7: 1 ~999
普通用户的UID默认为Centos5, 6: 500~ 60000,Centos7: 1000~ 60000
1.3 用户账户文件
作用:保存用户名称、宿主自录、登录Sell等基本信息,每一行对应一个用户的帐号记录
/etc/passwd :保存用户名称、宿主自录、登录Sell等基本信息
/etc/shadow:保存用户的账号、密码等有效信息
/etc/passwd :
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一 定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中, 而passwd文件中仅保留密码占位符“x”。
某条记录格式:root: x :0:0:root:/root:/bin/bash
字段一:用户账户的名称
字段二:密码占位符
字段三:用户账户的UID
字段四:用户账户的GID
字段五:用户全名
字段六:用户的家目录
字段七:登入shell信息(默认为/bin/bash可登入,/sbin/nologin或/bin/fasle为不可登入)
/etc/shadow
每一行对应一个用户的密码记录。 默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。
格式:root:$6 8 Q M 16 a J R / 4 F T S Z u 0 8QM16aJR/4FTSZu0 8QM16aJR/4FTSZu0eX78jr5oZLw4ojjrROTKehaXR2QVbQBDnhf32a.DxYmFpmiXkUTzsoxeW1CqKF7BNNpYmsroYCYRcqjRhlb2s/::0:99999:7:::
字段一:用户账户的名称
字段二:使用SHA512加密的密码字串信息,当为“*” 或“! !”时表示此用户不能登录到系统。,若该字段内容为空,则该用户无须密码即可登录系统;
字段三:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数;
字段四:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制;
字段五:密码的最长有效天数,自 本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999, 表示不进行限制;
字段六:提前多少天警告用户密码将过期,默认值为7;
字段七:在密码过期之后多少天禁用此用户;
字段八:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用;
字段九:保留,没有特殊含义
二. useradd添加用户账号
格式:useradd 【选项】 用户名
选项 | 作用 |
---|---|
-u | 指定用户的UID号,要求该UID号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要事先创建目录 |
-e | 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 |
-g | 指定用户的基本组名(或使用GID号),对应的组名必须已存在 |
-G | 指定用户的附加组名(或使用GID号),对应的组名必须已存在 |
-M | 不建立宿主目录。(一般用于系统用户账号) |
-s | 指定用户的登录Shell,(比如/bin/bash为可登陆系统,Isbin/nologin和/bin/false为禁止用户登陆系统) |
实验
例如:创建一个用户,设置uid为1200,失效时间为2023年12月31号,指定他的基本组与附加组,设置家目录在opt下为666,不让他登入
三. passwd 修改密码
格式:passwd 【选项】… 用户名
选项 | 作用 |
---|---|
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户,锁定的用户账号将无法再登录系统。(一定要事先设好密码) |
-S | 查看用户账户的状态(是否被锁定)。 |
-u | 解锁用户账户 |
不指用户名时,默认修改当前账户的密码
修改的时候会发现打了不显示,这个其实是一种安全机制,放心其实你因为输入进去了
四. 修改用户账户的属性
格式:usermod [选项]… 用户
选项 | 作用 |
---|---|
-l | 更改用户账号的登录名称 格式:usermod -l 新名称 旧名称 |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
-u,-d,-e,-g,-G,-s 与useradd命令中含义相同
五 . userdel 删除用户账号
格式:userdel [-r] 用户名
添加-r 选项,表示连用户的宿主目录一并删除
六. 用户账号的初始配置文件
/etc/profile 对所有用户有效,全局系统环境变量配置文件,主要用于设置开机后自动执行的命令和环境变量设置
只会在系统启动后任意用户每次登入执行一次,或者使用source /etc/profile 手动加载生效
/etc/bashrc 对所有用户有效
也是可以用来设置自动执行的命令和环境变量设置
会在任意每次登录或者切换shell环境(su,bash等)都会执行
~/.bashrc_profile
只对家目录的用户有效
效果类似于/etc/profile
会调用~/.bashrc
~/.bashrc
只对家目录的用户有效
会调用/etc/bashrc
七. 组账号文件
操作
创建组group命令
设置组账号密码 , 添加删除组成员
删除组
格式: groupdel 组名
查询账号信息
groups [用户名] 查询用户所属组
id [用户名] 查询用户身份标识
查询用户账号的登录属性—finger命令
需要先安装finger
查询当前主机的用户登录情况—w命令、who命令、
八 . 文件/目录的权限及归属
在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称“权限”和“归属”。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。
[yxp@yxp root]$ ll /etc/passwd
-rw-r--r--. 1 root root 2387 9月 3 22:57 /etc/passwd
8.1设置文件和目录的权限chmod
8.2 设置文件和目录的归属chown命令
8.3 补充扩展:特殊权限SBIT(t)
SBIT权限只能用于对目录进行设置,使指定目录中的文件或目录只有所有者才能删除文件或目录
九. umask 设置目录和文件的默认权限
设置目录和文件的默认权限;
指定目前用户在新建文件或目录时的权限默认值;
新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)
九. 总结
用户账号管理(useradd, passwd,usermod,userdel)
组账号管理(groupadd , groupdel ,gpasswd)
用户账号文件与组账号文件
查询账号相关信息命令( groups , id ,w , finger ,who ,)
设置目录与文件权限(chmod)
设置目录与文件归属(chown)
设置文件与目录创建默认权限(umask)