EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

Linux新手入门第三天——基本指令入门和理解(一)

在使用Vmware简易安装的时候,用户名将会是你terminal所显示的名字,而全名将会是GUI欢迎界面当你输入密码的时候的名字。

  

举例:

Sample

所以GUI欢迎界面:

Sample

Terminal:

Sample

 

但是如果你是用稍后安装的话,你可能需要填入3项:姓名、计算机名、用户名。

 

姓名=全名

计算机名=hostname

用户名=用户名

 

简易安装实际是默认你的计算机名(即hostname)是ubuntu:

Sample

实际上你并不需要输入hostname,因为你已经看到了。

eksumic@ubuntu:~$  =  用户名@计算机名 :~$

 

那么terminal既然已经说出了第一个command,我们直接来看一下如何获得root权限。

 

提示:

输入man sudo_root可查看说明。

Sample

man是manual的缩写,

任何你想知道的指令,都可以通过在前面+man,来打开帮助手册。

 

sudo 加在一般指令之前,用于请求使用Root权限运行这个指令。 (注:以下称指令和命令都指的是<command>)

 

一般情况下,哪个用户名安装了这个系统,才有权限使用sudo。

 

Linux有一个最基本的特点就是多用户,如果你想赋予其它用户权限使用sudu指令的话,就必须把该用户分配到sudo组。

 

按照manual的说法是在shell中输入

sudo adduser username sudo

即可完成。

 

但这么一来,就提到了组的概念,组其实更像一个TAG,

我们通常设定一群具有相同权限的用户为同一组。

 

1 我们可以建立很多个组,但没有必要

2 目前你知道的组,默认存在的组,是sudo

 

这个时候你可能会猜测,sudo指令是不是通过自举得到的功能?

 

于是尝试输入cat /etc/group:

Sample

结果得到了一堆看不懂的东西,这让我更加觉得sudo应该是自举出来的东西。

倒数第二行的结果,可以解读:

eksumic:x:1000:

凭直接的认知,冒号应该是分隔符作用,

但必须结尾加冒号吗?好像不是。

 

找到了sudo指令:

Sample

那么虽然看不懂,但是可以确定的是——sudo指的是sudo组,eksumic是用户名,x几乎是所有组都具有的东西,数字我觉得类似进程

ID或者端口号一样的东西?

就像这样?在cmd输入netstat -ano显示的:

Sample

查了一下,并不是。

/etc/group文件存储格式(组名称:组密码:组ID:组成员)

 

字段解释:

组名称:每个组都有一个组名称。

组密码:可以给组提供一个密码,一般很少这么做。

组ID:像用户ID一样,linux内核使用ID来识别。

组成员:定义组成员用户名列表,用半角逗号隔开。

 

但是你会发现<组名称>不就是<command>的名称嘛?

这难道不是自举?

Sample

可以清楚地看到root的组ID是0,0意味着最高权限。

从0-7可以看得出,这或许是最初自举出来指令。

 

猜测:Linux可能所有的指令都是以组的形式进行赋予的。

这和Windows的注册服务可能是一样的东西。

 

 

可以看到,有些是这样的:

backup:x:34:

组成员空着,没有写。

这代表什么呢?是代表all?还是代表null?

 

查了一下资料:

 

 

一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

 

 

复习一遍:

group_name:passwd:GID:user_list

 

在/etc/group 中的每条记录分四个字段:

第一字段:用户组名称;

第二字段:x是密码段,表示没有设置密码;

第三字段:GID

第四字段:如果字段为空表示用户组为GID的用户名;

 

什么是用户组为GID的用户名,理解不能?

这个是个缩写?

就比如第四项和第三项一致,所以不写?

 

因为网上都是照抄的博客,我大概猜测了一下,第四个字段为空,应该是想表达组成员还有,只不过是默认的不显示。

 

……

 

 

查到了答案:

举个例子,lamp 组的组信息为 "lamp:x:502:",可以看到,第四个字段没有写入 lamp 用户,因为 lamp 组是 lamp 用户的初始组。如果要查询这些用户的初始组,则需要先到 /etc/passwd 文件中查看 GID(第四个字段),然后到 /etc/group 文件中比对组名。

 

cat /etc/group :

Sample

cat /etc/passwd :

Sample

7 个字段,每个字段所表示的含义如下:

用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell

 

 

【目录】Linux新手入门——从理论到实战

 

参考文档:

[1] ubuntu安装时姓名、计算机名、用户名的含义

[2] 每天一个linux命令(31): /etc/group文件详解

[3] Linux /etc/group文件解析(超详细)

This article was last edited at 2023-04-21 22:41:42

* *