用户管理:
1 既然管理,首先要有用户
# useradd 用户名[user] (简简单单就添加了一个用户)
2 加上用户后你会发现刚添加的用户就是一个花瓶,不能用怎么办?要想用应该这样
# passwd 用户名[user] (按照提示输入密码[复杂性,易记性,时效性])
没设密码在shadow文件2字段是!! or *
3 新用户添加完密码用ssh 登陆此用户登陆成功,但是一脸蒙蔽,用户在哪呢!
# vim /etc/passwd (用户在这个文件中,命令模式G 到最下方看到[user])
3-1: 看是看到用户在这文件夹里躺着呢,但是这一行行的都是什么鬼东西???(小问号有很多朋友)
# 1) shift+: 退出vim
# 2) whereis passwd (whereis 不尽显示命令位置 这家伙还把相关的帮助文档都给显示)
# 3) centos7 不出以外显示 passwd: /usr/bin/passwd /etc/passwd [[/usr/share/man/man5/passwd.5.gz]] /usr/share/man/man1/passwd.1.gz
# 4) 3中双中括号中的那个文档就是我们需要的(你要问我怎么知道是这个文档的,我是不会告诉你我是一个个文档打开看的~~~)
# 5)man 5 passwd (为什么不是路径而是一个5 因为man知道文件在哪,他要你告诉他的是你要打开哪一个版本的文档.gz 前面的数字)
# 6) 打开后显示
6)-1): account:password:UID:GID:GECOS:directory:shell
(帐号:密码:用户ID:组ID:一般的信息:目录:shell)
6)-2): account 用户名[user]
password 密码标识[x 代表有密码(不对啊我的密码是123加密后也不能是x呀,呵!linux 号称最安全稳定的系统, 怎么可能在一个权限为644的文件中显示加密后的密码这不是让我的密码被破解性大大提高吗)]
uid 用户id (给系统看的系统只认识数字0 超级用户 1-999 系统用户 1000-60000 普通用户)
gid 组id
GECOS 备注
directory 家目录 [/home/user]
shell 用哪个shell解释 [/bin/bash(标准shell)]
3-2: ...
4 用户是看到了,密码还是没看到,他在哪呢?
# vim /etc/shadow (用户密码文件 文件权限000 狠吧,谁都不让看,但是,我们有牛逼的root,钢铁之躯 上天入地无所不能)
4-1: 打开之后发现和passwd 文件差不多(差不多到底差多少???)
4-2: 一共有9个位置
4-3: 0 用户名
1 sha512 加密后的密码
2 创建此用户时的时间戳 [16676]自1970-1-1
3 现用密码与上个密码的修改间隔时间[为0 用户登陆则会立马提示用改密码,修改完成后立马退出要求重新新密码登陆]
4 现用密码的有效时间
5 距离有效时间提前多长时间提示你修改密码
6 宽限天数密码过了有效期几天后必须更改密码(延迟修改[5到期后再过5天强制让用户修改密码])
7 密码失效时间
8 保留位
5 听说还有个家目录,在哪呢?
# ls /home/ (会看到刚创建的user 目录,每一个用户都有一个家目录)
5-1: 你这家伙老喜欢骗我们这老实人,那每一个用户都有一个家目录, 我在/home/ 这个家里也没有看到root的家啊!
5-2: root用户,他可是超级管理员啊,超级!!!怎么可能在/home/这个小家庭中呢,当然要把家按在最容易看到的地方,好监视你们这些小家庭成员,在哪呢? 试试 ls / 看看是不是有个root 目录 , nao 那不是root他家吗。
5-3: 哎哎哎,你别走,我刚刚在user目录中ls 了一下啥也没有,ls -a 一下出来好几个东西,这,,,,,,东西哪来的1
5-4: 系统吗,人做的! 当然是从某个地方已经存在,拷贝过来的呗.(想知道拷贝的哪个地方吗? 叫我一声大哥,大哥告诉你 QAQ )........
# ls -a /etc/skel/ (有没有发现这个文件下的和刚刚添加用户家目录下的义模亿阳)
没错,新建用户家目录中的内容就是拷贝的/etc/skel/中的内容
不信!
# vim /etc/skel/canglaoshi.txt
# useradd canglaoshi
# ls /home/canglaoshi/
有没有发现ls 不加-a 也有了一个文件 canglaoshi.txt
6 useradd 创建目录功操作如下文件
/etc/passwd (添加用户信息)
/etc/shadow (添加用户密码信息)
/etc/group (添加用户组信息)
/etc/gshadow(添加用户组密码等信息)
/var/spool/mail/ (添加用户邮箱文件[与用户名同名])
/home/用户名[user] (添加用户家目录)
/etc/skel/ (拷贝此目录中的内容)
7 useradd 的参数
# useradd -u 6666 -G root,bin -c "test user" -d /home/canglaoshi -s /bin/bash boduolaoshi
7-1: u 创建用户时手工指定用户uid
g 手工指定用户初始组
G 手工指定用户附加组
d 指定用户家目录
s 指定用户登陆shell 默认/bin/bash
8 删除用户
# userdel -r user (连根拔起,用户家目录一并删除)
# userdel user (保留用户家目录)
也可手动删除6中的那些文件
9 useradd 有这么多参数,为什么不带也行
9-1: 用户默认值文件
# vim /etc/default/useradd
[GROUP=100 # 用户默认组 (id 号)[公有模式 是这个,私有模式中系统会默认创建与用户名同名的组] 显然现在我们的是私有模式
HOME=/home # 用户家目录 (这就是为什么添加用户的家目录都在/home下,可以随便改自己喜欢的路径)
INACTIVE=-1 # 密码过期宽限天数 (shadow文件7字段 在上方4中的6号字段)
EXPIRE= # 密码失效时间(shadow第8字段 4中的7)
SHELL=/bin/bash # 默认shell
SKEL=/etc/skel # 模板目录
CREATE_MAIL_SPOOL=yes # 是否添加邮箱
]
9-2: 可以发现上方文件只定义了 shadow 文件的7 8 字段 ,其它在下方文件
# vim /etc/login.defs
[
PASS_MAX_DAYS 99999 #密码有效期 5
PASS_MIN_DAYS 0 # 密码修改间隔 4
PASS_MIN_LEN 5 # 密码最小5位(PAM)[PAM 生效,默认8位]
PASS_WARN_AGE 7 # 密码到期警告 6
UID_MIN 1000 # 最小最大UID 范围
UID_MAX 60000
ENCRYPT_METHOD SHA512 #加密模式
]
10 锁定与解锁用户
# passwd -l user (锁定用户,用户无法登陆。仅root可用)
也可以修改shadow 2字段加密密码前加!!
# passwd -u user (解锁用户,仅root可用)
也可以修改shadow 2字段加密密码前去掉!!
# passwd -S user (查询用户密码状态,仅root用户可用)
user PS 2021-07-28 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
PS 后面: 2021-07-28 密码设定的时间 shadow 中是时间戳
0 密码修改间隔
99999 有效期
7 到期前7天提示
-1 宽限时间 -1 无宽限时间
3 echo "123" | passwd --stdin user
shell 脚本中使用 ,为用户添加密码
11 修改用户信息
# usermod [-u -g -G -c -d -s -L -U] user
修改用户信息
# usermod -G root {组名,已存在} user 将user 加入到附加组, 附加组名为root
# vim /etc/group (组最后一个字段为附加的用户)
root:x:0:user
# chage -d 0 user
-d 修改日期 (记住这一个就行了,其它用到man一下复制英文丢百度翻译)
一般shell 脚本中创建用户时用,当前命令的意思是将shadow 文件的第3字段修改为0 即创建时间为1970-1-1
此用户第一次登陆时会直接进入修改密码,
修改成功后退出链接
然后用户需要重新用新密码登陆
12 切换用户
root 切换普通用户不需要输入密码
普通用户切换成root 用户 必须输入密码
# su root 切换成user用户(此是环境变量并没有被改变,用户是root界面也显示# 但是功能还是user 的功能,并没有root所有权限)
env 回车
查看USER=user
# su - root 加上 - 前后空格
env 回车
查看USER=root
所有信息均是root的
# su - root -c "whoami"
临时使用root权限执行一条命令
用户组管理
1 添加用户组
# groupadd [-g GID 指定gid] 组名 [canglaoshi]
2 修改用户组
# groupmod [-g GID 修改id] 组名 [canglaoshi]
# groupmod [-n 新组名] 组名 [canglaoshi]
# groupmod -n canglaoshizuimei canglaoshi
将canglaoshi组名 改为 canglaoshizuimei
3 删除用户组
# groupdel 组名 [canglaoshizuimei]
如果有用户初始组为canglaoshizuimei 则不能删除canglaoshizuimei
应该先userdel -r 用户名 [user]
再 groupdel canglaoshizuimei
附加组就没这种问题
4 把用户添加到组or 从组中删除
# gpasswd -a 用户名[canglaoshi] 组名[canglaoshizuimei]
操作的是附加组
组必须是已经存在的
-a 添加到组
# gpasswd -d 用户名[canglaoshi] 组名[canglaoshiheifen]
-d 将用户从组种移除
5 将用户加入到扩展组或者删除都可以再配置文件中直接删除或增加
# vim /etc/group
chrony:x:995:[[user,canglaoshi]]
在最后字段添加删除,多个用, 分