Linux,我敢说100%的编码员都听过这个词。如果答案是否定的,说明这篇文章不适合你!
其实Linux一直是很多程序员的软肋,包括笔者也是新手,所以最近尝试从基础开始学,写了几年代码,终于明白了高楼平地起的道理。没有好的基础很难进步。
今天我们要学习Linux用户账号,所以要说/etc/passwd、/etc/chadow文件。
/etc/passwd(账户重要参数文件),看看cat /etc/passwd。
乍一看觉得很深奥,就放弃了。那你就完了。这不是一个好习惯。其实很多事情就是看起来很难。如果你静下心来了解一下,你会发现他真的可以走进你的心里!呵呵。
有没有发现它是有规律的,有很多行,每一行都被:有哪些领域,七个?
实际上,这个文件的每一行都代表一个帐户(用户)。多少行表示系统中有多少用户,这就引出了一个问题。七个字段是什么意思?接下来,我们来解释一下这七个领域。
第一个字段帐户名。例如,root(超级管理员)
第二个字段X(如果你认为他是X就行)
第三个字段UID(用户ID,这个东西对系统很重要。有人问为什么会有狗P'UID '其实对于系统来说,他只知道这个UID,用户名只提供给我们看,方便好记,仅此而已)
第四个字段GID(组的ID,这个东西对系统很重要。有人问,不是有群名吗?为什么.这里省略了十几个字,意思同上,但实际上没有保存。呵呵)
第五个字段是用户备注信息的描述栏(即账号的备注信息,比如这个账号是干什么的,为什么建这个账号,建在哪里)。
第六个字段是用户的主目录;例如:/home/www
第七个字段shell(用户登录后获取的Shell环境一般默认为/bin/bash。注意:如果你想建立一个帐户,但不想让他登录系统,这里就可以了。您只需要将该字段设置为/sbin/nologin。细心的朋友可能注意到了/etc/passwd文件中的很多系统用户在这个字段中都有/sbin/nologin)
/etc/影子
为什么要谈这个文件?首先,我们需要用一个账户登录系统。事实上,我们的登录过程如下:
我们以用户echo为例。
1.根据输入的用户名,在/etc/passwd中查找echo用户。如果用户不存在,直接登录将失败。否则,您将获得该用户拥有的UID、GID和SHELL环境。
2.每隔一步就是去/etc/shadow文件检查用户输入的密码是否与echo的用户名密码相同。如果是一样的,可以登录系统。
还记得/etc/passwd中的每个字段‘x’吗?这个x很久以前是用来存储用户密码的,后来因为安全问题在/etc/shadow中提到了。所以/etc/shadow文件的主要作用是存储用户密码,用户登录系统时来这里验证。/etc/shadow文件几乎与/etc/passwd文件格式相同,只是
第一个字段帐户名(与/etc/passwd一致)
第二个字段帐户密码(即密码,加密后是一个字符串)
第三个字段的最后修改日期。
每个字段的密码多长时间不能更改,以天为单位?
第五个字段是密码需要更改的天数(出于安全原因,可以设置为强制用户更改密码)
第六个字段是密码更改前的天数(根据第五个字段,提醒用户更改密码前的天数)
第七个字段的密码到期后的宽限期(即第五个字段到期后的天数,在此之后该帐户将默认失效)
第八个字段账户失效日期(如果账户超过了这个设置,就会失效,比如在收费服务中使用,或者我们后台任务完成,账户失效等。)
第九个字段是保留的,目前没有实际应用。
用户相关文件完成。你明白吗?如果有,让我们来看几个操作账户的相关命令:
1.useadd(添加)
格式:useradd [-u UID] [-g初始化组] [-g辅助组] [-mM] [-c帐户描述列] [-d主目录绝对路径] [-s shell]帐户名
选项和参数
-u指定UID。此选项可以省略,系统将自动分配一个UID。
-g初始化组,默认情况下创建一个新组,而不指定。组名与帐户名相同。
-G secondary group,它可以指定帐户所属的其他组。多个组被使用和分开,例如-g G1,G2和G3。
-c账号注释信息
-m创建在-d后面指定的目录,这是默认值。
-M不创建在-d之后指定的目录。
-d用户的主目录
-sshell脚本环境,默认为/bin/bash。
例如,我们创建一个测试用户,主目录是/home/test,次要组是apache,帐户注释是this is apache user。
useradd -c '这是apache用户'-ga cache-d '/home/test '-m测试
2.usermod(已修改)
选项和参数,大部分参数与useradd相同。这里我只简单介绍一下附加参数。
-l后跟新的帐户名,表示要修改帐户名。
-我暂时冻结账户,这样它就不能登录了。将/etc/shadow的第二列修改为!即用户密码字段,
-U与-L相反,解冻账户,恢复账户的正常使用。
与useradd的用法相同
3.userdel(删除)
选项和参数
-r与用户的主目录一起被删除。
例如,userdel -r test将删除测试用户和/home目录下的测试目录。
linux下的命令通常有很多参数,要记住它们是非常困难的。这里只是一些常用的。我们在使用时需要检查细节。比如我们可以使用man usermod来检查命令的相关参数和指令。学习不是一件简单的事情。相信你抱着正确的态度,日积月累,努力实践,一定会有所收获。