linux系统账号管理与配置
一.用户账号和组账号的概述
linux 基于用户身份对资源访问进行控制
1.用户账号
超级用户
root,uid永远为0,拥有最高的系统权限
普通用户
由root创建,uid为1000+,权限受到一定的限制
程序用户
uid为1-999,一般不登录使用
2.组账号
基本组(私有组)
有且只有一个组员组成,随账号创建而创建
附加组(公有组)
由多个用户账号加入组成
3.UID和GID
UID:User IDentity,用户标识号
GID:Group IDentity,组标识号
二.用户账号文件
1.用户账号文件/etc/passwd
保存用户名称,宿主目录,登录shell等信息
文件保存位置 /etc/passwd
每一行对应一个用户的账号记录
一共有6个冒号,7段内容
字段1:用户账号:
字段2:密码占位:
字段3:用户账号ID
字段4:组账号ID
字段5:用户说明描述
字段6:宿主目录
字段7:登录shell
2.用户账号文件/etc/shadow
影子文件,保存用户的密码,账号有效期等信息
文件保存位置 /etc.shadow
每一行对应一个账号的密码记录
一共有8个冒号,9段内容
字段1:用户帐号的名称
字段2:加密的密码字串信息
*表示不能登录系统
!!表示重来没有修改过密码
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户,账号失效缓存时间
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
三.用户账号管理相关配置命令
1.添加用户账号useradd命令
常用选项
-u 指定uid
-d 指定家目录,不指定的话默认在 /home
-e 设置失效时间
-g 指定gid
-M 不指定家目录
-s 设置登录shell
添加用户tom,指定家目录为/home/tom,指定shell为/sbin/nologin,账号失效时间为2021年5月30日
useradd -d /home/tom -s /sbin/nologin -e 2021-05-30 tom
1970年1月1日过18763天后是具体什么日期
date -d “1970-01-01 18763days”
[root@localhost ~]# date -d "1970-01-01 18763days"
2021年 05月 16日 星期日 00:00:00 CST
centos系统中该命令使用adduser也可以
2.用户账号的初始配置文件
添加一个新的账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。
这些文件来自账号模板目录 /etc/skel,基本都是隐藏文件,较常用的初始配置文件包括 .bash_logout .bash_profile .bashrc。
[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ll
总用量 0
[root@localhost skel]# ls -a
. .. .bash_logout .bash_profile .bashrc .mozilla
.bash_profile :用户每次登录时被执行
.bashrc :每次加载 /bin/Bash 程序时(当然也包括登录系统)执行
.bash_logout : 用户每次退出登录时执行
3.设置/更改用户口令passwd命令
常用选项
-d 清空指定用户的密码
-l 锁定用户账号
-u 解锁用户账号
-S 查看用户状态(是否被锁定)
passwd 账户
进行设置密码
锁定用户yuyu 并查看状态
passwd -l yuyu
passwd -S yuyu
[root@localhost ~]# passwd -l yuyu
锁定用户 yuyu 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -S yuyu
yuyu LK 2021-05-12 0 99999 7 -1 (密码已被锁定。)
无交互式修改tom用户的密码为123456
echo “123456” | passwd --stdin tom
4.修改用户账号属性usermod命令
常用选项
-u 修改用户的uid号
-d 修改用户的家目录
-e 修改用户的账号失效时间
-s 指定用户的登录shell
-L 锁定用户账号
-U 解锁用户账号
-p 设置用户密码
5.删除用户账号userdel命令
连同家目录一起删除账号
userdel -r 用户名
四.管理组账号
1.组账号管理
(1)组账号文件
组账号配置文件 /etc/group,etc/gshadow
/etc/group用于保存组账号名称,GID号,组成员等基本信息
etc/gshadow用于保存组账号的加密密码字串等信息(很少使用)
(2)添加删除修改组账号
创建一个组账号LN88
groupadd LN88
删除组账号 LN88
groupdel LN88
在组账号LN88中添加一个账号XY
gpasswd -a XY LN88
重新定义组LN88的组成员为KK1,KK2
gpasswd -M KK1,KK2 LN88
00000000
从组LN88中删除账号 KK11
gpasswd -d KK11 LN88
把组名LN88 修改为LN99
groupmod -n LN99 LN88
2.查询账号信息
(1)id 查询用户账号的身份表示
[root@localhost ~]# id yuyu
uid=1006(yuyu) gid=1006(yuyu) 组=1006(yuyu)
(2)groups命令 查询用户账号所属的组
[root@localhost ~]# groups
root
[root@localhost ~]# groups root
root : root
[root@localhost ~]# groups yuyu
yuyu : yuyu
(3)finger命令 查询用户账号的登录属性(需安装finger)
[root@localhost ~]# yum install finger
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 finger.x86_64.0.0.17-52.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
=================================================================================================================================================================================================================
Package 架构 版本 源 大小
=================================================================================================================================================================================================================
正在安装:
finger x86_64 0.17-52.el7 base 25 k
事务概要
=================================================================================================================================================================================================================
安装 1 软件包
总下载量:25 k
安装大小:32 k
Is this ok [y/d/N]: y
Downloading packages:
finger-0.17-52.el7.x86_64.rpm | 25 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : finger-0.17-52.el7.x86_64 1/1
验证中 : finger-0.17-52.el7.x86_64 1/1
已安装:
finger.x86_64 0:0.17-52.el7
完毕!
[root@localhost ~]# finger
Login Name Tty Idle Login Time Office Office Phone Host
root root *:0 May 8 14:21 (:0)
root root pts/0 1:00 May 12 14:11 (192.168.206.1)
root root pts/1 May 12 14:22 (192.168.206.1)
(4)w命令 查询当前主机的用户登录情况
[root@localhost ~]# w
15:00:15 up 15:04, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 六14 ?xdm? 5:10 0.39s /usr/libexec/gnome-session-binary --session gnome-classic
root pts/0 192.168.206.1 14:11 47:35 0.03s 0.03s -bash
root pts/1 192.168.206.1 14:22 7.00s 0.07s 0.02s w
(5)users
[root@localhost ~]# users
root root root
五.文件/目录的权限和归属
ls -l /etc/passw
[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2558 5月 12 14:26 /etc/passwd
-rw-r–r-
第一个字符表示文件类型 -表示是普通文件
2-4个字符表示文件的属主用户(user)对文件的访问权限
5-7个字符表示文件的属组内的成员用户(group)对文件的访问权限
8-10个字符表示其他用户(other0对文件的访问权限
说明
r表示可读,w表示可写,x表示可执行
r八进制数字表示是4,w八进制数字表示是2,x八进制数字表示是1
表示root用户对 /etc/passwd 文件具有可读可写权限,root组内的用户对 /etc/passwd 文件只有可读权限
1.访问权限
读取权限r
允许查看文件内容,显示目录列表
写入权限w
允许修改文件内容,允许在目录中新建移动删除文件或者子目录
可执行权限x
允许运行文件,切换目录
创建一个新目录的默认权限是755
创建一个新文件的默认权限是644
2.归属(所有权)
属主
拥有该文件或目录的用户账号
属组
拥有该文件或者目录的组账号
3.文件或者目录权限设置chmod命令
修改test文件的权限为属主可读写可执行,属组可读写,其他人只能读
chmod 764 test
chmod u=rwx g=rw 0=r test
chmod g-x o-wx test
修改test文件的权限为属主属组其他用户都为可读写可执行
chmod 777 test
chmod u=rwx g=rwx o=rwx test
4.文件或者目录属主属组设置chown命令
修改文件test的属主为root
chown root test
修改文件test的属主为root,属组为liu
chown root:liu test
递归修改目录zhou的属主和属组为root
chown -R root:root zhou/
修改test的属组为root
chown :root test
chgrp root test