四个配置文件
passwd
useradd
usermod
userdel
groupmems
gpasswd
groupadd
groupmod
groupdel
user
token身份
username/uid
root,0
普通用户
系统用户 1-499,1-1000
登录用户 500+,1000+
group
groupname/gid
root,0
普通组
系统组 1-499,1-999
普通组 500+,1000+
进程能够访问资源的权限取决于进程的运行者的身份
用户必须属于一个且只有一个主组,组名同用户名,且仅包含一个用户:私有组
一个用户属于0个或多个辅助组
配置文件
/etc/passwd 用户及其属性信息
pwuncon x变为加密口令
pwcon 加密口令变为x
将普通用户变为管理员
vim /etc/passwd 将uid变为0即可
passwd 用户名 更改密码
uid可以一样,两个用户
将root 0——>非0,尝试登录,修复方法
单用户操作
a(centos6.9) e(centos7.3)
Linux16这一行:init=/bin/bash init=/bin/bash Ctrl+x
mount -o remount,rw /
vim /etc/passwd uid更改为0
sync存盘
chfn 用户名 修改用户描述信息
rpm -i /misc/cd/Packages/finger-o...
finger 用户名 查看该用户的描述信息
更改家目录,用户不能登录,登录时,不能更改家目录
vim /etc/passwd
usermod -d /app/feng feng
指定新的shell类型
echo $SHELL 查看shell类型
vim /etc/shells
chsh 用户名 指定shell类型
chsh -s /bin/csh feng
getent passwd feng 不加用户名,看所有人的信息
/bin/bash 直接更改
nologin 不能登录,只能远程服务访问
/sbin/nologin /usr/sbin/nologin centos6不一样,centos7一样
/etc/shadow 用户密码及其相关属性
getent shadow
pwuncov执行后,/etc/shadow打不开
哈希算法(加密算法)
数据一样(不同),加密结果一样(不同)
$哈希算法$salt$
1——md5——128bit——$1$...$
6——sha512——512bit——$6$...$
salt
随机数 salt不一样,数据一样,结果不一样
salt一样,数据一样,结果一样
锁定
禁止用户登录
:!: 空口令不能登录
:: 空口令可以登录
解锁
usermod -U 用户名 解锁
vim /etc/shadow 去掉!即可
usermod -L 用户名 锁定
练习
useradd 用户名
echo 密码|passwd --stdin 用户
getent shadow or getent 用户
openssl passwd -1 -salt "..." 指定算法、指定salt
更改加密算法
authconfig --passalgo=sha256(算法) --update
or vim /etc/login.defs
文件最下方 ENCRYPT METHOD 256
影响新建用户的口令策略、ID号......
authconfig --help|grep pass
passwd 用户 输入新密码
getent shadow 用户
用户家目录
cat /etc/default/useradd ——> /etc/skel/*
参考此文件创建家目录
使新用户拥有其他功能 ——> 把功能文件加入此文件夹即可 ——> 旧用户保持原样
vim /etc/default/useradd
更改用户的默认设置:shell类型、家目录配置文件、邮箱......
组编号100
chage --help
更改用户的口令策略
chage -d 0 用户名 下次登录强制重新设置密码,gshadow内容为0
passwd -e 用户名
passwd
passwd 用户名 修改用户的口令
passwd 修改自己的口令
passwd -l 用户名 锁定用户,/etc/shadow密码栏增加2个!
passwd -U 用户名 解锁
passwd -e 用户名 强制用户下次登录,修改口令
passwd --stdin 用户名 从标准输入接收用户口令
echo "centos" |passwd --stdin 用户名
echo 用户名:密码 |chpasswd 一次改一个
批量修改用户口令 chpasswd
vim passwd.txt
用户1:口令
......
用户n:口令
cat passwd.txt |chpasswd
用此法修改之后,用户可以登录,但是家目录里无内容(用户必须是已经存在的)
拷贝家目录
cd /home/用户名
cp -a /etc/skel/.[^.]* .
权限问题
root
cp -a 自己的/etc/skel给普通用户,属性是root
普通用户
cp -a 别人的/etc/skel给自己,属性是自己
旧服务器硬件不行了,软件系统还用,如应用账号,需要导出到新的服务器上
newusers passwd格式文件 批量创建用户
旧服务器 ——> 复制账号/etc/passwd
新服务器 ——> vim user.txt ——> 粘贴 ——> cat user.txt
newusers user.txt
对比 /etc/passwd 检查是否一样
useradd
useradd -u id 用户 指定用户ID
useradd -u id -o 用户 指定已被占用的ID
生产中,uid相同——>二者权限相同
useradd -N 用户名 users做主组,私有组不做主组
id 用户名
useradd -g 组名 用户名 设置新用户的主组
useradd -g 组名 -G 多辅助组名 用户名 设置新用户的主组和辅助组
useradd -c 描述信息 用户名 用户注释信息
useradd -d /path/to/file(不存在) 用户 指定用户家目录为该路径
useradd -s shell类型 用户 指定用户默认的shell程序
useradd -r 用户 创建系统用户 centos6-id<500;centos7-id<1000
useradd -s /sbin/nologin -r -d /app/apache 用户(apache或nignx) 非交互式登录、/home/ngix、
useradd -M 用户名 不创建家目录,不影响登录
useradd -D 显示默认设置
useradd -D -s shell类型
useradd -D -b /path/to/file
useradd -D -g 组名
usermod
usermod -u uid 用户名 指定用户新的ID
usermod -g gid 用户名 指定用户新的主组
usermod -Ga 多个组 用户名 给用户添加辅助组,去掉a——>添加的组会覆盖原来的组
usermod -s shell类型 用户名 新的shell类型
usermod -c 描述 用户名 新的注释信息
usermod -dm 路径 用户名 新家目录路径,去掉m——>家目录不会自动创建并移动原来的家目录数据
usermod -l 新名 旧名 新名字(用户名变,家目录不变,其他不变)
usermod -L 用户名 锁定用户,/etc/shadow密码栏增加一个!
usermod -U 用户名 解锁用户,/etc/shadow密码栏去掉一个!
userdel
userdel 用户名 不删除家目录
userdel -r 用户名 删除家目录
/etc/group 组及其属性
/etc/gshadow 组密码及其属性
groupmems
groupmems -g 组名 -a 用户名 把用户加进组里
更改组成员关系后,用户需重新登录,才可获取最新“组成员关系”
groupmems -g 组名 -d 用户名 从组中删除用户
groupmems -g 组名 -p 用户名 从组中清除所有成员
groupmems -g 组名 -l 用户名 显示组成员列表
groups 用户 查看用户所属组列表
newgrp 变更组 主组是变更组
用户不在变更组里,需要变更组口令;若在,则不需要
gpasswd
gpasswd 组名 设置组口令
gpasswd -a 用户名 组名 把用户加进组里
gpasswd -d 用户名 组名 从组里删除用户
gpasswd -A 多用户 组名 把多个用户设为组管理员
gpasswd -M 多用户 组名 把多个用户设为组成员
vipw = vim /etc/passwd
pwck 语法检查/etc/passwd
grpck 语法检查/etc/group
vigr = vim /etc/group
groupadd 创建组
groupadd -g GID 组名 指明组的GID
groupadd -r 组名 创建系统组(6~id<500,7~id<100)
groupmod 组属性修改
groupadd -n 新组名 原组名 新的组名
groupadd -g GID 组名 新的GID
groupdel 删除组
groupdel 组名 删除组