用户及文件权限管理
一、linux用户管理
通过第一节课程的学习,你应该已经知道,linux是一个可以实现多用户登陆的操作系统,比如李雷和韩梅梅都可以同时登陆同一台主机,他们共享一些 主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,那么是不 是说李雷就可以轻易查看到韩梅梅的自拍照,韩梅梅也可以看到李雷写给她表白情书呢。当然不是这样,linux才不会这么不安全,这正是它的用户管理和权限 机制要完成的工作。
下面我们就来学习一下linux下的账户管理的基础知识
哲学问题
作为一个linux用户,一个人类,我们的终极目标便是思考和解决那三大哲学问题:我是谁?我从哪里来?我要到哪里去?。其实吧,这几个问题我早就明白了,就在我学了linux之后,你如果还没想明白,就继续往下学吧。
关于我是谁?
看好了哈,请打开终端,输入命令:
$ who am i
如果你今天心情不好,因为妈妈把鸡腿给了吃,然后你就有点郁闷,想知道妈妈到底喜欢谁,那么你也可以问linux
$ who mom likes
输入的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用whoami即可),第二列的pts/0中pts表示伪终端,所谓伪是相对于/dev/tty设备而言的,还记得上一节讲终端时的那七个使用[Ctrl]+[Alt]+[F1]~[F7]进行切换的/dev/tty设备么,这是“真终端”,伪终端就是当你在图形用户界面使用/dev/tty7时每打开一个终端就会产生一个伪终端,pts/0后面那个数字就表示打开的伪终端序号,你可以尝试再打开一个终端,然后在里面输入who am i,看第二列是不是就变成pts/1了,第三列则表示当前伪终端的启动时间。
who命令其它常用参数
参数 | 说明 |
-a | 打印能打印的全部 |
-d | 打印死掉的进程 |
-m | 同am i,mom likes |
-q | 打印当前登录用户数及用户名 |
-u | 打印当前登录用户登录信息 |
-r | 打印运行等级 |
关于我从哪里来?
简单来说就是“上帝”一个人太寂寞于是它创造了人类。好吧,勉强认可这个答案,那么谁又是上帝呢?在linux的世界里,上帝必然就是root账户了,它拥有整个系统至高无上的权利,比如分分钟创造个“人”(新建/添加用户)出来。
linux怎么读取文件root权限,系统权限的一种,与SYSTEM权限可以理解成一个概念,但高于Administrator权限,root是Linux和unix系 统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到root权限,用 windows的方法理解也就是将自己的非法帐户添加到Administrators用户组。更比如安卓操作系统中(基于linux内核)获得root权 限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
下面我就来扮演一次上帝,立马“造个人”出来。不过在“造人”之前要先明白一个问题,我们一般登录系统时都是以普通账户的身份登录的,也就是说我就是个普通人,那么我怎么添加用户呢,一般人又没有那能力。嘿嘿,都说了是扮上帝的嘛,这里就要用到sudo这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在sudo用户组。shiyanlou用户的密码就是“shiyanlou”嘛,它同时也属于sudo用户组(稍后会介绍如何查看和添加用户组),那就开始动手吧
新建一个叫lilei的用户:
$ sudo adduser lilei
按照提示输入shiyanlou密码(linux下密码输入通常都是不可见的),然后是给lilei用户设置密码,后面的选项的一些内容你可以选择直接回车使用默认值
这个命令不但可以添加用户到系统,同时也会默认为新用户创建home目录
$ ls /home
现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,使用如下命令切换登录用户
$ su -l lilei
退出当前用户跟退出终端一样可以使用exit命令或者使用快捷键Ctrl+d
关于我要到哪儿去?
人生来就是“居”动物,一个人不能总是独孤一人,生活中我们总需要互相依靠,需要寻自己的归属。那我个人认为“家”必然才是我们最好也是最终的归属吧。可能你会说你的归属
是天堂,那也没问题。我们这里就来讨论下归属问题,那么你到底是会归属哪儿呢。
在linux里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式 差不多,你的兄弟妹(不同的用户)输入同一个家(用户组),你们可以共同拥有这个家(共享资源),你爸妈对待你们都一样(共享权限),你偶尔写写日记, 其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。
在linux里面如何知道自己属于哪些用户组呢
方法一:使用groups命令
$ groups shiyanlou
其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到shiyanlou用户同时属于shiyanlou和sudo用户组,每次新建用 户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组(差不多就相当于家长的意思,或者说是老总),这里你要特别注意那
个sudo用户组,如 果你没在这个sudo用户组那么你是不能使用sudo命令的,即你是无法临时获得管理员权限,后面会讲如何将已有用户加入到sudo用户组
方法二:查看/etc/group文件
$ cat /etc/group | sort
这里cat命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用.| sort表示将读取的文本进行一个字典排序再输出,然后你将看到如下一堆输出,你可以在最下面看到shiyanlou的用户组信息
没到,没关系,你可以使用命令过滤掉一些你不想看到的结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论