目录
1.UID and GID
1.1 用户账号和组账号概述
linux基于用户身份对资源访问进行控制
*用户账户
超级用户,普通用户,程序用户
超级用户:指的是root用户,在系统中拥有最高权限,在系统中超级用户是唯一的。
普通用户:由root用户或其他管理员创建的用户,一般不允许登录系统,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:用于给应用程序运行的低权限用户,一般不允许登录系统,如bin、 demon、ftp、mail等
* 组账号
基本组(私有组)
附加组(公共组)
基本组:用户加入的第一个组
附加组:用户额外加入的除了基本组以外的组
*UID和GID
UID (User IDentity,用户标识号)
GID (Group IDentity,组标识号)
UID:用户账户ID
GID:组用户ID
root的UID和GID都固定为0
程序用户默认的UID/GID范围:centos7以前为 1~499;从centos7开始为 1~999
普通用户默认的UID/GID范围:centos7以前为 500~60000;从centos7开始为 1000~60000
1.2 用户账号文件/etc/passwd
保存用户名称、宿主目录、登录shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
1.3 用户账号文件/etc/shadow
保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
root:$6$rKyoJCEU6K1wbnYX$qiZFIUV8M2iS2MLfOETL8R8mMhlXzutCwMHgXHOcAoo/Bec8FLdw.fu10nuc.V2Zg/cae4KWaRd2MNooJco0e/::0:99999:7:::
第一字段root:用户名
第二字段$6$rKyoJCEU6K1wbnYX$qiZFIUV8M2iS2MLfOETL8R8mMhlXzutCwMHgXHOcAoo/Bec8FLdw.fu10nuc.V2Zg/cae4KWaRd2MNooJco0e/:算法加密(当为"*"或"!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统)
第三字段:::上次修改密码的时间
第四字段0:密码的最短有效天数
第五字段99999:密码的最长有效天数
第六字段7:提前多少天警告用户密码将过期,默认为7
第七字段:::密码过期之后多少天禁用此用户
第八字段:::账号失效时间
第九字段:保留字段(未使用)
2. UID
2.1 添加用户账号
useradd命令
useradd命令格式:useradd [选项]…用户名
常用选项
-u、-d、-e、-g、-G、-M、-s
创建一个scj的用户,id号为9527,创建了一个zhangsan用户,id号为9528
useradd -d ## -e ## -s ##命令:指定用户的宿主目录位置、账户失效时间以及登录shell信息
[root@clr ~]# useradd -d /admin -e 2024-01-01 -s /sbin/nologin admin1 #添加用户admin1,指定家目录/admin;指定失效时间:2024-01-01;指定不能登录到系统的shell命令
创建程序用户:useradd -M -s命令:不建立宿主目录,指定用户的登录shell信息
[root@clr ~]# useradd -M -s /sbin/nologin ergouzi #创建程序用户ergouzi,不建立宿主目录,shell登录信息,设置为不允许登录
[root@clr ~]# vim /etc/passwd
ergouzi:x:2001:2001::/home/ergouzi:/sbin/nologin
创建王五不允许建立家目录,不允许登录,在明年的2025年1月1日失效
passwd 用户名可更改此用户密码
2.2 设置/更改用户口令passwd
passwd命令
passwd命令格式:passwd [选项]…用户名
常用选项:
-d、-l、-S、-u
不指定用户名时,修改当前账号的密码
usermod -d命令:更改用户账号的登录名称。
passwd -l 锁定用户账户,锁定的用户账号将无法再登录系统
passwd -S命令:看用户账户的状态(是否被锁定)
passwd -u命令:解锁用户账户
设置用户密码之方法二:echo “密码” | passwd --stdin 用户名
设置用户密码之方法三:echo <用户名>:<密码> | chpasswd
2.3 修改用户账号属性usermod
usermod命令
usermd命令格式:usermod [选项]…用户名
常用选项
-l、-L、-U
以下选项与useradd命令中的用法和作用相同
-u、-d、-e、-g、-G、-s
-l 新用户名 修改用户名
-L 锁定/禁用用户
-U 解锁用户
2.4 删除用户账号userdel
userdel命令
userdel命令格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
userdel -r命令:删除用户并删除其家目录
[root@clr ~]# userdel -r admin2 #删除用户admin2,并且连同家目录也一并删除
[root@clr ~]# ls /home/ #admin2的家目录已被删除
gaozhenyang
注;如果系统中某个账户不需要使用,可用useradd将该账户删除,添加-r选项可将此用户的宿主目录一同删除。
3.GID
3.1 用户账号的初始配置文件
文件来源
* useradd命令添加一个新的用户账号后,会在该用户的宿主目录中建立一些初始配置文件。
* 这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。
主要的用户初始配置文件
~/.bash_profile
~/.bashrc
~/.bash_logout
查看模板目录隐文件/etc/skel/
查看.bash_profile文件
查看.bashrc文件
作用范围:
etc/profile /etc/bashrc 对所有用户有效
~/.bash_profile ~/.bashrc 只针对=当前用户有效
功能用途:
profile:系统启动后用户登录直接执行文件里的命令或者配置
bashrc:用户登录或者用户切换shell环境就会执行文件里的命令或者配置
调用关系:
/etc/profile -> /etc/profile.d/xxx. sh
~/.bash_profile -> ~/.bashrc -> /etc/bashrc
注意:
/etc/profile中的文件,系统启动时会自动执行;
~/.bash_profile的文件,只有在指定用户登录或切换shell环境时,才会执行。
3.2组账号文件
与用户帐号文件相类似
* /etc/group:保存组帐号基本信息
* /etc/gshadow:保存组帐号的密码信息
查看组账号基本信息/etc/group
统计系统中有多少组
3.3 添加组账号groupadd
groupadd命令
groupadd命令格式:groupadd [-g GID] 组账号名
groupadd -g命令:添加组,并设置指定的组账号
3.4 添加删除组成员gpasswd
gpasswd命令
设置组账号密码(极少用)、添加/删除组成员
gpasswd命令格式:gpasswd [选项]…组帐号名
常用选项
* -a:在组内添加一个用户
* -d:从组内删除一个用户成员
* -M:定义组成员列表,以逗号分隔
gpasswd -a命令:向组内添加一个用户
gpasswd -d命令:从组内删除一个用户成员
gpasswd -M命令:定义组成员列表,以逗号分隔
注:重新定义不是添加用户,表示覆盖了前面的所有配置,所以要把须被定义的用户添加上去
3.5 删除组账号groupdel
groupdel命令
groupdel命令格式:groupdel 组账号名