2018.8.2日,第五次直播笔记

笔记目录

  1. 用户配置文件和密码配置文件passwd,shadow
  2. 用户组管理
  3. 用户管理
  4. usermod命令
  5. 用户密码管理
  6. mkpasswd命令
  7. su命令
  8. sudo命令
  9. 禁止root用户远程登陆

 

一.用户配置文件和密码配置文件passwd,shadow

用户在系统中的存储方式

/etc/passwd

用户信息文件:

用户名称:密码:uid:gid:说明:家目录:默认shell 

15fbf8925395c03013198e4e25da98f7a96.jpg

 

# 该文件结构,每个用户一行,用':'进行分割成7段; # root(用户名):x(略):0:0:root(注释):/root(用户家目录):/bin/bash(用户的shell) # longlong02(用户名):x(略):1006:1006:(注释):/home/longlong02(用户家目录):/bin/bash

 

etc/shadow 认证信息文件:

  • 用户名称
  • 用户密码
  • 用户密码最后一次被更改的时间
  • 密码最短有效期
  • 密码最长有效期
  • 密码警告期限
  • 密码非活跃期间
  • 密码到期日
  • 保留期

b4b9c66fbcc1625ea6487e1b87e0949149d.jpg

 

# 该文件结构,每个用户一行,用':'进行分割成9段; # root(用户名):$6$dAG6/8RmAOv603Ln$eDc6vFHvGC4snH3YJPVJkIP3OC7qbl0ax069YxFTlRb9TRjb0VqSimxoK2Eva6NKkZkV1YWZsOrqgtInheaCD1(密码'加密过'):(上次更改密码距离'格林乔治时间'天数):0(多少天之后可再更改密码):99999(多少天之后要更改密码):7(密码到期前多少天提示):(密码到期后没修改密码多少天账号失效):(账号使用期限'格林乔治时间后多少天'):(略) # longlong02(用户名):!!(密码'没密码是!!'):17387(上次更改密码距离):0(多少天之后可再更改密码):99999(多少天之后要更改密码):7(密码到期前多少天提示):(密码到期后没修改密码多少天账号失效):(账号使用期限'格林乔治时间后多少天'):(略) # xxx:*(密码被锁定):17110:0:99999:7:::

二.用户组管理

用户组配置文件:

/etc/group

  • id:用户组成员

74c72492a9702aba4132372f87ba759fd29.jpg

组密码文件:/etc/gshadow

35fd6387412710ef22ef9900291d00b27ce.jpg

 

# cat /etc/gshadow root::: bin::: daemon::: sys::: adm::: ......(中段信息省略) ntp:!:: long:!:: longlong02:!:: slocate:!:: # 备份文件同名带-号的为备份文件() # ls /etc/gshadow gshadow    gshadow-

 

用户组的添加和删除

  1. ##groupadd建立用户组
  2. -g 888 ##建立用户组并指定用户组的id
  3. ##groupdel删除用户组 

# groupadd lrm  # 创建组

# tail -n1 /etc/group  # 查看 lrm:x:1009

# groupadd -g 2000 lrm2   # 自定义组ID创建组

# tail -n2 /etc/group  # 查看 lrm:x:1009: lrm2:x:2000:

三.用户管理

创建用户:useradd uuu

  •  创建用户不指定ID,会根据最后一名用户ID来递增
  •  创建用户不指定组,会创建同名组。组的ID和用户ID一致;但是,如果组ID同已有组冲突则会根据上一个自定义组ID来递增。

# useradd longlong03 # 创建用户

# tail -n 5 /etc/passwd               

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

longlong:x:1005:1008::/home/longlong:/sbin.nologin

longlong02:x:1006:1006::/home/longlong02:/bin/bash

longlong03:x:1007:1007::/home/longlong03:/bin/bash

# 自定义用户ID和指定用户组创建用户 # useradd(命令) -u(用户ID) 1008(参数) -g(组名) lrm2(参数) longlong04(新用户名) # useradd -u 1008 -g lrm2 longlong04 # 创建用户

#tail -n 5 /etc/passwd

ntp:x:38:38::/etc/ntp:/sbin/nologin

longlong:x:1005:1008::/home/longlong:/sbin.nologin

longlong02:x:1006:1006::/home/longlong02:/bin/bash

longlong03:x:1007:1007::/home/longlong03:/bin/bash

longlong04:x:1008:2000::/home/longlong04:/bin/bash

# 增加指定家目录 # useradd -u 1009 -g lrm2 -d(家目录) /home/lrm(路径) -s /sbin.bologin longlong05

# useradd -u 1009 -g lrm2 -d /home/lrm -s /sbin.bologin longlong05

# tail -n 5 /etc/passwd

longlong:x:1005:1008::/home/longlong:/sbin.nologin

longlong02:x:1006:1006::/home/longlong02:/bin/bash

longlong03:x:1007:1007::/home/longlong03:/bin/bash

longlong04:x:1008:2000::/home/longlong04:/bin/bash

longlong05:x:1009:2000::/home/lrm:/sbin.bologin

# 创建用户时不创建家目录 # useradd -M longlong06

# ls /home longlong02  longlong03  longlong04  lrm

 

删除用户:userdel uuu

# tail -n 3 /etc/passwd # 查看

longlong09:x:1022:2001::/home/longlong09:/bin/bash

longlong10:x:1023:1023::/home/longlong10:/bin/bash

longlong11:x:1024:1024::/home/longlong11:/bin/bash

# userdel longlong11 # 删除用户

# tail -n 3 /etc/passwd # 查看

longlong08:x:1021:1021::/home/longlong08:/bin/bash

longlong09:x:1022:2001::/home/longlong09:/bin/bash

longlong10:x:1023:1023::/home/longlong10:/bin/bash

# 删除# userdel -r longlong10    用户时连同用户家目录一起删除

四.usermod命令

更改用户的基本信息:

[root@lgs-01 ~]# usermod

用法:usermod [选项] 登录 选项:  

  • -c, --comment 注释            GECOS 字段的新值  
  • -d, --home HOME_DIR           用户的新主目录  
  • -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE  
  • -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态  
  • -g, --gid GROUP               强制使用 GROUP 为新主组  
  • -G, --groups GROUPS           新的附加组列表 GROUPS  
  • -a, --append GROUP            将用户追加至上边
  • -G 中提到的附加组中,           并不从其它组中删除此用户  
  • -h, --help                    显示此帮助信息并推出  
  • -l, --login LOGIN             新的登录名称  
  • -L, --lock                    锁定用户帐号  
  • -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)  
  • -o, --non-unique              允许使用重复的(非唯一的) UID  
  • -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码  
  • -R, --root CHROOT_DIR         chroot 到的目录  
  • -s, --shell SHELL             该用户帐号的新登录 shell  
  • -u, --uid UID                 用户帐号的新 UID  
  • -U, --unlock                  解锁用户帐号  
  • -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

修改用户的所属组:usermod -g 组名 用户名

[root@lgs-01 ~]# id abc uid=1001(abc) gid=1001(abc) 组=1001(abc)

[root@lgs-01 ~]# usermod -g lgs abc

[root@lgs-01 ~]# id abc uid=1001(abc) gid=1000(lgs) 组=1000(lgs)

增加用户的附加组:-G

[root@lgs-01 ~]# id abc uid=1001(abc) gid=1000(lgs) 组=1000(lgs)

[root@lgs-01 ~]# usermod -G abc abc

[root@lgs-01 ~]# id abc uid=1001(abc) gid=1000(lgs) 组=1000(lgs),1001(abc)

修改用户的uid:-u

[root@lgs-01 ~]# id lgs uid=1000(lgs) gid=1001(abc) 组=1001(abc),1000(lgs)

[root@lgs-01 ~]# usermod -G abc abc

[root@lgs-01 ~]# id lgs uid=1008(lgs) gid=1001(abc) 组=1001(abc),1000(lgs)

锁定用户:-L

[root@lgs-01 ~]# usermod -L abc

[root@lgs-01 ~]# su - lgs 上一次登录:二 4月  3 21:49:01 CST 2018pts/0 上

[lgs@lgs-01 ~]$ su - abc 密码: su: 鉴定故障

[root@lgs-01~]# tail -3 /etc/shadow

chrony:!!:17610::::::

lgs:!!:17619:0:99999:7::: abc:!$6$XoIK9B3k$jHl6YSoOPPZxgcRD2cNLaf2aBrSVetbEmfmHtWLLzQsdikx9L1kJua9aCur3EiOsGn1de7XZp8DI5rEiQ.BQD/:17624:0:99999:7:::

解锁用户:-U

[root@lgs-01 ~]# usermod -U abc

[root@lgs-01 ~]# tail -3 /etc/shadow

chrony:!!:17610::::::

lgs:!!:17619:0:99999:7::: abc:$6$XoIK9B3k$jHl6YSoOPPZxgcRD2cNLaf2aBrSVetbEmfmHtWLLzQsdikx9L1kJua9aCur3EiOsGn1de7XZp8DI5rEiQ.BQD/:17624:0:99999:7:::

[root@lgs-01 ~]# su - lgs 上一次登录:二 4月  3 21:50:02 CST 2018pts/0 上

[lgs@lgs-01 ~]$ su - abc 密码: 上一次登录:二 4月  3 21:49:52 CST 2018pts/0 上 最后一次失败的登录:二 4月  3 21:50:24 CST 2018pts/0 上 最有一次成功登录后有 2 次失败的登录尝试。

五.用户密码管理

passwd命令:修改用户密码

[root@lgs-01 ~]# passwd abc 更改用户 abc 的密码 。

新的 密码:

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

锁定用户密码:-l

[root@lgs-01 ~]# passwd -l abc 锁定用户 abc 的密码 。 passwd: 操作成功

[root@lgs-01 ~]# su - lgs 上一次登录:二 4月  3 21:52:48 CST 2018pts/0 上

[lgs@lgs-01 ~]$ su - abc 密码: su: 鉴定故障

[lgs@lgs-01 ~]$ 登出

[root@lgs-01 ~]# tail -3 /etc/shadow

chrony:!!:17610::::::

lgs:!!:17619:0:99999:7::: abc:!!$6$BxRGlSVL$w7ZJ9yVpcf2ysyV4O5kHvF6Gwof.j5C37z/IYmwZ5y30VQmX5fATjTaPL5mITRKbydhCr192o/3mnhUnpd2c1.:17624:0:99999:7:::

解锁用户密码:-u

[root@lgs-01 ~]# passwd -u abc 解锁用户 abc 的密码。 passwd: 操作成功

[root@lgs-01 ~]# su - lgs 上一次登录:二 4月  3 21:58:51 CST 2018pts/0 上

[lgs@lgs-01 ~]$ su - abc 密码: 上一次登录:二 4月  3 21:57:37 CST 2018pts/0 上 最后一次失败的登录:二 4月  3 21:59:38 CST 2018pts/0 上 最有一次成功登录后有 3 次失败的登录尝试。

[root@lgs-01 ~]# tail -3 /etc/shadow

chrony:!!:17610::::::

lgs:!!:17619:0:99999:7::: abc:$6$BxRGlSVL$w7ZJ9yVpcf2ysyV4O5kHvF6Gwof.j5C37z/IYmwZ5y30VQmX5fATjTaPL5mITRKbydhCr192o/3mnhUnpd2c1.:17624:0:99999:7:::

修改用户密码:--stdin 只输入一次新密码。 shell脚本中常用

[root@lgs-01 ~]# passwd --stdin abc 更改用户 abc 的密码 。 12345678 passwd:所有的身份验证令牌已经成功更新。

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

[root@lgs-01 ~]# su - abc 上一次登录:二 4月  3 22:05:50 CST 2018pts/0 上

[abc@lgs-01 ~]$ su - lgs 密码: 上一次登录:二 4月  3 22:05:38 CST 2018pts/0 上

另外一种修改密码方法:

[root@lgs-01 ~]# echo -e "1122334455\n1122334455" 1122334455 1122334455

[root@lgs-01 ~]# echo -e "1122334455\n1122334455" |passwd lgs 更改用户 lgs 的密码 。

新的 密码:无效的密码: 密码未通过字典检查 - 它基于字典单词

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

六.mkpasswd命令

# yum intstall -y expect  # 安装工具

# mkpasswd

\vw1SG3wf         # 默认长度9

# mkpasswd -l 12

ooWpxgm4c)1Q        # 指定长度12

# mkpasswd -l 12 -s 4

ht>3^!d<PB9c       # 指定长度12,指定特殊符号4 # 简单说明

# mkpasswd -l(长度) 12 -s(字符) 4 -C(大写) 1 -c(小写) 1 -d(数字) 1

七.su命令

[root@jimmylinux-002 ~]# su - jimmy    su命令是切换用户使用的,在这里加一个“-”表示彻底切换到jimmy用户下包括自己的配置和环境变量,就在自己的家目录。

6e7d6701fa2c76d930b7f77340caef97c3a.jpg

[root@jimmylinux-002 ~]# su - -c "touch /tmp/jimmy.111" jimmy    以指定用户的身份执行一条命令

[root@jimmylinux-002 ~]# ls -lt /tmp/ |head    使用此命令可以查看是否有执行成功

aca6a7a606c7e6863466f9d91e0a2917629.jpg

在普通用户下在切换到其他用户,按理说应该在user5家目录中,因为没有相应的配置文件,所以显示不正常。

cefb43aca8ac380be68d8d2ce943e3ac0b8.jpg

既然缺少user5家目录,那么就重新创建一个user5的家目录出来。

[root@jimmylinux-002 ~]# mkdir /home/user5

[root@jimmylinux-002 ~]# chown user5:user5 /home/user5/

53d06367da52379ece0c9bc58c49cb9168c.jpg

拷贝.bash文件到user5的家目录,这样就可以显示正常了。

ed73cc3484162328239cebb6fa9a1ab9382.jpg

普通用户显示为$符号,root用户显示为#符号。

八.sudo命令

让普通用户临时拥有指定用户去执行一条命令获得权限

[root@jimmylinux-002 ~]# visudo    直接添加如下内容,让jimmy用户拥有root权限,同时可以执行ls、mv、cat命令。 

2946d6257659d26950da7567191578b42b8.jpg

使用方法同vi命令,按i进入编辑内容,ESC取消编辑,然后:wq保存修改并退出编辑状态。

提示刚才的操作有问题,第93行语法错误,按e键回车进入重新修改,可以输入:set nu显示行数信息。6ee89d2a0d0c76e2d6d4692b9bdd7e61198.jpg

c1f4142699854c3a21250b7dc545c8b17ac.jpg

/usr/bin/ls, /usr/bin/mv, /usr/bin/cat    需要修改成绝对路径才能够正常使用

修改完成后切换成jimmy用户,在运行ls /root/就会提示无法打开目录,权限不够。

 sudo /usr/bin/ls /root/    检验sudo的作用,可以将普通用户临时授予root权限,可以操作指定的一些命令。

675fa8563616276c5c1e59ac7e7352f79ac.jpg

同样可以给user5授予相同的权限,但是切换用户时还需要输入密码比较麻烦,添加这个参数就可以免密登录。

user5   ALL=(ALL)      NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

[root@jimmylinux-002 ~]# su - suer5    切换user5

[user5@jimmylinux-002 ~]$ ls /root/    直接输入ls /root/ 提示权限不够

ls: 无法打开目录/root/: 权限不够

[user5@jimmylinux-002 ~]$ sudo /usr/bin/ls /root/    sudo命令即可顺利执行

11 1.txt 33.txt anaconda-ks.cfg a.txt

7581b8c22e10963b496dd39d480654e47b6.jpg

在visudo里面也可以设置命令别名

Cmnd_Alias JIMMY_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

3937670def8f4d266188ef892eca948d3ff.jpg

c5ac61be722068cb19930fec88707cc7b99.jpg

2f2981bcdde96b90464188c12252a8d0628.jpg

在visudo里面还可以设置用户组,比如把多个用户放到wheel一个组里面,相同组里面的用户名都可以执行授予的命令。

ec0676f37643f72d2d3cbcb7af1589937a6.jpg

 

限制root远程登录

如果密码过于简单,容易被别人猜到,过于复杂自己也可能会忘记,为了安全起见,防止别人拿到密码通过root远程登录。

创建一个user alias,同时设置一个规则免密执行su命令登录root

40118f414e09ffc4df5592fb085a2c2e2ac.jpg

acd07b8223a7107dd91569a4bc925a6419f.jpg

a5ba282587a73a7f05d850a764ddb216489.jpg

如果要限制root远程登录,输入vi /etc/ssh/sshd_config 修改成PermitRootLogin no 保存退出,重启systemctl restart sshd.service 服务。

[root@jimmylinux-002 ~]# vi /etc/ssh/sshd_config 

[root@jimmylinux-002 ~]# systemctl restart sshd.service

576eea8b35fb058eedac25e7b43198473ed.jpg

这个时候再重新连接,已经无法登录root用户,包括输入root密码也一样。(说明已经限制root远程登录)

5b3c4af32f3dd34388989d55cffcac9182b.jpg

打开putty终端以普通用户登录,然后执行sudo su - root可以直接免密登录到root用户。

792d2e5a98fde68fb0de7299519db51f1e7.jpg

a67587f4027c5fec08a4fc6e0fe13d9413c.jpg

重新输入vi /etc/ssh/sshd_config 还原配置文件并重启服务即可恢复root远程登录

357000c234f27ce8e08e928fe6892051298.jpg

九.禁止root用户远程登陆

如果密码过于简单,容易被别人猜到,过于复杂自己也可能会忘记,为了安全起见,防止别人拿到密码通过root远程登录。

创建一个user alias,同时设置一个规则免密执行su命令登录root

4b34f78afb9bfbc84b9cbab827a1c7cd96b.jpg

a84b685f17e3e744fcbd89108f53be204ec.jpg

5d981da2a665864ac3d4c8af34611eecdbb.jpg

如果要限制root远程登陆,输入vi /etc/ssh/sshd_config 修改成PermitRootLogin no 保存退出,重启systemctl restart sshd.service 服务。

[root@jimmylinux-002 ~]# vi /etc/ssh/sshd_config 

[root@jimmylinux-002 ~]# systemctl restart sshd.service

24dbb40267cf1165a43321c800845372afe.jpg

这个时候再重新连接,已经无法登录root用户,包括输入root密码也一样。(说明已经限制root远程登录)

460fae6b9e79e59c7a48efa8aee79e26eee.jpg

打开putty终端以普通用户登录,然后执行sudo su - root可以直接免密登录到root用户。

67cc34277c17fb3b14613b12b2b026eceae.jpg

86f582ae813dab3d0cec12c6e0b07a0fc40.jpg

重新输入vi /etc/ssh/sshd_config 还原配置文件并重启服务即可恢复root远程登录

818ebbc72d883f89d4b503bd99f26a7556c.jpg

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3912766/blog/1921990

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值