目录
2.1.4 修改已存在的用户账户的属性——usermod命令
①用户账号文件,位置 /etc/passwd,每一行对应一个账号记录
②用户密码文件,位置/etc/shadow(只用root有权限)
一、用户账号、组账号
1. 用户账号分类
用户账号分类 | 用户 | 权限 |
超级用户 | root | 是系统中拥有最高权限的唯一的超级用户 |
普通用户 | 管理员用户创建的用户 | 默认拥有低权限,一般只在用户自己的宿主目录中拥有完整权限。 |
程序用户 | 用于应用程序运行的用户 | 应用程序运行用的低权限用户,一般不允许登录到系统,如 bin、daemon、ftp、mail 等。 |
2. 组账号
基本组:创建用户时自动归属的组
附加组:除了基本组以外,后续加入的组
3. UID和GID
- UID用户账户ID和GID组账户ID,都是唯一不重复的;
- root用户账号的 UID和GID号为固定值 0;
- 程序用户账号的 UID和GID号默认:Centos5,6:1~499,Centos7:1~999;
- 普通用户的 UID和GID号默认:Centos5,6:500~60000,Centos7:1000~6000
二、用户账号、组账号管理
2.1 用户账号管理
2.1.1 添加用户账号——useradd命令
可通过在/etc/passwd 文件和/etc/shadow 文件的末尾增加用户账号的记录。若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件(ls -A 指定用户家目录能查看到.bash开头的文件为初始配置文件)。若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。
格式:useradd/adduser [选项] 用户名 (adduser是useradd的软链接文件)
vim /etc/passwd #可查看用户和信息
-u 创建用户是指定UID号,UID号不能重复
-d 指定用户家目录(与-M一起使用是不生效),只能用绝对路径指定目录,不需要实现创建目录。不指定默认在home目录添加
-e 指定XXXX-XX-XX年月日失效日期
-g 指定基本组名或GID号
-G 指定附加组名或GID号
-M 不建立家目录(不可与-D同时使用)
-s 指定用户的登录shell(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统))
【示例】新建pyx用户目录 UID为9527,不创建家目录,指定不可登录操作系统
useradd pyx -u 9527 -M -s /sbin/nologin
【示例】创建一个用户,指定在2024年年底失效
useradd XXX -e 2025-01-01
【示例】 创建一个用户,指定在2024年年底失效,不创建目录,不能登陆
useradd XXX -M -s /sbin/nologin -e 2025-01-01
2.1.2 删除用户——userdel命令
userdel 用户名 #删除用户,对应家目录不删
userdel 用户名 -r #删除用户时,对应家目录也一起删除
2.1.3 设置/更改用户口令密码——passwd命令
passwd [用户名] ,不加用户名表示当前用户,普通用户只能用passwd修改自己的密码
(root密码如果忘记了,可以用保存过密码的终端软件先登录,再更改root密码)
-d #清空用户的密码,仅用用户名登录系统,空密码用户风险很大,一般删掉
-l #锁定用户,禁用用户,无法登陆
-u #解锁用户,恢复登录,空密码用户默认不能-u解锁
-u -f #强制解锁空密码用户
-S #查看指定用户当前的锁定状态
修改密码还有echo命令,直接改
①echo “XXXX指定字符串” | passwd --sdtin 用户名
示例:输出abc1234字符串 管道符号 模拟键盘输入的方式修改密码
②echo 用户名 : 密码 | chpaaswd
2.1.4 修改已存在的用户账户的属性——usermod命令
usermod 用户名 [选项]
-l 新用户名 #修改用户名
-L #锁定用户
-U #解锁用户
-u #创建用户是指定UID号,UID号不能重复
-d #指定用户家目录(与-M一起使用是不生效),只能用绝对路径指定目录,不需要实现创建目录。不指定默认在home目录添加
-e #指定XXXX-XX-XX年月日失效日期
-g #指定基本组名或GID号
-G #指定附加组名或GID号
-M #不建立家目录(不可与-D同时使用)
-s #指定用户的登录shell((/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统))
【示例】把本地用户pyx添加到student组中(加入新租,不会退出原来所在的组)
usermod pyx -G student
2.2 组账号管理
2.2.1 添加组账号——groupadd
-g GID 组名 #添加组账号
2.2.2 添加组成员——gpasswd
gpasswd [选项] <组账号名>
-a 用户名 #添加组成员
-d 用户名 #删除组成员
-M 用户1,用户2,... #重新定义组成员列表
2.2.3 删除组账号——groupdel
groupdel <组账号名>
2.2.4 查看账户的组信息
groups 用户名 #查看用户属于哪个组,第一个位基本组,后面为附加组
id 用户名 #显示用户的UID,GID以及所属的组
finger 用户名 #查看用户账号登录信息和权限
w #查看用户登录的详细信息。当前系统什么时候登录,有哪些用户,当前登录的信息用户名从什么终端什么IP地址等信息。0表示服务器本地登录,pts/1通过xshell等远程登录用户,tty2 linux操作系统的虚拟终端,ctrl+alt+F2,图形界面ctrl+alt+F1
who #查看当前用户登录信息。当前系统什么时候登录,有哪些用户,当前登录的信息用户名从什么终端什么IP地址等信息
users #查看当前有哪些用户登录
三、用户账号、组账号文件管理
3.1 账号文件类型
①用户账号文件,位置 /etc/passwd,每一行对应一个账号记录
man 5 passwd #查看该文档内的配置信息文档的帮助内容
用户名:x密码占位符:UID:GID:用户说明:家目录:登录shell
字段①:用户帐号的名称
字段②:用户密码占位符“x”
字段③:用户帐号的UID号
字段④:所属基本组帐号的GID号
字段⑤:用户全名
字段⑥:宿主目录
字段⑦:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
②用户密码文件,位置/etc/shadow(只用root有权限)
示例:root:$6$VyOUGqOC$v5HlLM1wagZC/FwGfnrtJFnlT:18445:0:99999:7:::
字段①:用户帐号的名称
字段②:密码字符串。使用MD5加密方式,*和!!表示该用户不能登录系统,: :为空密码用户,(linux系统中不允许)。
字段③:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段④:密码的最短有效期,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段⑤:密码的最长有效期,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段⑥:提前多少天警告用户密码将过期,默认值为7
字段⑦:在密码过期之后多少天禁用此用户
字段⑧:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
字段⑨:保留字段(未使用)
③组账号文件,位置/etc/group
字段1:组帐号的名称
字段2:占位符“x”
字段3:组账号的GID号
字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,”分隔
id XXX用户 #查看用户所在组
vim /etc/group #查看组账号文件内容
/etc/group #查看当前系统中有多少组,显示基本信息
/etc/gshadow #组账户密码文件
3.2 用户账号的初始配置文件
①系统环境变量配置文件,对所有用户有效
/etc/profile #设置用户每次登录时要执行的命令
/etc/bashrc #设置每次切换shell环境时要执行的命令(包括登录系统时要执行的命令)
②用户家目录下的初始配置文件,只对当前用户有效
~/.bash_profile
- 此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件。(ps:bash_profile只会在登录时执行一次,su切换环境,exit回到执行后的环境。)
~/.bashrc
- 此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc文件
~/.bash_logout
- 退出登录或退出bash shell时执行的命令,用的不多,走之前清空历史命令用到
四、查看文件/目录的权限和归属
文件权限由3个8进制数表示,一个文件最大权限为7,最小为0。
4.1 设置文件和目录的权限——chmod命令
u表示属主,g表示属组,o表示其他用户,a表示所有用户,rwx表示运行权限;
chmod -R 文件/目录 nnn #代表递归修改目录及所有子目录和文件的权限;
chmod ugo+rwx 文件/目录 #+表示添加权限,-表示删除权限,=重新定义权限;
chmod a -
chomd nnn <文件或目录> #nnn为权限数值
注意:关键文件不能设为777!
4.2 设置目录和文件归属 ——chown命令
chown -R 属主 文件/目录
chown :属组 文件/目录
chown 用户名:用户名 文件/目录 #属主和属组一起修改
chown 用户名.用户名 文件/目录 #属主和属组一起修改
4.3 设置目录和文件的默认权限——umask
umask #查询umask的值
umask nnn为八进制数字,系统默认umask值为022。文件的最大默认权限为6,目录最大默认为7,则新建文件默认权限 666 -022=644,新建目录默认权限 777 -022=755。