Day13-Linux系统用户管理知识精讲2

1. passwd 给用户设置密码

用户自己给自己设置密码直接passwd

root用户给普通用户设置密码passwd 用户名。

–stdin 从标准输入获取信息

[root@oldboy ~]# echo 123456|passwd --stdin oldboy
更改用户 oldboy 的密码 。
passwd:所有的身份验证令牌已经成功更新。

2. chpasswd 批量设置密码

bash脚本

for n in {
   01..10}
do
   useradd oldboy$n
done

把用户和密码用冒号分割,然后放入文件里。

[root@oldboy ~]# vim user.list
oldboy01:01
oldboy02:02
oldboy03:03
oldboy04:04
oldboy05:05

批量设置密码命令:

chpasswd <user.list #不好用。

cat user.list|chpasswd #好用

su - oldboy02,然后在切入到其他用户测试。

扩展技术:后期细讲,此处可忽略

批量【生成】用户名和密码文件列表;

[root@oldboy ~]# seq -w 10|sed -rn 's#(.*)#oldboy\1:\1#gp' >user.list
[root@oldboy ~]# cat user.list
oldboy01:01
oldboy02:02
oldboy03:03
oldboy04:04
oldboy05:05
oldboy06:06
oldboy07:07
oldboy08:08
oldboy09:09
oldboy10:10

批量【设置】用户和密码列表;

[root@oldboy ~]# 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 oldboy03;echo 03|passwd --stdin oldboy03
useradd oldboy04;echo 04|passwd --stdin oldboy04
useradd oldboy05;echo 05|passwd --stdin oldboy05
useradd oldboy06;echo 06|passwd --stdin oldboy06
useradd oldboy07;echo 07|passwd --stdin oldboy07
useradd oldboy08;echo 08|passwd --stdin oldboy08
useradd oldboy09;echo 09|passwd --stdin oldboy09
useradd oldboy10;echo 10|passwd --stdin oldboy10
[root@oldboy ~]# seq -w 10|sed -rn 's#(.*)#useradd oldboy\1;echo \1|passwd --stdin oldboy\1#gp'|bash

通过nodepad++批量生成用户名,

按住ALT,然后将光标第1行拉倒第10行,然后输入oldboy,

然后按住alt+c,设置生成数字序列

oldboy1
oldboy2
oldboy3
oldboy4
oldboy5
oldboy6
oldboy7
oldboy8
oldboy9

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

-l 查看用户和更改密码属性

[root@oldboy ~]# chage -l oldboy
最近一次密码修改时间			:6月 30, 2030
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间					:从不
两次改变密码之间相距的最小天数	:0
两次改变密码之间相距的最大天数	:99999
在密码过期之前警告的天数	    :7

-e “” 设定账户过期时间。

useradd -e “2040/5/20” oldboy11

[root@oldboy ~]# useradd -e "2040/5/20" oldboy11
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
[root@oldboy ~]# chage -l oldboy11
最近一次密码修改时间					:6月 30, 2030
密码过期时间					   :从不
密码失效时间					   :从不
帐户过期时间						:5月 20, 2040  =========================账户过期时间
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

chage -E “2041/6/30” oldboy11

[root@oldboy ~]# chage -E "2041/6/30" oldboy11
[root@oldboy ~]# chage -l oldboy11
最近一次密码修改时间					:6月 30, 2030
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:6月 30, 2041
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

useradd -e和chage -E是一样的。

范例:要求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按题意要求授权。
[root@oldboy ~]# chage -l oldboy
最近一次密码修改时间					:6月 30, 2030
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

练习修改密码属性(了解)

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

4. 用户组相关的命令了解

groupadd 添加用户组

groupdel 删除用户组

练习:

[root@oldboy ~]# groupadd sa
[root@oldboy ~]# tail -n 1 /etc/group /etc/gshadow
==> /etc/group <==
sa:x:5018:

==> /etc/gshadow <==
sa:!::
[root@oldboy ~]# groupdel sa
[root@oldboy ~]# grep -w sa /etc/group /etc/gshadow

切换用户以及提权管理命令:

su

sudo

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

su - oldboy # -表示携带用的环境变量切换

显示:root环境变量

[root@oldboy ~]# 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

练习查看加不加-的区别:

[root@oldboy ~]# su oldboy
[oldboy@oldboy root]$ env|grep oldboy
HOSTNAME=oldboy
USER=oldboy
HOME=/home/oldboy
LOGNAME=oldboy
[oldboy@oldboy root]$ pwd #还是root家目录,这就是没有加-的问题。
/root
[oldboy@oldboy root]$ env|grep root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/root
[oldboy@oldboy root]$ exit
[root@oldboy ~]# su - oldboy
上一次登录:一 71 00:11:41 CST 2030pts/1 上
[oldboy@oldboy ~]$ env|grep root
[oldboy@oldboy ~]$ 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

第二个参数:

-c 以oldboy用户身份执行命令,然后退回当下用户

[root@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

[root@oldboy ~]# ls /etc/sudoers -l
-r--r-----. 1 root root 4328 1128 2019 /etc/sudoers

root ALL =(ALL) ALL

用户 主机 切换的角色 执行命令

设置oldboy用户在所有主机上,可以切换到所有角色,执行所有命令。

oldboy ALL =(ALL) ALL

oldboy就相当于root,不是root。

测试1:

[oldboy@oldboy ~]$ useradd bingbing
useradd: Permission denied.
useradd:无法锁定 /etc/passwd,请稍后再试。
[oldboy@oldboy ~]$ sudo useradd bingbing

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] oldboy 的密码:
[oldboy@oldboy ~]$ tail -1 /etc/passwd
bingbing:x:5018:5018::/home/bingbing:/bin/bash
[oldboy@oldboy ~]$ sudo su - root
上一次登录:日 630 22:28:53 CST 203010.0.0.1pts/1 上
[root@oldboy ~]# whoami
root

生产管理方法;给用户设置具体的命令。

oldboy  ALL =(ALL)            /usr/sbin/useradd,/usr/sbin/userdel     ##执行命令 越小越具体越好。

#设置粒度,最小是一个命令,允许他执行这个命令时拥有root权限。

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

sudo优点
1)不是root用户,还是自己。

2)指定命令拥有root权限,可以完成管理员分配的任务。

3)不需要root密码。

查看用户信息命令

	id
	whoami
	who
	w

查看用户日志

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

更改文件属性:

更改用户所属用户和组:chown #change owner

更改用户组:chgrp #change group

chown 用户.用户组 文件 #.可以用;替代 更改用户和组

chown 用户 文件 #更改用户

chown .用户组 文件 #更改用户组,等价:chagrp 用户组 文件

前提:用户和组必须要存在。

练习:

[root@oldboy ~]# touch test.txt
[root@oldboy ~]# ls -l test.txt
-rw-r--r--. 1 root root 184 71 01:51 test.txt
[root@oldboy ~]# chown oldboy.oldboy test.txt #更改用户和组为oldboy
[root@oldboy ~]# ls -l test.txt
-rw-r--r--. 1 oldboy oldboy 184 71 01:51 test.txt
[root@oldboy ~]# chown root test.txt #更改用户为root
[root@oldboy ~]# ls -l test.txt
-rw-r--r--. 1 root oldboy 184 71 01:51 test.txt
[root@oldboy ~]# chown .root test.txt
[root@oldboy ~]# ls -l test.txt
-rw-r--r--. 1 root root 184 71 01:51 test.txt
[root@oldboy ~]# chgrp oldboy test.txt
[root@oldboy ~]# ls -l test.txt
-rw-r--r--. 1 root oldboy 184 71 01:51 test.txt

-R参数 递归更改

练习:

[root@oldboy ~]# mkdir abc
[root@oldboy ~]# touch abc/{1..3}
[root@oldboy ~]# ls -ld ab
abc/    ab.txt  
[root@oldboy ~]# ls -ld abc
drwxr-xr-x. 2 root root 33 71 01:54 abc
[root@oldboy ~]# ls -l abc
总用量 0
-rw-r--r--. 1 root root 0 71 01:54 1
-rw-r--r--. 1 root root 0 71 01:54 2
-rw-r--r--. 1 root root 0 71 01:54 3
[root@oldboy ~]# chown -R oldboy abc/
[root@oldboy ~]# ls -l abc
总用量 0
-rw-r--r--. 1 oldboy root 0 71 01:54 1
-rw-r--r--. 1 oldboy root 0 71 01:54 2
-rw-r--r--. 1 oldboy root 0 71 01:54 3

相关推荐

  1. Day13-Linux系统用户管理知识2

    2024-02-23 19:24:02       27 阅读
  2. Day10-Linux系统打包和时间命令及案例

    2024-02-23 19:24:02       27 阅读
  3. Day27-Linux系统服务管理知识2

    2024-02-23 19:24:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 19:24:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 19:24:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 19:24:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 19:24:02       20 阅读

热门阅读

  1. j2ee规范在tomcat中部署的目录结构

    2024-02-23 19:24:02       26 阅读
  2. xrpc: 一个基于消息队列的的Go语言RPC框架

    2024-02-23 19:24:02       30 阅读
  3. 分班问题 、幼儿园分班(C语言)

    2024-02-23 19:24:02       30 阅读
  4. Odoo17 不再支持视图中的attrs和states

    2024-02-23 19:24:02       30 阅读
  5. ES6 面试题

    2024-02-23 19:24:02       25 阅读
  6. 设计模式-观察者模式(Observer Pattern)

    2024-02-23 19:24:02       27 阅读
  7. 8.3 OpenGL纹理和采样器:采样对象查询

    2024-02-23 19:24:02       26 阅读
  8. Unity常用设计模式之工厂模式

    2024-02-23 19:24:02       29 阅读