用户和用户组

知识点 用户与用户组管理

命令:useradd,userdel,groupadd,groupdel,usermod,passwd,mkpasswd,su,sudo


useradd命令

使用命令useradd加用户名可以新建用户,选项有:

  • -u 指定uid
  • -g 指定gid
  • -d 指定用户的home目录
  • -M 不创建home目录
  • -s 指定shell
  • -G 扩展组
[root@localhost ~]# useradd -u 2000 huawei
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
huawei:x:2000:2000::/home/huawei:/bin/bash
[root@localhost ~]# useradd cisco
[root@localhost ~]# cat /etc/passwd
huawei:x:2000:2000::/home/huawei:/bin/bash
cisco:x:2001:2001::/home/cisco:/bin/bash
[root@localhost /]# ls /home
cisco  huawei

通过cat /etc/passwd查看可以看到新创建的这个huawei用户的uid为2000,然后不指定uid的创建cisco用户,发现cisco的uid为2001.然后创建一个普通用户后,如果不指定home目录,会自动在home创建一个该用户的home目录。

userdel命令

userdel删除用户命令.

[root@localhost /]# userdel cisco
[root@localhost /]# cat /etc/passwd
huawei:x:2000:2000::/home/huawei:/bin/bash
[root@localhost /]# ls /home
cisco  huawei
[root@localhost /]# userdel -r huawei
[root@localhost /]# ls /home
cisco

使用命令userdel -r选项可以在删除用户的同时,将该用户的home目录也一起删掉。因为系统在userdel的时候由于怕误删默认是不会删除该用户的home目录的!

groupadd命令

[root@localhost /]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
...
chrony:x:996:
[root@localhost /]# useradd sangfor
[root@localhost /]# cat /etc/passwd
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sangfor:x:1000:1000::/home/sangfor:/bin/bash
[root@localhost /]# cat /etc/group
chrony:x:996:
sangfor:x:1000:
[root@localhost /]# groupadd -g 2000 max
[root@localhost /]# cat /etc/group
chrony:x:996:
sangfor:x:1000:
max:x:2000:
[root@localhost /]# useradd axon
[root@localhost /]# cat /etc/group
chrony:x:996:
sangfor:x:1000:
max:x:2000:
axon:x:1001:

新建用户在默认情况下会在/etc/group下创建一个该用户的组。在不指定gid的情况下默认是按顺序创建组的,就算中间创建了一个指定组后续的新建组的gid也会按照顺序来使用gid!

groupdel命令

删除组命令

[root@localhost /]# groupadd -g 1111 share
[root@localhost /]# tail /etc/group
postfix:x:89:
chrony:x:996:
share:x:1111:
[root@localhost /]# useradd -g 1111 huawei
[root@localhost /]# useradd -g 1111 cisco
[root@localhost /]# useradd -g 1111 h3c
[root@localhost /]# cat /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
huawei:x:1000:1111::/home/huawei:/bin/bash
cisco:x:1001:1111::/home/cisco:/bin/bash
h3c:x:1002:1111::/home/h3c:/bin/bash
[root@localhost /]# tail /etc/group
chrony:x:996:
share:x:1111:
[root@localhost /]# groupdel share  
groupdel: cannot remove the primary group of user 'huawei'   //提示不能删除该组,因为里面有用户huawei在
[root@localhost /]# userdel huawei
[root@localhost /]# tail -n5 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
cisco:x:1001:1111::/home/cisco:/bin/bash
h3c:x:1002:1111::/home/h3c:/bin/bash
[root@localhost /]# groupdel share
groupdel: cannot remove the primary group of user 'cisco'
[root@localhost /]# userdel csico
[root@localhost /]# userdel -r cisco
[root@localhost /]# groupdel share
[root@localhost /]# tail -n3 /etc/group
postdrop:x:90:
postfix:x:89:
chrony:x:996:  //删除完用户后,该组就能被正常删除了!

使用groupdel删除组的时候,组内必须没有用户,组内不是空的话那就会提示错误,删除不了!

usermod命令

修改用户的帐号信息。

  • u 修改用户的uid
  • g 修改用户的gid
  • h 修改用户的home目录
  • L 锁定用户
  • U 解锁用户

......

[root@localhost /]# alias ta='tail -n5'
[root@localhost /]# useradd panda
[root@localhost /]# ta /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
panda:x:1000:1000::/home/panda:/bin/bash
[root@localhost /]# groupadd -g 3333 dapan
[root@localhost /]# ta /etc/group
postdrop:x:90:
postfix:x:89:
chrony:x:996:
panda:x:1000:
dapan:x:3333:
[root@localhost /]# usermod -g 3333 panda
[root@localhost /]# ta /etc/group
postdrop:x:90:
postfix:x:89:
chrony:x:996:
panda:x:1000:
dapan:x:3333:
[root@localhost /]# ta /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
panda:x:1000:3333::/home/panda:/bin/bash   //用户panda的gid已经成功由1000改成3333!!

/etc/passwd , /etc/shadow ,

/etc/passwd ,/etc/shadow 是存放用户密码的目录。

[root@localhost ~]# tail -n1 /etc/passwd
panda:x:1000:3333::/home/panda:/bin/bash

/etc/passwd

1.用户名
2.x 早期存放密码的,现无意义占个坑
3.uid
4.gid
5.注释信息
6.home目录
7.用户shell
[root@localhost ~]# tail -n1 /etc/shadow
panda:$6$ovNQNGSe$du6JTnwQL5lIFjoiM296tSe6.cwvBqysdy/mvudxBXMiQ8DMwUZ9tg3Z5mgs0ws2/81TFlOiQFPFKAiz.JbTT/:17828:0:99999:7:::

/etc/shadow

1.用户名
2.用户密码  !!代表空密码 *代表锁定
3.天数 1970-01-01
4.要过xx天才能改密码 0代表不受限
5.密码xx天到期
6.密码到期时发出提醒
7.帐号失效期限,密码已经到期,xx天后帐号锁定
8.表示帐号周期,到xx日后就失效
9.reserve保留字段

由于这些文件的特殊性,系统默认在/etc下都有一个相对应的备份文件!

[root@localhost ~]# ls /etc/passwd
passwd   passwd-  
[root@localhost ~]# ls /etc/shadow
shadow   shadow-  

mkpasswd

mkpasswd命令可以随机生成一个相对高强度的密码。但是要先安装expect软件。

[root@localhost ~]# yum install -y expect
已加载插件:fastestmirror
base                                                                                          | 3.6 kB  00:00:00     
extras                                                                                        | 3.4 kB  00:00:00     
updates                                                                                       | 3.4 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                 | 166 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                             | 143 kB  00:00:00     
(3/4): updates/7/x86_64/primary_db                                                            | 1.2 MB  00:00:01     
(4/4): base/7/x86_64/primary_db                                                               | 5.9 MB  00:00:01     
Determining fastest mirrors
.....
完毕!
[root@localhost ~]# mkpasswd 
61;EusElc

su

su - run a command with substitute user and group ID

通过翻译可以理解为切换用户和组id。

#su - 用户名 可以切换到该用户。当当前为普通用户时,su 后面不跟用户名就是切到root用户,但是环境变量不变,需加-选项才能完全切换到root!!

但是如果让一个普通用户随随便便就可以切到root用户,那系统岂不是很不安全。所以下一个用到的命令就是sudo

[root@localhost /]# su - panda
[panda@localhost ~]$ whoami
panda

sudo

通过更改/etc/sudoers 可以让普通用户使用sudo命令。

[root@localhost ~]# visudo
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
YUWEN   ALL=(ALL)       ALL

image

YUWEN用户拥有root权限,验证下看看

[root@localhost ~]# su YUWEN
[YUWEN@localhost root]$ ls
ls: 无法打开目录.: 权限不够
[YUWEN@localhost root]$ sudo ls

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

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

[sudo] YUWEN 的密码:
anaconda-ks.cfg  test  xxx
[YUWEN@localhost root]$ ls
ls: 无法打开目录.: 权限不够
[YUWEN@localhost root]$ sudo ls
anaconda-ks.cfg  test  xxx

sudo命令很强大,visudo可以将多个用户都划进一个单位里,然后只需要对这个单位做处理集合。不用一个个操作。

禁止root远程登录

由于root用户的权限太大,也为了便于审计,我们都是用普通用户登录。然后root用户是禁止远程登录的!

[root@localhost ~]# vi /etc/ssh/sshd_config 



# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes  //将yes改成mo,就可以限制root远程登录了!
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

笔记

  • 在linux系统里面任何一个进程操作都需要一个用户支撑,如果都用root用户来启动,一旦进程被外人控制住,那相当于获取了root权限!所以提供对外服务的进程一般都要专门创建一个用户。

转载于:https://my.oschina.net/u/3997678/blog/3026184

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值