Linux学习-用户和用户组

Linux用户和用户组管理

Linux系统中有三种用户:系统用户、普通用户、根用户root,普通用户要设置登录密码才能登录到系统中。
Linux系统只能使用数字来记录用户。在实现上,Linux系统采用一个32位的整数来记录用户,这意味着在一套Linux系统中最多可以记录40亿个不同的用户。这个用来区分不同用户的数字被称为user id,简称UID。
通常普通用户的UID大于1000,系统用户是系统运行时的一些特殊用户,这类用户往往不能登录到系统中,但是一些进程需要使用这类用户运行,比如系统中的httpd进程就是使用用户apache运行的;根用户又叫root,它的UID为0,也是系统中的超级用户,拥有至高无上的权限

查看系统中所有用户:

cat /etc/passwd

#部分结果显示:
root:x:0:0:root:/root:/bin/bash  #根用户root
bin:x:1:1:bin:/bin:/sbin/nologin #这就是系统用户,系统用户往往没有登录权限 nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
oracle:x:1000:1000::/home/oracle:/bin/bash
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
geoclue:x:997:992:User for geoclue:/var/lib/geoclue:/sbin/nologin
UnicodeC:x:1001:1002::/home/UnicodeC:/bin/bash #普通用户

用户和用户组的关系:
创建用户的时候,会同时创建一个同名的用户组,当然,也可以单独创建用户组,把一些用户归到创建的用户组中进行管理。用户可以添加到不同的用户组,当然也可以退出用户组!

1、新建用户

#useradd 创建新用户时,会同时创建一个同名的用户组,用户uid和用户组gid一般是一致的
#需要注意的是:这样创建的用户,是没有设置密码的,那么就无法登录到系统!需要修改密码:passwd UnicodeC
useradd User

#单独新建用户组
groupadd UnicodeC

#将用户添加到某个组下
usermod UnicodeC-G User

2、删除用户

#userdel 删除时,用户家目录不会删除
userdel User
#可以使用   userdel -r User 连带用户家目录一起删除
当切换到用户下,然后退回到root下,往往使用 userdel -r User提示有进程正在占用

#单独删除用户组
groupdel UnicodeC

3、不同类别的用户标志

#root用户:#
[root@lv2xaeport ~]# 
#普通用户:$
[UnicodeC@lv2xaeport ~]$ 
#系统用户:bin

4、切换用户

#1、root用户切换为普通用户:使用-,则会加载所有配置
su - UnicodeC
#2、root用户切换为普通用户:不使用-,则会使用当前root用户的shell
su UnicodeC
#3、退出当前登录用户
ctrl + d
#3、从普通用户切换到root用户
su - root

su和su - 的区别:
这两个命令都是切换用户命令,但是最本质的区别就是:su 命令只是切换了用户身份,但是shell环境仍然是原用户的。而su -则是将用户身份和shell环境都进行切换!使用su命令,查看当前工作目录发现还是原工作目录,而su -则是改变为当前用户的家目录
这个区别有时候会导致一些错误,所以一般推荐使用su -命令
su和su -的区别退出登录,返回上一次的登录:ctrl + d

5、修改密码

#修改root密码:
[root@lv2xaeport ~]# passwd root
#修改普通用户密码:
[root@lv2xaeport ~]# passwd UnicodeC

6、忘记root密码

忘记root密码,进入不了系统,可以 系统的紧急求援模式 ,使用修改配置文件修改root密码

#1.开机之后在内核上敲击e,然后编辑选项

#2.在linux16这一行,将红框内的内容改成rw rd.break

#3、根据提示,使用组合键CTRL+X进入密码修改

#4、进入到系统的紧急求援模式

#5、依次输入
    # chroot /sysroot //进入系统的根目录
    # passwd   //重置密码
    # touch /.autorelabel //创建文件,让系统重新启动时能够识别修改
    # exit  退出chroot模式
    # reboot //重启系统
#6、重启即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IbXloepW-1603272633948)(Linux.assets/1597717488790.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-34KVfOqj-1603272633951)(Linux.assets/1597717501616.png)]

7、sudo

sudo是Linux下常用的允许普通用户使用root权限的工具, sudo是临时赋予用户一些权限(不是升级权限)。这样解决了普通用户需要root用户的一些权限,但又没必要知道root的密码,保证了安全性和灵活性。使用sudo需要输入的密码是此用户的密码,不是root的密码,只是为了证明是此用户在操作.
特点说明:

  • sudo可以限制用户只在某台主机上运行某些命令
  • 提供日志,详细记录了用户干了什么
  • 配置文件是/etc/sudoers文件,可以通过配置文件进行管理

sudo使用参数:
-l 显示出自己(执行 sudo 的使用者)的权限
-k 将会强迫使用者在下一次执行 sudo 时填写密码(不论有没有超过 N 分钟)

sudo命令的执行流程是: 当前用户转换到root, 然后以root身份执行命令, 执行完成后, 直接退回到当前用户.
配置文件: 可以直接使用visudo命令进行配置, 它会帮你校验文件配置是否正确,如果不正确,在保存退出时就会提示你哪段配置出错的。
1、配置让UnicodeC用户 能够执行root权限的所有命令
在root ALL=(ALL) ALL下添加:UnicodeC ALL=(ALL) ALL
2、让普通用户UnicodeC 只能在某几台服务器上,执行root能执行的某些命令

首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种
Host_Alias:主机的列表
Cmnd_Alias:允许执行的命令的列表
User_Alias:就是具有sudo权限的用户的列表
Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表

1) 配置Host_Alias:就是主机的列表
Host_Alias   HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上!表示不能执行此命令.
命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径!
Cmnd_Alias   COMMAND_FLAG = command1, command2, command3 ,!command4
3) 配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置权限
配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

#实例:
# Host alias specification
Host_Alias      EPG = 192.168.1.1, 192.168.1.2
# User alias specifica\tion
# Cmnd alias specification
Cmnd_Alias      SQUID = /opt/vtbin/squid_refresh, !/sbin/service, /bin/rm

Cmnd_Alias      ADMPW = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd, !/usr/bin/passwd root
# Defaults specification
# User privilege specification
root    ALL=(ALL) ALL
support EPG=(ALL) NOPASSWD: SQUID
support EPG=(ALL) NOPASSWD: ADMPW

8、查看系统的所有用户和用户组

在Linux中,对配置文件不清楚的时候,可以使用:man 5 配置文件名

#1、查看系统的所有用户
cat /etc/passwd
#备注:首先系统中会存在很多系统用户,在centOS7中是ID小于1000的,大于1000的则是人为新建的普通用户。

#注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 。
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
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
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
ntp:x:38:38::/etc/ntp:/sbin/nologin
UnicodeC:x:1001:1001::/home/UnicodeC:/bin/bash


#解释:注册名一般就是用户名、口令x代表密码保存在/etc/shadow、用户标识号UID和组标识号GID是使用数字唯一代表用户和用户组
#以root用户为例。root是用户注册名,X表示密码保存在/etc/shadow,用户ID为0,所在用户组ID为0,用户名是root,home目录为/root,解释程序/bin/bash。   
#nologin表示此用户无登录权限:可以看出UnicodeC和mysql用户都是有登录权限的
#2、查看系统的所有用户组
cat /etc/group

#组名:密码保存位置:组ID:组成员。
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
cgred:x:995:
docker:x:994:
mysql:x:27:
ntp:x:38:
UnicodeC:x:1001:

#解释:以root用户组为例,即组名是root,密码保存位置为/etc/shadow,root组的GID为0,组下面的用户是root用户。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值