登入LINUX
来源:互联网 发布:大排畸b超数据分析男女 编辑:程序博客网 时间:2024/04/28 21:47
登入LINUX
[longyu@debian: 二 3月 22 07:36:45] $ sudo login debian 用户名:longyu 密码: [longyu@debian: 二 3月 22 07:37:10] $ <-命令提示符(prompt)(PS1)
下面是我的PS1:
\[\e]0;\u@\h \d \t: \a\]${debian_chroot:+($debian_chroot)}[\u@\h: \d \t] \$
仅供了解,后面再介绍。
在登入Linux之时,我们要输入用户名与密码(输入密码不回显)。当我们输入完成,按下ENTER键之后,系统会在/etc/passwd(密码文件)中查找用户名。下面,我以自己的/etc/passwd为例:
longyu:x:1000:1000:This is my user:/home/longyu:/bin/bash
细心的读者可以发现,上面的一行中有七项——用:分隔。(There are seven colon-separated fields)
在这里你必须了解各个项对应的不同意义。同时需要指出的是,加密后的用户密码存储在影子文件中/etc/shadow。这两个文件的属性如下:
-rw-r--r-- 1 root root 2238 3月 18 09:32 /etc/passwd-rw-r----- 1 root shadow 1348 3月 18 09:32 /etc/shadow
这样的话你应该知道为什么要加密密码了吧。如果你将密码——即使是加密之后的长串字符直接放在/etc/passwd中的话,那么账户的安全性就会大幅度降低。毕竟/etc/passwd是对所有人可读的呀!
好了,回归正题。
当我的debian在/etc/passwd中查到longyu的存在之后,就启动PAM验证机制,来验证密码。当密码验证成功之后,我的屏幕上打印出了如下信息:
上一次登录:六 3月 19 14:50:05 CST 2016 tty6 上
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64The programs included with the Debian GNU/Linux system are free
software; the exact distribution terms for each program are described
in the individual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
那这个信息是怎么产生的呢?
首先你必须明确的是,系统会将你每次的登陆信息记录在登陆日志文件中,然后在你进行新的登入时,就会有相关的程序(lastlog)执行,来显示你的上一次登陆的记录。这个记录包括时间(六 3月 19 14:50:05 CST 2016), 以及登陆位置(tty6)。
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64
显示依赖于你在/etc/issue或/etc/issue.net中的设定。下面是我的设定:
[longyu@debian: 二 3月 22 08:05:27] $ cat /etc/issue /etc/issue.netDebian GNU/Linux 8 \n \l
你现在只需要知道它是怎样来的就行,关于细节,我会在之后的讲解中阐述。
好了,上述的那一行下,你惊奇的发现还有两段文字,其实这两段文字也是由你设定的,不过你一般都懒得去改,所以直接采用默认。以下是我的/etc/motd文件:
[longyu@debian: 二 3月 22 08:09:57] $ cat /etc/motdThe programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.
你有没有发现,上面的文件正文跟之前打印出来的两个段落一模一样呢?本该如此啊!
最后出现的是:
[longyu@debian: 二 3月 22 07:37:10] $ <-命令提示符(prompt)(PS1)
你先了解了解,这个之后再讲。
好了说了这么多,那这些信息打印出来之后我们能干什么?我们能打命令了!
执行我们所输入命令的程序叫做shell(这里就不翻译了)。正如我之前所讲的/etc/passwd的七个项的代表意义一样,你会发现第七项就是这个shell了。而我的shell是/bin/bash这个呀!在我的debian中总共有这几种合法shell :
# /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash
这个你一样还是了解了解就行,你只需要知道它们是不同的程序,但具有极其相似的功能。
那么shell到底是干嘛的?A shell is a command-line interpreted that reads user input and executes commands.简单的说,这里的shell就是一个命令行解释器,通过读取用户输入的命令,来完成用户所赋予的任务。如果将每个命令都看做大学宿舍的每个房间,那你第一次进你宿舍之前,你是不是得先弄吧钥匙?这个钥匙怎么弄呢?偷?抢?要?这个钥匙是学校提供给你的,因此你要得到这个钥匙你就必须去特定的地方,找特定的人。
好了,现在你要入住8#212,类似于你要执行cd(change directory)这个命令,而这个命令的参数就是8#/212。在这里你必须明确的是你要先找到哪个!你要先找8#还是先找212宿舍?一般来说你会先找8#,而这个行为对应于指令,就是找到这个cd命令放在哪个目录下。当找到目录之后,你又开始找212,好了一个一个找吧。找到了!那你就可以成功入住,找不到!怎么会呢!其时还是有可能找不到的!找到之后cd命令就顺利执行,你就成功入住。找不到,那你就该去找找人问问了,对应于Linux,系统就给你报错误信息。
那到底命令是怎样找的?命令是按照下面这个PATH的设定来找的!
[longyu@debian: 二 3月 22 08:21:36] $ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/texlive/2015/bin/x86_64-linux
简单的来说PATH就是指导你去先找8#,再找212.
在这里我突然发现用cd这个命令为例其实很不合适,原因吗,后面会讲。不过原理就是这样,不会有差。
好了,登陆就先说到这吧!
龙瑜
- Linux单用户登入
- 登入Linux主机
- linux登入mysql
- 登入LINUX
- Linux-查询登入用户信息
- 登入linux OS 的管理工具
- Linux下远程登入Windows
- Linux ssh 免密码登入
- Linux 下 epuck 系统登入
- ftp工具root登入linux设置
- Linux入门之第一次登入系统
- Linux命令 --- 登入登出篇
- linux下SSH服务远程登入
- linux学习笔记:安装登入centos
- linux系统停留在登入界面,登入失败问题
- Linux新手入门之如何登入登出Linux操作系统
- linux ssh远程linux不用输入密码登入
- 通过linux ssh远程linux不用输入密码登入
- 教你win7解除阻止程序运行怎么操作
- 北京大学校领导接待日完全是“作秀”
- gcc使用---动态库链接静态库
- 比特币 区块链 几种交易标准详解 P2PKH、P2PK、MS、P2SH加密方式
- 【数据结构与算法】B tree 即相关操作 深入解读
- 登入LINUX
- PAT A1042. Shuffling Machine (20)
- [LeetCode] 435. Non-overlapping Intervals 解题报告
- 北京大学官僚校风滋生违纪派
- SQL JOIN操作总结
- 在英文版Debian中添加中文拼音(双拼)输入法
- bzoj 1614 二分+最短路
- maven3发布web应用到tomcat7
- jenkins中连接slave节点遇到Password change required but no TTY available问题