2023-05-24 15:55:12 阅读( 8014)
Linux,这个词我敢说100%的coder都听说过,如果答案是否定的.那说明这篇文章并不适合您!其实Linux一直是众多coder的弱项,包括笔者也是个菜鸟级,所以最近尝试着从基础学起,写了几年的代码终于明白了万丈高楼平地起的道理.基础不好是很难进步的.今天我们来了解一
Linux,我敢说100%的程序员都听说过这个词。如果答案是否定的,那么这篇文章不适合你!
其实Linux一直是很多程序员的软肋,包括作者,他也是菜鸟。所以最近尝试从基础开始学,写了几年代码,终于明白了万物从地面升起的道理。没有好的基础很难进步。
今天我们来学习一下Linux用户账号,所以不得不说/etc/passwd,/etc/chadow file。
/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/shadow
为什么要谈这个文件?这需要从我们的账户登录系统开始。事实上,我们的登录过程是这样的:
我们以用户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次要的群组, 可以指定该帐号的所属的其它群组,多个用,分开, 如-G g1,g2,g3
-c帐号的备注信息
-m创建-d后指定的目录, 此为默认项
-M不创建-d后指定的目录
-d该用户的home目录
-sshell脚本环境, 默认为/bin/bash
如题: 我们创建一个test用户,并且创建家目录为/home/test, 设置次要群组为apache, 帐号备注为this is apache user
useradd -c'this is apache user' -Gapache -d'/home/test' -m test
2.usermod(修改)
选项与参数, 大部分参数与useradd是一样的. 这里我只简单介绍向个附加的参数
-l 后接新的帐号名称, 意思是修改帐号名称
-L暂时冻结该帐号, 让帐号无法登录, 修改/etc/shadow的第二栏为! 即用户口令栏,
-U与-L相反, 解冻帐号, 使帐号恢复正常使用
用法与useradd相同
3.userdel(删除)
选项与参数
-r连同用户的HOME目录一同删除
如userdel -r test 将删除test用户, 并且将/home目录下的test目录一并删除.
linux下的命令一般都会有好多参数, 想记住是非常困难的. 这里也只是简单的介绍了一些常用的. 详细的还需要我们用到的时候去查看, 比如可以用man usermod 来查看该命令的相关参数与说明. 学习不是一个简单的事情, 摆正心态,日积月累,勤加练习相信定有所获.
猜你喜欢
Guessyoulike