Linux用户管理2

passwd给用户修改密码

用户自己给自己设置密码直接passwd
root用户给普通用户设置密码passwd 用户名
--stdin从标准输入获取信息
echo "1" | passwd --stdin username

chpasswd给用户批量设置密码

首先批量创建用户
------------------------
vim 1.sh
for n in {01..10}
do 
    useradd oldboy$n
done
bash 1.sh
------------------------
把用户和密码用冒号隔开,然后放入文件
 vim user.list
oldboy01:01
oldboy02:02
oldboy03:03
oldboy04:04
oldboy05:05
批量设置密码命令:
chpasswd <user.list        不好用。
cat user.list |chpasswd      好用
扩展技术:后期细讲,此处可忽略
批量【生成】用户名和密码文件列表;
seq -w 10|sed -rn 's#(.*)#oldboy\1:\1#gp' >user.list
cat user.list
oldboy01:01
oldboy02:02

批量【设置】用户和密码列表;
seq -w 10|sed -rn 's#(.*)#useradd oldboy\1;echo \1|passwd --stdin oldboy\1#gp'
useradd oldboy01;echo 01 passwd --stdin oldboy01
useradd oldboy02;echo 02 passwd --stdin oldboy02

useradd oldboy10;echo 10 passwd --stdin oldboy10
seq -w 10|sed -rn 's#(.*)#useradd oldboy\1;echo \1|passwd --stdin oldboy\1#gp'|bash

chage 查看和更改密码属性===更改用户密码过期信息

chage -l 查看用户和密码属性
chage -l oldboy
最近一次密码修改时间					:5月 19, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7
chage -E "" 设定账户过期时间 username
useradd -e和chage -E是一样的。
usermod -e "2031/5/20" oldboy
chage -l oldboy
最近一次密码修改时间					:5月 19, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:5月 20, 2031
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7
chage -E "2041/5/20" oldboy
chage -l oldboy
最近一次密码修改时间					:5月 19, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:5月 20, 2041
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

范例

范例14-16:要求oldgirl用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知用户,过期后30天后禁止用户登录。
修改的文件/etc/shadow
查看 chage -l 用户名
设置方法:2个:
passwd -n 7 -x 60 -w 10 -i 30 oldboy  <==参数含义详见前文表格。
chage  -m8  -M61  -W11  -I31 oldboy <==使用chage按题意要求授权。
chage -l oldboy
最近一次密码修改时间					:6月 30, 2030
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

练习修改密码属性(了解)
grep -w oldboy /etc/shadow
oldboy:$6$V07NxoML$u.O04z4BaVQqosvEDjZfrQPvla19tEKLdoYxqjWpbgng8XQgtdjBS0xUMjtjN2zWBE8XiW5X6820iKPyDBJI00:22095:0:99999:7:::
passwd -n 7 -x 60 -w 10 -i 30 oldboy
调整用户密码老化数据oldboy。
passwd: 操作成功
grep -w oldboy /etc/shadow
oldboy:$6$V07NxoML$u.O04z4BaVQqosvEDjZfrQPvla19tEKLdoYxqjWpbgng8XQgtdjBS0xUMjtjN2zWBE8XiW5X6820iKPyDBJI00:22095:7:60:10:30::
chage -l oldboy
最近一次密码修改时间					:6月 30, 2030
密码过期时间					:8月 29, 2030
密码失效时间					:9月 28, 2030
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:7
两次改变密码之间相距的最大天数		:60
在密码过期之前警告的天数	:10

用户组相关的命令

groupadd 添加用户组
groupdel 删除用户组
练习 
groupadd mr.liu 
tail -n 1 /etc/group /etc/shadow
==> /etc/group <==
mr.liu:x:10021:
==> /etc/shadow <==
oldgril:!!:18766:0:99999:7:::
groupdel mr.liu
grep -w mr.liu /etc/group /etc/shadow

su 切换用户角色 ,从A用户切换到B用户

sudo 提权管理命令

su - oldboy 携带环境变量
显示:root环境变量
env|grep root
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
HOME=/root
LOGNAME=root

练习查看加不加-的区别:
su oldboy
env|grep oldboy
HOSTNAME=oldboy
USER=oldboy
HOME=/home/oldboy
LOGNAME=oldboy
pwd  还是root家目录,这就是没有加-的问题。
/root
 env|grep root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/root
exit

su - oldboy
上一次登录:一 7月  1 00:11:41 CST 2030pts/1 上
env|grep root
env|grep oldboy
HOSTNAME=oldboy
USER=oldboy
MAIL=/var/spool/mail/oldboy
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oldboy/.local/bin:/home/oldboy/bin
PWD=/home/oldboy
HOME=/home/oldboy
LOGNAME=oldboy

第二个参数:
su -c 以oldboy用户身份执行命令,然后退回当下用户
su - oldboy -c pwd
/home/oldboy

用普通用户登录管理,su - root切换到root管理,拥有了所有权限。。

普通用户必须要知道root密码,登录到root,他就可以改了密码,让你登录不上你。

适合运维部门人少的时候。
弊端:
1)切换到root
2)拥有所有权限。
更规范的管理方法:
不切换到root,在操作命令同时,拥有root权限,一旦操作完成,权限就消失。而且不需要root密码
sudo
sudo配置文件是/etc/sudoers
通过visudo管理sudo配置文件/etc/sudoers     100行左右
ls /etc/sudoers -l
-r--r-----. 1 root root 4328 11月 28 2019 /etc/sudoers

root    ALL   =(ALL)          ALL
用户    主机    切换的角色    执行命令

设置oldboy用户在所有主机上,可以切换到所有角色,执行所有命令。
oldboy  ALL =(ALL)            ALL
oldboy就相当于root,不是root。

测试1:
useradd bingbing
useradd: Permission denied.
useradd:无法锁定 /etc/passwd,请稍后再试。
sudo useradd bingbing
[sudo] oldboy 的密码:
 tail -1 /etc/passwd
bingbing:x:5018:5018::/home/bingbing:/bin/bash
sudo su - root
上一次登录:日 6月 30 22:28:53 CST 2030从 10.0.0.1pts/1 上
whoami
root
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
1) 尊重别人的隐私。
2) 输入前要先考虑(后果和风险)。
3) 权力越大,责任越大。

生产管理方法;给用户设置具体的命令。
oldboy  ALL =(ALL)            /usr/sbin/useradd,/usr/sbin/userdel 执行命令,越小越具体越好。
设置粒度,最小是一个命令,允许他执行这个命令时拥有root权限。

rm -fr /root
rm: 无法删除"/root": 权限不够
sudo rm -fr /root
对不起,用户 oldboy 无权以 root 的身份在 oldboy 上执行 /bin/rm -fr /root。
 rm -fr /root
rm: 无法删除"/root": 权限不够
 sudo userdel bingbing
grep bing /etc/passwd
sudo useradd bingbing
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
grep bing /etc/passwd
bingbing:x:5018:5018::/home/bingbing:/bin/bash
ls /root
ls: 无法打开目录/root: 权限不够
sudo ls /root
对不起,用户 oldboy 无权以 root 的身份在 oldboy 上执行 /bin/ls /root。

sudo优点
1)不是root用户,还是自己。
2)指定命令拥有root权限,可以完成管理员分配的任务。
3)不需要root密码。

查看用户信息命令

idwhoamiwhow

查看用户日志

lastlastlog/var/log/secure 远程登录安全日志

更改文件属性

更改用户所属用户和组:chown         change owner
更改用户组:chgrp                  change group
格式
chown 用户.用户组 文件     可以用;替代 更改用户和组
chown 用户     文件        更改用户
chown .用户组   文件       更改用户组,等价:chagrp 用户组 文件
前提:用户和组必须要存在。
chown -R 参数 递归更改
上一篇:MJUPC-006_编程挑战系列赛第六场(以代码为文,贺国庆华诞) _D.铺水泥


下一篇:ZZULIOJ:1013: 求两点间距离