🥇 作者简介: 热衷于知识探索和分享的技术博主。
💂 csdn主页::【奇妙之二进制】
✍️ 微信公众号:【Linux 世界】🎉精彩专栏:
🎓 【面向工作git基础教程】
🧡 【C++11新特性深入剖析】
📚【shell脚本编程基础与实战】
🌎【Linux网络编程面试演练】
✍️ 【C++编译工具cmake入门到精通】
…💂关于作者: 曾就职于国内知名安防上市公司,现就职于国内知名AMR机器人公司,担任高级系统软件工程师。2020年至今保持CSDN博客专家,CSDN C/C++领域优质创作者头衔。全网5万+粉丝。十载寒冰,难凉热血;多年过去,历经变迁,物是人非。 然而,对于技术的探索和追求从未停歇。 💪坚持创作,热衷分享,初心未改,继往开来!
在Linux系统中,用户是分角色的,角色不同,对应权限不同。用户角色通过UID和GID识别。
从系统角度分为:超级用户,普通用户,虚拟用户。
超级用户:默认是root用户,其UID和GID都是0。root用户在每台Unix和Linux系统中都是唯一且真是存在的,通过它可以登陆系统,操作系统中任何文件执行系统中任何命令,拥有最高管理权限。
普通用户:系统中大多数用户都是普通用户,实际中也一般使用普通用户操作,需要root权限时用sudo命令提升权限。uid从1000开始。
虚拟用户:与真实的普通用户区分开来,这类用户最大特点是安装系统后默认就会存在,且默认情况大多数不能登陆系统,其在/etc/passwd文件中,最后字段为/sbin/nologin。但是,他们是系统正常运行不可缺少的,他们的主要是方便系统管理,满足相应的系统进程对文件属主的要求。如,默认的bin,adm,nobody,mail用户等。uid从1-999。nobody是65534。
服务的运行需要用户角色,可以不用登陆,例如当我们需要运行MySQL数据库时,可以创建一个虚拟用户,作为运行MySQL服务的角色。
id命令可以查看当前用户uid和gid:
victory@ubuntu:~$ id
uid=1000(victory) gid=1000(victory) groups=1000(victory),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare)
groups命令也可以查看当前用户属于哪些组:
$ groups
victory adm cdrom sudo dip plugdev lpadmin lxd sambashare
按照从文件和文件夹的角度:
所有者、所属组和其他人。
接下来我们解释一下所属组,首先讲解一下用户组的概念。用户组就是一组用户的集合,类似于大学里的各种社团。那为什么要把用户放入一个用户组中呢?
当然是为了方便管理。大家想想,如果我有 100 位用户,而这 100 位用户对同一个文件的权限是一致的,那我是一位用户一位用户地分配权限方便,还是把 100 位用户加入一个用户组中,然后给这个用户组分配权限方便呢?不言而喻,一定是给一个用户组分配权限更加方便。
综上所述,给一个文件区分所有者、所属组和其他人,就是为了分配权限方便。就像笔者买了一台电脑,那我当然是这台电脑的所有者,可以把我的读者加入一个用户组,其他不认识的路人当然就是其他人了。分配完了用户身份,就可以分配权限了,所有者当然对这台电脑拥有所有的权限,而位于所属组中的这些学生可以借用我的电脑,而其他人则完全不能碰我的电脑。
对于文件和文件夹而言,基本的权限有可读、可写、可执行。
