Linux用户管理

“Linux是一个可以实现多用户登录的操作系统,比如用户A和用户B都可以同时登录同一台主机,共享一些主机的资源,也可以分别拥有自己的用户空间,用于存放自己的用户的文件。但是,实际上,它们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,由于Linux的用户管理权限机制,不同用户不可以轻易地查看、修改彼此的文件。”

创建用户

在Linux系统中,root账户拥有整个系统至高无上的权利,比如 新建/添加 用户。
(例如:在安卓操作系统中(基于Linux内核)获得root权限之后就意味着已经获得了手机的最高权限,这时候就可以对手机中的任何文件(包括系统文件)执行所有的增、删、改、查的操作。)

创建用户需要root权限,这时需要用到sudo这个命令。使用sudo的两个前提:
1、需要知道当前登录用户的密码;
2、当前用户必须在sudo用户组中。
(PS:需要注意Linux环境下输入的密码是不会显示的,即不换显示****等)

su,su-与sudo的比较:

su<user>         //可以切换用户名(user),执行的时候需要输入目标用户的密码;
sudo<cmd>     //可以以特权级别运行cmd命令,需要满足上面使用sudo的两个前提
su - <user>     //命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。

示例如下:
创建pure用户:
当前用户(假设为当前环境设置为aaa,有root权限)创建一个叫pure的用户:

$ sudo adduser pure

给pure用户设置密码,并再次确认密码后,回车键按要求填写之后信息。(可选择默认),用户密码可以通过代码(sudo passwd aaa)设置。
(PS:需要注意Linux环境下输入的密码是不会显示的,即不换显示****等)
这个命令不但可以添加用户到系统,同时也会默认给新用户创建home目录。

登录pure用户:
命令行输入以下代码:

su -l pure

输入设置好的pure密码,即可以登录新建用户。
退出当前用户可以使用exit命令或者使用快捷键Ctrl+D。

用户组

“在Linux里面每个用户都有一个归属,即用户组,用户组简单理解就是一组用户的集合,里面可以共享一些资源和权限,同时拥有私有资源。一个用户是可以属于多个用户组的。”

Linux查找用户属于的用户组的方法:

方法一:使用groups命令

$ groups aaa

冒号前面表示该用户,后面表示该用户属于的用户组。每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。在默认情况下,在sudo用户组里可以使用sudo命令获得root权限。
方法二:查看/etc/group文件

$ cat /etc/group | sort

cat命令用于读取指定文件的内容并打印到终端输出。
sort表示将读取的文本进行一个字典排序再输出。
如果找不到可以使用命令过滤掉一些不想看到的结果:

$ cat /etc/group | grep -E "aaa"

将其它用户加入sudo用户组:

默认情况下新创建的用户不具有root权限的,也不在sudo用户组,可以让新用户加入sudo用户组从而获取root权限:

使用usermod命令可以为用户添加用户组,同样使用该命令你必须拥有root权限,可以直接使用root用户为其他用户添加用户组,或者其他已经在sudo用户组的用户使用sudo命令获取权限来执行该命令。

$ su aaa
$ groups pure
$ sudo usermod -G sudo pure
$ groups pure

之后切换回pure用户,现在就可以使用sudo获取root权限了。

删除用户

$ sudo deluser pure --remove-home