1、超级
用户概念与重要性在所有Linux
系统中,系统都是通过UID来区分用户
权限级别的,而UID为0的用户被系统约定为是具有超级权限。超级用户具有在系统约定的最高权限范围内 *** 作,所以说超级用户可以完成系统管理的所有工作。我们可以通过/etc/passwd 来查得UID为0的用户是root,而且只有root对应的UID为0,从这一点来看,root用户在系统中是无可替代的至高地位和无限制权限。root用户在系统中就是超级用户。 在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法 *** 作的,但对root除外。root用户的特权性还表现在root可以超越任何用户和用户组来对文件或目录进行读取、修改或删除(在系统正常的许可范围内);对可执行程序的执行、终止;对硬件设备的添加、创建和移除等;也可以对文件和目录进行属主和权限进行修改,以适合系统管理的需要(因为root是系统中权限最高的特权用户)。 与超级用户相对的就是普通用户和虚拟(也被称为伪装用户),普通和伪装用户都是受限用户,但为了完成特定的任务,普通用户和伪装用户也是必须的。Linux是一个多用户、多任务的 *** 作系统,多用户主要体现在用户的角色的多样性,不同的用户所分配的权限也不同,这也是Linux系统比Windows系统更为安全的本质所在。 由于超级权限在系统管理中的不可缺少的重要作用,为了完成系统管理任务,我们必须用到超级权限;在一般情况下,为了系统安全,对于一般常规级别的应用,不需要root用户来 *** 作完成,root用户只是被用来管理和维护系统之用;比如系统日志的查看、清理,用户的添加和删除。 在不涉及系统管理的工作的环境下,普通用户足可以完成,比如编写一个文件,听听音乐;用gimp 处理一个图片等...... 基于普通应用程序的调用,大多普通用户就可以完成。 当我们以普通权限的用户登录系统时,有些系统配置及系统管理必须通过超级权限用户完成,比如对系统日志的管理,添加和删除用户。而如何才能不直接以root登录,却能从普通用户切换到root用户下才能进行 *** 作系统管理需要的工作,这就涉及到超级权限管理的问题。 获取超级权限的过程,就是切换普通用户身份到超级用户身份的过程;这个过程主要是通过su和sudo来解决。 2、超级用户在系统管理中的作用 (1)对任何文件、目录或进程进行 *** 作 但这种 *** 作是在系统最高许可范围内的 *** 作,有些 *** 作就是具有超级权限的root也无法完成。比如/proc 目录,/proc 是用来反应系统运行的实时状态信息的,因此即便是root也无法对其进行写 *** 作。 (2)对于涉及系统全局的系统管理 硬件管理、文件系统管理、用户管理以及涉及到的系统全局配置等等......如果执行某个命令或工具时,提示无权限,大多是需要超级权限来完成,比如用adduser来添加用户,这个只能用通过超级权限的用户来完成。 3、超级用户的授权 (1)su命令 su命令就是切换用户的工具。比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su 切换是一种比较好的办法。通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码;而普通用户切换到其它任何用户都需要密码验证。 su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等。 (2)sudo命令 su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作,但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协,我们绝对不能保证这10个用户都能按正常 *** 作流程来管理系统,其中任何一人对系统 *** 作的重大失误,都可能导致系统崩溃或数据损失,所以su 工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用,这时最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。 通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ,另外sudo 是需要授权许可的,所以也被称为授权许可的su。 sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。 (3)编写/etc/sudoers文件 sudo的配置文件是/etc/sudoers ,我们可以用他的专用编辑工具visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息。配置好后,可以用切换到授权的用户下,通过sudo -l 来查看哪些命令是可以执行或禁止的。 /etc/sudoers 文件中每行算一个规则,前面带有#号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用\号来续行,这样看来一个规则也可以拥有多个行。 /etc/sudoers 的规则可分为两类;一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的。 具体使用可以查看man sudoers。linux系统有7个运行级别,
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
字符界面下查看当前用户级别方法如下
Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。
debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。debian的runlevel级别定义如下:
0 – Halt,关机模式
1 – Single,单用户模式
2 - Full multi-user with display manager (GUI)
3 - Full multi-user with display manager (GUI)
4 - Full multi-user with display manager (GUI)
5 - Full multi-user with display manager (GUI)
6 – Reboot,重启
可以发现2~5级是没有任何区别的。他们为多用户模式,这和一般的linux不一样。而redhat的runlevel级别定义如下:
0:关机。不能将系统缺省运行级别设置为0,否则无法启动。
1:单用户模式,只允许root用户对系统进行维护。
2:多用户模式,但不能使用NFS(相当于Windows下的网上邻居)
3:字符界面的多用户模式。
4:未定义。
5:图形界面的多用户模式。
6:重启。不能将系统缺省运行级别设置为0,否则会一直重启。
这里补充一下,多数的linux都是用一种叫System V的机制来启动运行级别,而ubuntu使用upstart代替init启动系统进程。所以没有那个inittab文件来改默认运行级别。ubuntu 的默认运行级别文件是/etc/init/rc-sysinit.conf。
成功的方法:
第一种方法:(内核级别的)
Sudo vi /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
为:GRUB_CMDLINE_LINUX_DEFAULT=” text”
然后运行下sudo update-grub2就可了
第二种方法:(基于upstart的”正统”方法)
ubuntu的upstart的体系下,/etc/init.d里面基本上都是连接到/lib/init/upstart-job
评论列表(0条)