在了解完linux基本的目录结构之后,我们来了解用户及文件权限管理这个知识点。
1、基本介绍:
Linux 是一个可以实现多用户登录的操作系统,比如“归海”和“枫哥”都可以同时登录同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。
2、查看登录用户信息:who am i
其实有两个命令和who am i一样分别是 who -m ,who mom likes,这个看个人喜好
注意:在某些环境中 who am i
和 who mom likes
命令不会输出任何内容,这是因为当前使用的 SHELL 不是登录时的 SHELL,没有用户与 who 的 stdin 相关联,因此不会输出任何内容。例如我在本地的 Ubuntu 系统上输入这个命令就不会有提示。
who
命令其它常用参数:
3、添加用户:useradd 用户名
在 Linux 系统里, root
账户拥有整个系统至高无上的权限,比如新建和添加用户。
1)root简介:
root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到 root 权限,这个操作等同于在 Windows 下就是将新建的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中(基于 Linux 内核)获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
2)如何登录root:su 或者 su root
su <user>
可以切换到用户 user,执行时需要输入目标用户的密码,sudo <cmd>
可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - <user>
命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的。
需要注意 Linux 环境下输入密码是不会显示的和mysql命令行一样的
3)添加用户: useradd cat
由于我之前添加过cat了因此我在这里添加一个fish用户。
我们怎么知道我们是否添加成功了呢?
-
第一看命令行有没有出现什么,在linux没有“动静”就是操作成功了。
-
第二可以用su命令切换到你新建的用户上面。
-
第三也可以在home目录下查看你的用户列表。
-
第四cat /etc/passwd 查看创建了哪些用户
你要退出fish用户可以直接exit。
4)给用户添加密码:passwd fish
其实密码个人无所谓的,提示可以不用管它。
5)添加用户到组(组这个概念后面聊)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
4、删除用户: userdel 用户名
1)删除用户fish,但是要保留家目录:userdel fish
2)删除用户及用户主目录:userdel -r tom
5、查询用户信息:id 用户名
这里我们查看cat用户信息。
注意:当用户不存在的时候,返回无此用户。我们拿上面删的fish来举例。
6、切换用户: su 用户名
这个我前面用很多了,简单实用。
在操作Liunx中,如果当前用户的权限不够,可以通过su -指令,切换到高权限用户,比如root。
细节补充:
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之就需要。
2)当需要返回到原来用户时,使用exit,logout指令。
7、sudo 设置普通用户具有 root权限:
1)添加 用户,并对其设置密码(这个我上面有)
useradd cat
passwd cat
2)修改配置文件
vi /etc/sudores
修改 /etc/sudoers 文件,找到下面一行(91 行),在 root 下面添加一行.
把你的用户全部 all就行了。
8、 修改用户:usermod -g 用户组 用户
1)基本语法 usermod -g 用户组 用户名
2)选项说明 表7-18 选项 功能 -g 修改用户的初始登录组,给定的组必须存在。默认组 id 是 1。
3)例子:将用户加入到用户组 [root@hadoop101 opt]# usermod -g