Linux用户账号问答

2016-03-13 10:24
网络安全和信息化 2016年5期
关键词:普通用户命令账号

引言:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

大家知道,root账号是Linux系统中的超级管理员用户帐户,该账号拥有一切操作权力,用户能通过它对所有对象进行操作。请问在特殊情况下,如何为普通用户账号,例如“aaa”账号,授予root权限?

首先在Linux系统的“#”状态下,依次执行“adduser aaa ”、“passwd aaa”命令,新创建好普通用户账号“aaa”,同时为该账号设置好登录密码。接着执行“vi /etc/sudoers ”命令,从中找到关键字“root ALL=(ALL) ALL”,在 这一行下面手工添加上“aaa ALL=(ALL) ALL”,修改成功后,就能用“aaa”账号进行登录操作,之后使用“su”命令,就能获得root账号权限。

从“/etc/group”文件中可以查看到Linux系统的所有用户组信息,该文件中的每条记录包含四个字段,请问每个字段各代表什么含义?

第一个字段表示用户组名称,第二字段表示用户组密码,第三字段表示GID,第四字段表示用户列表,每个用户之间用逗号分割开来,该字段可以为空,要是字段为空就说明用户组为GID的用户名。

请问Linux系统下用户和组的管理原理是什么?

Linux系统下每个文件和程序都属于一个特定用户,每个用户都有一个唯一的身份ID,而且每个用户至少属于一个用户组,这个组中包含若干系统用户。同样地,每个用户组也有一个唯一的组ID,用户可以分属于多个不同的用户组。将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。对特定程序或文件的访问,是以它的用户ID和组ID为基础的。一个执行中的程序继承了调用它的用户权利和访问权限,每位用户权限可以被赋予普通权限或超级权限,普通权限只能访问其拥有的或者有权限执行的文件或程序,超级权限可以访问系统所有文件或程序。

请问对Linux系统中的用户和组账号进行管理有什么作用?

用户和组账号是Linux系统中进行资源使用、文件管理、文件操作的主体,它们以不同角色存在于操作系统中。在常见的安全威胁中,恶意用户往往会悄悄在系统中创建一些隐藏用户账号,来窃取超级用户权限,从而实现对Linux系统资源或数据的非法攻击、破坏。所以,加强对Linux系统中的用户和组账号进行管理,可以保护操作系统运行安全。

按照缺省设置,正确安装好Ubuntu9.10 Linux系统系统后,笔者发现系统默认没有为root账号设置访问密码。为了保护系统安全,请问怎样为root账号设置访问密码?

大家知道,普通权限用户是不能利用su命令获得root账号权限的,同样也不能以root方式登录系统图形界面或控制台。当在进行特殊权限任务时,可以尝试使用sudo命令,输入合适的登录密码后才能操作。在为root账号设置访问密码时,只要执行“sudo passwd root”命令,之后依照提示输入“xxx”,这里的“xxx”为具体密码内容。日后,当需要以root账号权限登录系统进行特殊操作时,只要利用su命令,再输入root账号的访问密码就可以了,而不需要每次都使用“sudo”命令了。

当然,为安全起见,即使我们已经为root账号设置了访问密码,建议大家在平时也不要使用root账号登录系统,而应该使用普通用户账号登录系统。

在Linux系统中,根据拥有的权限和担任的角色不同,用户账号可以分为哪几种类型?

用户账号可以分为三种类型:一是超级用户账号,该账号是操作系统中默认的系统管理员账号,对本主机拥有至高无上的完全权限,权限与Windows系统中的Administrator用户账号类似。二是程序用户账号,该账号是在安装Linux系统及部分应用程序时创建的,它一般只用于维持系统或某个程序正常运行,不允许被登录系统。三是普通用户账号,该账号要由超级用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中有完全权限。

某用户计算机中安装的是Ubuntu 10.10 Linux系统,尝试执行“su root”命令,无法进入root权限登录状态,不知道是什么原因?

之所以会出现这种现象,主要是Ubuntu 10.10 Linux系统默认状态下,已经禁用了root账号。如果不开启该账号的话,我们根本就没法登录进入root权限状态,自然执行“sudo root”命令,再输入密码无法成功登录了。

当然,建议大家尽量不要以root账号直接登录Linux系统,因为它会给系统安全运行带来很大的隐患,同时能访问在普通用户账号登录状态下通常不会访问的系统和子系统。为了安全起见,最好是通过经常使用的普通帐户登录系统,之后使用su命令,这样比利用root账号登录更合理。

请问Linux系统下的用户和组对应关系主要有哪些?

主要有一对一、一对多、多对一和多对多等对应关系,其中一对一对应关系表示一个用户可以存在一个组中,也可以是组中的唯一成员;一对多对应关系表示一个用户可以存在多个用户组中,那么这个用户具有多个组的共同权限;多对一对应关系表示多个用户可以存在一个组中,这些用户具有和组相同的权限;多对多对应关系表示多个用户可以存在多个组中,实际上就是上面三个对应关系的扩展。

大家知道,在Linux系统环境下,新创建好一个用户时,系统也会同时创建一个与该用户名称相同的新组,而这个新创建的用户就是该组的成员。请问如何让新创建用户归属于另外一个已经存在的用户组?

很简单!只要在“#”命令提示符状态下,通过“useradd-g”命令就能将指定用户名称归属到特定组账号下。例如,要将“aaa”用户归属到“usergroup1”用户组中时,可以使用“useradd-g usergroup1 aaa”命令,就能成功达到目的。

有的用户在Linux系统中完成特权管理操作任务后,经常会忘记将root登录账号注销掉,这容易给其他非法用户带来可趁之机。为了保证系统安全,请问有没有办法让Linux系统自动注销root登录账号?

答案是肯定的!只要编辑“/etc/profile”文件中的“TMOUT”参数,为root账号设置合适的自动注销时间即可,该参数以秒钟为单位。比方说,如果想将自动注销时间调整为1分钟时,可以执行“vi /etc/profile”命令,在“HISTFILESIZE=”下面添加“TMOUT=60”这行内容,这样当root账号在1分钟内没有对Linux系统执行任何操作时,root账号就会被系统强行注销掉。值得注意的是,这项设置操作必须先注销掉root账号,再重新使用该账号登录,才能正式生效。

现在,笔者想在Linux系统中创建一个考试测试用的用户账号“aaa01”,希望该账号归属于“users”用户组,并于2015-04-30失效,请问如何创建该账号呢?

只要执行“useradd -g users -e 2015-04-30 aa a01”字符串命令即可,其中“g”参数用来指定用户的基本组名,“e”参数用来指定用户的账户失效时间,时间格式可以使用YYYY-MM-DD的形式。

请问Linux系统中的用户标识号有什么作用?

用户标识号其实就是用户的UID,每位用户都有自己的唯一UID,它的取值范围一般是0~65535,其中0代表超级用户的标识号,1~99这段范围的数值由系统保留,作为管理账号,普通用户的标识号从100开始。而在Linux系统下,普通用户默认的UID数值从500开始。UID是linux下确认用户权限的标志,用户的角色和权限都是通过UID来实现的,所以若干个用户共用一个UID是十分危险的,会造成系统权限和管理的混乱,比方说将普通用户的UID设置为0后,该用户将会获得root用户操作权限,这对系统来说是相当危险的。

善 于 使 用“usermod”命令自带的各种功能参数,可以灵活地对Linux系统中已经存在的用户属性进行按需修改,请问该命令常用的功能参数有哪些,它们各表示什么含义?

常用的功能参数有u、d、e、g、G、M、L、U、l、s等,其中u参数表示修改用户的UID号,d参数表示修改用户的宿主目录位置,e参数表示修改用户的账户失效时间,g参数表示修改用户的基本组名,G参数表示修改用户的附加组名,M参数表示不为用户建立并初始化宿主目录,s参数表示指定用户的登录Shell,l参数表示更改用户账号的登录名称,L参数表示锁定用户账户,U参数表示解锁用户账户。

“/etc/passwd”文件和“/etc/shadow”文件中都保存有用户的密码信息,请问这两个文件有什么区别吗?

这两个文件都属于用户配置文件,记录了Linux系统中每个用户的一些基本属性,不过“/etc/passwd”文件对所有用户可读,保存在该文件口令字段中的内容是一个特殊的字符,例如“x”或者“*”。而“/etc/shadow”文件只有root用户拥有读权限,从而保证了用户密码的安全性,该文件保存的是加密后的用户口令字串,要是密码字段是“*”、“!”、“x”等字符,那么对应的用户无法成功登录操作系统。

最近在登录Ubuntu 10.10 Linux系统时,笔者发现即使使用正确的用户名和密码,也不能登录系统,请问这是什么原因?

很可能是系统环境变量设置错误,造成无法登录系统,所以我们需要修改系统环境变量。当然,这项操作需要使用sudo命令获得系统超级用户权限,不过由于系统环境变量损坏,所以在使用时要加上完整路径:输入如下格式:/usr/bin/sudo /usr/bin/vi/etc/profile,然后输入超级用户密码即可打开环境变量文件,连续按两次d键,删除错误的行(上一次使用时添加的行),之后按下shift功能键输入冒号,同时在冒号后直接输入“wq”命令并回车,重新启动计算机系统即可。

当在Linux系统中成功创建好用户账号后,“user add”命令会在对应用户的宿主目录下面,自动生成一些初始配置文件,请问它们各有什么作用?

系统会自动生成“.bash_logout”、“.bash_profile”、“.bashrc”等配置文件,这些文件都处于隐藏显示状态。其 中,“.bashrc_profile”文件中的命令将在该用户每次登陆时被执行,“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序时被执行,“.bash_logout”文件中的命令将在用户每次退出登陆时被执行。

请问Linux系统的伪用户账号有什么作用?

伪用户与系统和程序服务相关,任何Linux系统默认 都 有 bin、daemon、shu tdown、halt等伪用户,伪用户不需要或无法登录系统,该账号可以没有宿主目录。

“/etc/passwd”文件每一行内容中,都包括用冒号分隔开的七个配置字段,请问从左到右每个配置字段的含义分别代表什么?

第一字段表示用户账号的名称;第二字段表示经过加密的用户密码字串,或者密码占位符“x”;第三字段表示用户账号的UID号;第四字段表示所属基本组账号的GID号;第五字段表示用户全名,可填写与用户相关的说明信息;第六字段表示宿主目录,即该用户登录后所在的默认工作目录;第七字段表示登录Shell等信息,用户完成登录后使用的Shell。

“/etc/shadow”文件每一行内容中,默认包含九个配置字段,请问每个字段的含义各表示什么?

第一字段表示用户账号名称;第二字段表示使用MD5加密的密码字串信息,当为“*”或“!!”时代表该用户无法登录到系统,要是这个字段内容为空,那么该用户无需密码即可登录系统;第三字段表示上次修改密码的时间;第四字段表示密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码,默认值为0,表示不进行限制;第五字段表示密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码,默认值为99999,表示不进行限制;第六字段表示提前多少天警告用户口令将过期,默认值为7;第七字段表示在密码过期之后多少天内禁用此用户;第八字段表示账号失效时间,此字段指定了用户作废的天数,默认值为空,表示账号永久可用;第九字段是保留字段,目前没有特定用途。

当有人尝试修改自己账号的登录密码时,要是其他用户正对“/etc/shadow”文件执行编辑操作,这可能会引起修改的用户账号密码失效。请问如何避免这种现象发生?

用户可以尝试使用vipw命令来编辑“/etc/shadow”文件,这样可以自动对该文件加锁,编辑结束自动解锁,从而确保数据的一致性。

我们知道,在一些低版本Linux系统中,用户账号的登录密码往往保存在“/etc/passwd”文件中,恶意用户利用专业查找方法,很容易发现并破解重要用户的登录密码。请问如何才能避免恶意用户发现并破解重要用户的登录密码呢?

很简单!我们可以通过“/usr/sbin/grpconv”、“/u sr/sbin/pwconv”命令,来创建“/etc/gshadow”文件或“/etc/shadow”文件,将所有加密的密码都转移存储到“/etc/shadow”文件中,日后只有root权限的用户才能访问它,普通权限的用户是访问不到它,那么就能成功避免恶意用户发现并破解重要用户的登录密码了。

最近,小张在学习Linux系统的操作,遇到一个小问题,就是在超级用户状态下创建了一个普通用户账号,但是该账号没有权限,只能登录,查看一部分信息,就是无法进行增、删、修等操作,还有组也添加不上权限,请问为什么会出现这种现象,该怎样给组或用户添加权限?

Linux系统中所有的权限都是针对文件的,目录也是一种文件,所以普通用户账号自然没有权限删除别人的建立的文件了,要想让他们能删除、添加、编辑该文件,就要把这个文件的权限给他们才行。用户可以通过“chgrp 用户组 文件或文件夹”之类的命令,将特定文件的权限赋予一个用户组。当然,文件所有者也可以使用“chmod u=rwx”命令,将文件的所有操作权限赋予当前用户。

请问Linux系统对用户账号的登录验证究竟是通过“/etc/passwd”文件还是“/etc/shadow”文件进行的?

这项登录验证操作与上述两个文件都有关系,先是通过“/etc/passwd”文件来验证用户名是否存在,之后使用“/etc/shadow”文件来验证用户名对应的密码是否正确。

请问Linux系统的组账号文件有什么作用,该怎样对其进行编辑修改呢?

基于某种特定联系将多个用户集合在一起,即构成一个用户组,用于表示该组内所有用户的账号称为组账号。该账号文件的作用主要是加强组口令的安全性,避免恶意用户对其实行暴力攻击。组账号文件一般包含用户组名、加密的组口令、组成员列表等信息,以组mail文件为例,其组成员包括exim、postfix、mail等,加密的组口令处于隐藏显示状态,其他的以“::”结尾的组表明没有组成员,不过用户可以自行添加。

在Linux系统中,要是强制每个用户选择使用不易猜出的登录密码,那么就能有效提高系统的运行安全性。不过要是passwd程序不能强迫每个登录系统的用户使用合适的密码,要保证密码的安全度,就只能依靠密码破解程序了。请问如何借助密码破解程序,帮助用户设置安全的Linux系统登录密码?

首先自己运行密码破解程序,并将破解结果与Linux系统的/etc/passwd密码文件或/etc/shadow影子文件相比较,从中找出容易被黑客破解的密码,其次对比较容易破解的密码进行修改,让其符合密码复杂性原则,以增强黑客暴力破解的难度。

请问如何查看Linux系统下所有用户以及它们的操作权限属于哪个用户组?

只要使用“cat /etc/pass wd |cut -f 1 -d :”字符串命令即可。

作为系统管理员,我们或许会在特定时候查看系统中当前有哪些用户账号正在活动,甚至想查询特定用户正在做什么,这该如何实现呢?

要想查看已经登录系统的用户账号名称,以及每个用户正在做什么事时,可以使用“W”命令来进行,该命令所使用的信息来源于“/var/run/utmp”文件,它输出的内容包括用户名称、用户的机器名称或tty号、远程主机地址、用户登录系统的时间、空闲时间(作用不大)、附加到tty(终端)的进程所用的时间、当前进程所用时间、用户当前正在使用的命令等。

如果想查看登录用户名称及所启动的进程信息时,可以使用“who”命令,该命令输出的内容有用户名、tty号、时间日期、主机地址等。要是只想查看我们自己所使用的登录名称时,可以使用“whoami”命令来进行,该命令可以显示当前登入的用户名称,以及当前所使用的tty信息。

某用户在Linux系统中创建了一个用户账号“ccc”,对应账号的主目录位于/home目录下,后来该用户删除了“ccc”用户账号后,对应账号的目录在home目录下为什么仍然存在呀?

这可能是该用户先前删除“ccc”用户账号的时候,是没有删除完全,还留有原来用户账号的一些痕迹。要想彻底删除一个用户账号的话,必须要使用“userdel -r”命令。例如,这里必须执行“userdel -r ccc”命令,才能将用户账号“ccc”的相关信息彻底的删除干净。

猜你喜欢
普通用户命令账号
只听主人的命令
A quantitative analysis method for contact force of mechanism with a clearance joint based on entropy weight and its application in a six-bar mechanism
彤彤的聊天账号
施诈计骗走游戏账号
即使是普通用户也需要备一张家庭影院入门攻略:影音调校工具篇1
我国社交媒体账号的对外传播之道——以“人民日报”Facebook账号“特朗普访华”议题报道为例
移防命令下达后
Numerical Analysis of Refueling Drogue Oscillation During Refueling Docking
Google Play游戏取消账号绑定没有Google账号也能玩
这是人民的命令