Linux系统中的用户管理
1.用户的查看
1).查看当前用户
whoami ##查看当前的用户身份
2).系统中用户的查看
命令 | 命令功能 |
---|---|
id+用户名 | 查看指定用户的id信息 |
id -u 用户名 | 查看用户的uid |
id -g 用户名 | 查看用户的gid |
id -G 用户名 | 查看用户所在组的id |
2.用户与用户组的建立与删除
1).用户
用户信息监控命令
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home’
命令 | 命令功能 |
---|---|
useradd 用户名 | 建立用户 |
useradd -u uid 用户名 | 建立指定uid的用户 |
useradd -g gid 用户名 | 指定用户初始组id(gid用户组必须是存在的) |
useradd -G 组id号 用户名 | 建立用户的附加组 |
useradd -c “说明” 用户名 | 指定用户说明 |
useradd -d 具体路径 | 指定用户的家目录 |
useradd -s /bin/sh westos | 指定用户的默认shell |
userdel 用户名 | 删除用户但不删除用户的配置文件 |
userdel -r 用户名 | 删除用户并且删除用户的配置文件 |
2).用户组
命令 | 命令功能 |
---|---|
groupadd 组名 | 建立用户组 |
groupadd -g gid 组名 | 建立一个指定gid的用户组 |
groupdel 组名 | 删除一个已经存在的用户组 |
3.usermod更改用户信息
命令 | 命令功能 |
---|---|
usermod -l 新名称 用户 | 更改原有用户的名称 |
usermod -u uid 用户 | 更改用户的uid |
usermod -g gid 用户 | 更改用户的初始组 |
usermod -G 组名 用户 | 更改用户的附加组 |
usermod -aG 组名 用户 | 添加用户的附加组 |
usermod -G “” | 删除用户所有附加组的身份 |
usermod -c “用户说明” 用户 | 更改用户说明 |
usermod -d 路径 用户 | 更改用户家目录的指向 |
usermod -md 路径 用户 | 更改指定用户的家目录 |
usermod -s shell的路径 用户 | 更改指定用户的shell |
usermod -L 用户 | 冻结用户 |
usermod -U 用户 | 解锁用户 |
4.用户切换
gnome-session-quit --force (注销当前的用户)
su - 用户名称 (切换到该用户)
su - 执行时高级用户切换到低级的用户不需要密码,低级用户切换到高级的用户需要密码。平级用户之间切换也需要密码
注:每次su切换到其他用户操作之后必须退出,然后再次切换到其他的用户,若未退出,后台会继续运行此环境
5.用户在系统中的存储方式
1). /etc/passwd ##用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
“说明:默认shell的指定有那些可以查看系统中/etc/shells文件“
2). /etc/group ##用户组信息文件
组的名字:组密码:组id:组成员
3). /etc/shadows ##认证信息文件
4). /etc/skel/.* ##默认开启shell的配置,用户的骨文件
5). /home/username ##用户的家目录
6.用户认证信息的修改
1). /etc/shadow ##记录用户的认证信息
文件中9列分别的含义:
[1]:用户名称;[2]:用户密码(默认的密码加密方式是sha512对称加密,如果前面出现两个‘!!’字符,则代表密码被加锁);[3]:用户从1970年1月1日到密码最后一次被修改的天数;[4]:密码如果被修改最少要经历的天数;[5]:密码的维持天数(密码最多多久要被修改);[6]:密码即将过期提醒,提醒用户密码还有多少天过期;[7]:密码过期后还能使用的天数(如果超过该期限,该帐号会被停止使用);[8]:帐号失效日期;[9]:保留项,暂时未被使用
注:如果忘记这9列的含义,可以使用命令 “ man 5 shadow “ 查看
2).用户修改密码 passwd
#超级用户修改密码:
passwd 用户名
注:1.超级用户修改密码时,会有各种关于密码形式的提醒,但并不限制超级用户修改密码
2.超级用户可修改任何用户的密码
#普通用户修改密码:
passwd
注:1.此处只能用passwd命令,后面不能加该用户的用户名
2.普通用户只能修改自己的密码,而且密码的形式会被限制(必须知道现原密码;新密码不能为有序的纯数字或纯字母;如果密码为纯数字或纯字母时,字符数必须大于8;密码不能与用户名相似,不能与原密码相同)
#使用passwd和chage修改认证信息时的相关指令
1.修改密码的最后一次被修改的时间
passwd -e 天数 用户名
chage -d 天数 用户名
2.修改用户密码最短有效期
passwd -n 天数 用户名
chage -m 天数 用户名
3.修改用户密码最长有效期
passwd -x 天数 用户名
chage -M 天数 用户名
4.修改用户密码的警告期限(密码过期前提醒)
passwd -w 天数 用户名
chage -W 天数 用户名
5.清空用户的密码
passwd -d 用户名
6.修改用户非活跃天数(密码过期后仍可登陆的天数)
passwd -i 天数 用户名
chage -I 天数 用户名
7.修改用户的帐号到期日
chage -E 日期 用户名
7.用户授权
hostname 查看主机名
权力下放文件为/etc/sudoers
(此文件可以直接用vim进行编辑,但是不提供语法的检测,一般使用visudo编辑此文件,visudo命令提供语法检测)
#下放方式 visudo (在100行左右添加命令)
用集合的表示方式(等号两边必须要有空格 集合名称要大写)
#更改使用权限用 Cnmd_Alisa *** = /usr/sbin/useradd, /… (Alisa为主机名,***为集和名,等号后接要下放的权力,可无限添加,用逗号隔开)
#更改用户权限用 User_Alisa *** =westos, test …(Alisa为主机名,***为集和名,等号后为要更改的用户,可无限添加,用逗号隔开)
( *** hostname=(root) NOPASSWD: ***)