在使用Vmware简易安装的时候,用户名将会是你terminal所显示的名字,而全名将会是GUI欢迎界面当你输入密码的时候的名字。
举例:
所以GUI欢迎界面:
Terminal:
但是如果你是用稍后安装的话,你可能需要填入3项:姓名、计算机名、用户名。
姓名=全名
计算机名=hostname
用户名=用户名
简易安装实际是默认你的计算机名(即hostname)是ubuntu:
实际上你并不需要输入hostname,因为你已经看到了。
eksumic@ubuntu:~$ = 用户名@计算机名 :~$
那么terminal既然已经说出了第一个command,我们直接来看一下如何获得root权限。
提示:
输入man sudo_root可查看说明。
man是manual的缩写,
任何你想知道的指令,都可以通过在前面+man,来打开帮助手册。
sudo 加在一般指令之前,用于请求使用Root权限运行这个指令。 (注:以下称指令和命令都指的是<command>)
一般情况下,哪个用户名安装了这个系统,才有权限使用sudo。
Linux有一个最基本的特点就是多用户,如果你想赋予其它用户权限使用sudu指令的话,就必须把该用户分配到sudo组。
按照manual的说法是在shell中输入
sudo adduser username sudo
即可完成。
但这么一来,就提到了组的概念,组其实更像一个TAG,
我们通常设定一群具有相同权限的用户为同一组。
1 我们可以建立很多个组,但没有必要
2 目前你知道的组,默认存在的组,是sudo
这个时候你可能会猜测,sudo指令是不是通过自举得到的功能?
于是尝试输入cat /etc/group:
结果得到了一堆看不懂的东西,这让我更加觉得sudo应该是自举出来的东西。
倒数第二行的结果,可以解读:
eksumic:x:1000:
凭直接的认知,冒号应该是分隔符作用,
但必须结尾加冒号吗?好像不是。
找到了sudo指令:
那么虽然看不懂,但是可以确定的是——sudo指的是sudo组,eksumic是用户名,x几乎是所有组都具有的东西,数字我觉得类似进程
ID或者端口号一样的东西?
就像这样?在cmd输入netstat -ano显示的:
查了一下,并不是。
/etc/group文件存储格式(组名称:组密码:组ID:组成员)
字段解释:
组名称:每个组都有一个组名称。
组密码:可以给组提供一个密码,一般很少这么做。
组ID:像用户ID一样,linux内核使用ID来识别。
组成员:定义组成员用户名列表,用半角逗号隔开。
但是你会发现<组名称>不就是<command>的名称嘛?
这难道不是自举?
可以清楚地看到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 :
cat /etc/passwd :
7 个字段,每个字段所表示的含义如下:
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
参考文档: