3.1-3.9用户及用户组

目录

 

3.1 用户配置文件和密码配置文件

3.2 用户组管理

选项

实例

实例

3.8 sudo命令

做命令别名


3.1 用户配置文件和密码配置文件

cat /etc/passwd    用户密码文件、核心文件,每个增加一个用户就会增加一行 

[root@linux-01 test]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
gem:x:1001:1001::/home/gem:/bin/bash

 

    每个用户一行  用 分开八段

第一段:用户名 

    二段: 密码

    三段: uid (把普通用户那一行中第三段数字改为0,就会拥有root权限)

    四段:gid

    五段: 空  (用户注释信息)

    六段:用户家目录位置

   七段: 用户的shell   /bin/bash  /sbin/nologin  

                root:x:0:0:root:/root:/bin/bash
                bin:x:1:1:bin:/bin:/sbin/nologin

/etc/shadow  专门放密码 与/etc/passwd  一一对应 

root:$6$HANSsrYq13mzlpuL$dPtrJa2.JJULagyn.KGy04l1WFPgwhN2aGu6jUyxZ5Zu52RJBmZw0y0m3BVJraHDtNsI7NzD49siPiVh.u3er1::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::
tss:!!:18040::::::
test:!!:18047:0:99999:7:::
gem:!!:18047:0:99999:7:::

 

每个字段的含义是:

·   sp_namp - 指向以 null 结束的用户名的指针                             
#第一段 ,用户名对应/etc/passwd

·   sp_pwdp - 指向 null 结束的密码的指针                                
#第二段 : 用户密码,该账号的真正密码

·   sp_lstchg - 最近更改密码的日期(日期计算方法是从1970年1月1日开始的天数)  
#第三段  :   天数,上次更改密码的日期,

·   sp_min - days before which password may not be changed            
#第四段 : 表示多少天才能更改密码

·   sp_max - days after which password must be changed                
#第五段 :  表示多少天后密码到期

·   sp_warn - days before password is to expire that user is warned of pending password expiration   
#第六段: 表示多少天后即将过期

·   sp_inact - days after password expires that account is considered inactive and disabled   
#第七段: 表示密码已经到期 ,多少天后帐号失效,即锁定

·   sp_expire - days since Jan 1, 1970 when account will be disabled  
#帐号在这个日期前可以使用

·   sp_flag - reserved for future use 
#保留字段

3.2 用户组管理

   group    创建用户时也会创建跟用户名一样的组  

[root@linux-01 ~]# cat  /etc/group   组的密码
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:

[root@linux-01 ~]# cat  /etc/gsshadow    也是组的密码

 

 

groupadd 创建组命令

gid   一般是1000 以上   1000内以被内部占用

新建一个用户组grp1,并设置其组id为1003
 
[root@linux-01 ~]# groupadd -g 1003 grp1   #创建组并指定gid 
[root@linux-01 ~]# tail  /etc/group
ssh_keys:x:997:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
tss:x:59:
slocate:x:21:
test:x:1000:
group:x:1001:
grp1:x:1003:

groupdel   删除组  1

 例:新建一个用户组group1,并设置其组id为505

        [root@linux-01 ~]groupadd -g 505  group1 

3.3 用户管理

useradd  用户创建命令

-u<uid>:指定用户id

useradd(选项)(参数)

选项

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-s<shell>:指定用户登入后所使用的shell;


-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;

、home/user5 没有创建并不不代表没有
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;

-u<uid>:指定用户id。

id aming  查看 用户 uid、gid 、组 

组可以包含 gid  还有扩展组

例:

不让用户test1登录

     usermod -s /sbin/login test1
b.  usermod -s /bin/false test1
d.  usermod test1 -s /bin/false

useradd -u 1006 -g grp2 -d /home/aming11 -s /sbin/nologin user4

 

新建用户使用哪个选项可以不创建用户家目录?

useradd -M  user5

删除用户如何连带它的家目录一并删除?

userdel -r username 

 

3.4 usermod命令

       usermod    更改用户属性

usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。

 

usermod(选项)(参数)
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s<shell>:修改用户登入后所使用的shell;
-u<uid>:修改用户ID;
-U:解除密码锁定。

 

实例

将test 添加扩展组到group中:

usermod -G group test

[root@linux-01 ~]# id test
uid=1000(test) gid=1003(grp1) 组=1003(grp1)

[root@linux-01 ~]# usermod  -G group,grp1 test
[root@linux-01 ~]# id test 
uid=1000(test) gid=1003(grp1) 组=1003(grp1),1001(group)

 

修改newuser的用户名为newuser1:

usermod -l newuser1 newuser

锁定账号newuser1:

[root@linux-01 ~]# passwd -l user1  #passwd命令锁定用户
锁定用户 user1 的密码 。
passwd: 操作成功

[root@linux-01 ~]# passwd -u user1   #usermod命令解锁用户
解锁用户 user1 的密码。
passwd: 操作成功

[root@linux-01 ~]# usermod -L user1  #usermod命令锁定用户
[root@linux-01 ~]# usermod -U user1  #usermod命令解锁用户

user1:!$6$gRl2XV.c$bHoIOI.uo5OO7zdtL2dbvMXmM62rTCqz1VG03btCzt3H0:18052:0:99999:7:::

# 第二段处带有“!”  代表用户已锁定

lp:*:17632:0:99999:7:::
sync:*:17632:0:99999:7:::

# 第二段处带有“*”  代表用户的密码已锁定

解除对newuser1的锁定:

usermod -U newuser1

3.5 用户密码管理

  echo命令_Linux echo 命令用法详解:输出指定的字符串或者变量 http://man.linuxde.net/echo 

使用echo 命令更改用户密码 

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

 

实例

用echo命令打印带有色彩的文字:

文字色:

echo -e "\e[1;31mThis is red text\e[0m"
This is red text
  • \e[1;31m 将颜色设置为红色
  • \e[0m 将颜色重新置回

颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

背景色

echo -e "\e[1;42mGreed Background\e[0m"
Greed Background

颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

文字闪动:

echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"

红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐

 

3.6 mkpasswd命令

centos7用户的密码是通过sha-512 方式加密的

这个命令是随机生成 密码的一个工具, 如果没有这个命令,请安装相应的包。

yum   install -y  expect 

mkpasswd 的使用

常用的选项, -l 指定 长度

-d 指定 数字的个数

-c 指定 小写字符个数 -C 指定大写字符个数

-s 指定特殊字符个数

usage: mkpasswd [args] [user]

 where arguments are:

-l #      (length of password, default = 7)

                   指定密码的长度,默认是7位数

-d #      (min # of digits, default = 2)

                   指定密码中数字最少位数,默认是2位

-c #      (min # of lowercase chars, default = 2)

                   指定密码中小写字母最少位数,默认是2位

-C #      (min # of uppercase chars, default = 2)

                   指定密码中大写字母最少位数,默认是2位

-s #      (min # of special chars, default = 1)

                   指定密码中特殊字符最少位数,默认是1位

-v        (verbose, show passwd interaction)

                   这个参数在实验的时候报错,具体不知道。

常用的三个选项

[root@linux-01 ~]# mkpasswd  #默认 9位密码长度
\qepZU99m
[root@linux-01 ~]# mkpasswd -l 12 -s 3  # -s 3 设置特殊符号数量3个 
rgo,g#9ZUv[6
[root@linux-01 ~]# mkpasswd -l 12 -s 0  # -s 0 设置特殊符号数量0个

比如举个例子, 长度 15 位,数字至少 3位, 小写字母至少4 位, 大写字母至少4 位, 特殊字符 至少 2位

[root@localhost ~]# mkpasswd -l 15 -d 3 -c 4 -C 4 -s 2

M50=xniV_Y4gBht

CZ7@lBYa)1gept6

7RaQ7c"gwvX<s6C

jAYW8dGw>pe^42j

 

 

3.7 su命令

     su命令  切换用户

[root@linux-01 ~]# whoami
root
[root@linux-01 ~]# id
uid=0(root) gid=0(root) 组=0(root)

[root@linux-01 ~]# su - user1

[user1@linux-01 ~]$ whoami
user1
[user1@linux-01 ~]$ id
uid=1002(user1) gid=1002(user1) 组=1002(user1)

[user1@linux-01 ~]$ su - root    #管理员切换到用户无须输入密码,用户切换到管理员或者其他用户要输入密码
密码:
上一次登录:一 6月 10 22:27:31 CST 2019从 192.168.96.1pts/0 上
[root@linux-01 ~]# whoami
root

-c, --command <命令>            使用 -c 向 shell 传递一条命令

我们可以使用su临时以其他用户的身份去执行命令,下面做法不对的是?

b. su - username -c "touch /tmp/1.txt"
c. su -c "touch /tmp/1.txt" - username
d. su -c "touch /tmp/1.txt" username 

[root@linux-01 ~]# su - -c "touch /tmp/user1.111" user1   # 以user1 的身份创建一个文件
[root@linux-01 ~]# ls -lt /tmp/ |head
总用量 0
-rw-rw-r-- 1 user1 user1  0 6月  10 23:03 user1.111

 

 

3.8 sudo命令

sudo  普通用户临时执行命令以指定用户的身份执行 一般都普通用户授权root 用户的身份

使用 visudo 命令 打开sudo的配置文件(不建议用vi 打开)

找到

显示行号命令    :set nu 

 

   #93行添加加入规则
 91 ## Allow root to run any commands anywhere 
 92 root      ALL=(ALL)       ALL
 93 user1     ALL=(ALL)       /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
[user1@linux-01 ~]$ sudo命令的使用^c
[user1@linux-01 ~]$ sudo /usr/bin/ls /root 

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

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

[sudo] user1 的密码:
anaconda-ks.cfg

 

切换时不用输入密码

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
user1    ALL=(ALL)       /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
user2    ALL=(ALL)      NOPASSWD: /usr/bin/ls, /usr/bin/cat

 

结果:
[root@linux-01 ~]# su - user2
上一次登录:二 6月 11 22:03:13 CST 2019pts/0 上
[user2@linux-01 ~]$ sudo /usr/bin/ls /root/
anaconda-ks.cfg

使用sudo做命令别名

 

做命令别名
 26 ## Networking     
 27 # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
 28 Cmnd_Alias USTEST_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat  # 添加新的命令别名


 ## Allow root to run any commands anywhere
 92 root    ALL=(ALL)       ALL
 93 user1    ALL=(ALL)       /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
 94 user2    ALL=(ALL)      NOPASSWD: /usr/bin/ls, /usr/bin/cat
 95 user3    ALL=(ALL)      USTEST_CMD    
结果:

[root@linux-01 ~]# su - user3
[user3@linux-01 ~]$ sudo ls /root/
[sudo] user3 的密码:
anaconda-ks.cfg

例:配置sudo时,下面相关的说法哪些是不对的?

a. 可以针对组来配置sudo权限

b. 在sudo配置文件中,我们可以定义host、user以及命令的别名

c. 如果不想输入密码,只需在命令前面加“NOPASSWD:”即可

d. %wheel 表示wheel组,这个组并不是系统的用户组

3.9 限制root远程登录

 

使

用 visudo  编辑添加别名和规则

     19 ## rather than USERALIAS
     20 # User_Alias ADMINS = jsmith, mikem
     21 User_Alias TEUSS = user1,user2        #添加用户组别名

     91 ## Allow root to run any commands anywhere
     92 root    ALL=(ALL)       ALL
     93 TEUSS   ALL=(ALL)       NOPASSWD: /usr/bin/su    #添加规则
      
[root@linux-02 ~]# vi /etc/ssh/sshd_config    # 编辑ssh服务文件
     #使用 ‘/’ 搜索 Root 
     37 #LoginGraceTime 2m
     38 #PermitRootLogin yes   修改>>38 PermitRootLogin no       


[root@linux-02 ~]# systemctl restart sshd.service  # 重启ssh服务

 

 

 

 测试1:xhell连接

测试2linux互联:
[root@linux-01 ~]# ssh root@192.168.96.136
root@192.168.96.136's password: 
Permission denied, please try again.     #尝试登陆root用户许可被拒绝, 
root@192.168.96.136's password: 

[root@linux-01 ~]# ssh user1@192.168.96.136   
user1@192.168.96.136's password: 
Last login: Wed Jun 12 11:18:06 2019 from 192.168.96.135  # 登陆用户别名组内的用户 成功
[user1@linux-02 ~]$ ls /root 
ls: 无法打开目录/root: 权限不够
[user1@linux-02 ~]$ sudo su -
上一次登录:三 6月 12 11:02:13 EDT 2019pts/0 上
最后一次失败的登录:三 6月 12 11:18:49 EDT 2019从 192.168.96.135ssh:notty 上
最有一次成功登录后有 3 次失败的登录尝试。        # 切换到root用户 成功
[root@linux-02 ~]# w
 11:20:27 up  1:17,  2 users,  load average: 0.01, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.96.1     10:29   10:43   0.08s  0.03s -bash
user1    pts/1    192.168.96.135   11:19    3.00s  0.10s  0.03s sshd: user1 [priv]
[root@linux-02 ~]# logout


[root@linux-01 ~]# ssh user3@192.168.96.136
user3@192.168.96.136's password: 
Last login: Wed Jun 12 10:59:22 2019
[user3@linux-02 ~]$ whoami
user3
[user3@linux-02 ~]$ sudo su -
[sudo] user3 的密码:
user3 不在 sudoers 文件中。此事将被报告。   # 非别名组内的用户不能切换到 root用户 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值