Login进程

Login 是你用Linux系统工作时面对的第一个进程,这对于使用终端以及通过网络使用Linux都是正确的。但是login进程本身并不是你在终端上见到的,你见到的其实是getty (get TeleTYpe terminal ,早期电脑上的意思是获取纸带终端,现在可以直接理解成打开终端),它是由init(通过/etc/inittab)在启动login进程时添加而启动的。

所以完整的启动链是:init -> getty -> login -> passwd -> shell -> applications 。这是从技术上来讲的在真正实现时还是有点不同的,比如有时候login和passwd是在一个程序里面,但是上面这个链是UNIX中很典型的。

那么为什么我们要这么做?为什么不能写一个程序来处理所有的工作。让一个getty程序同时处理login和passwd不好么?

让一个程序只做一件简单的事然后链接许多简单的工作创造了这个复杂的运行环境,这是保证UNIX稳定的关键,而且当你创造你的系统时这也是一个很关键的设计准则。(参见KISS准则,UNIX中的经典)

Debian6上默认提供六个终端(Ctrl+Alt+F1~F6,因为F7,F8用来打开图形界面而不是用作终端),但是实际上内核默认是64个终端,那么其他的终端哪去了?假如你在Linux虚拟机上,你可以访问tty10甚至tty12(使用Ctrl+Alt+F*),但是你没有更多的功能键,以后我们在讨论如何访问其他的终端。

Logout 进程

logout进程很简单,他需要终止login进程打开的任务或者shell。注意,它要关闭的不只是一个shell,而是所有的东西。

假如我使用long作为用户登录我会得到一个shell,假如我使用 ls,我会得到ls的结果然后我logout。所以logout的shell会发送一个信号到父进程用来通知它shell被终止了。但是shell的父进程是 login 而且此时 login 已经停止运行了(logout会终端login和shell),那么谁来获取shell的返回值呢? 是 init 来接受 logout 的返回值,在关闭getty、login、logout等所有后,init 重新打开一个getty来等待输入。

下面我们看个好玩的东东:

-rwxr-xr-x 1 root root 975488 Dec 29  2012 /bin/bash

-rwxr-xr-x 1 root root  49008 May 25  2012 /bin/login

-rwxr-xr-x 2 root root  32040 Dec 11  2012 /sbin/getty

-rwsr-xr-x 1 root root  51096 May 25  2012 /usr/bin/passwd

我们都可以看到,除了passwd其他都有着rwxr-xr-x权限,所有他们可以被任何用户执行,而passwd是-rwsr-xr-x权限,这个s是setuid的标志,该位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令,所以passwd是运行在root权限下(即使是一个普通用户使用)。有了这个,我们可以降低安全风险。

Login配置

你使用login登录,你不但打开了一个shell而且还配置了你的运行时环境(runtime env),这个配置如果在/etc下是系统级别的配置,如果在你的个人home目录下则是个人配置。

大概划分是这样的:

/etc/profile - 面向所有的用户和所有的shell

/etc/bash.bashrc - 面向所有用户的bash配置

~/.bashrc - 你个人的bash配置

所以在实际使用时我们需要根据需求的不同将配置放在不同的配置文件中。比如说,一个配置对所有使用这个系统的用户都有用,我们就需要放在/etc/profile下。

su

提到用户登录,这里说下root权限,使用su命令(su -)你不但切换了用户权限而且你创建了一个新的login会话,所以你得到的不只是一个root,而且是一个全新的运行时环境,这对于安全问题来说是很敏感的,所以使用root权限是一定要注意。当然,你也可以使用sudo来让自己的用户临时获得root权限,这对于桌面用户来说还是个不错的方法,但是对于比较大的系统,给用户sudo权限一定要注意,最好不给!

Exit vs logout

使用login登陆系统,那么退出系统我们可以选择exit或者logout,那么这两者之间有区别么?大部分系统来说这两者之间是没有区别的,但是他们两者还是有一点点的区别的:logout退出时会执行~/.bash_logout(如果有的话),而exit只会作退出工作而不执行~/.bash_logout。除此之外别无其他区别。

===========================

本文部分是我和大牛讨论而写出的,如果有异议欢迎指出并讨论

推荐阅读:

linux系统sulog,Linux 下 Login 和 Logout 详解相关推荐

  1. Linux 下 Login 和 Logout 详解

    Login进程 Login 是你用Linux系统工作时面对的第一个进程,这对于使用终端以及通过网络使用Linux都是正确的.但是login进程本身并不是你在终端上见到的,你见到的其实是getty (g ...

  2. linux管道命令详解,Linux系统中的管道命令的用法详解

    Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...

  3. Linux系统多网卡绑定各配置模式详解

    Linux系统多网卡绑定各配置模式详解 1. 配置多网卡bond 1.1. mode=0 模式 1.2. mode=1 模式 1.2.1. 关闭NetworkManager服务 1.2.2. 网卡配置 ...

  4. linux权限644是什么,linux系统644、755、777权限详解linux操作系统 电脑资料

    linux系统644.755.777权限详解linux操作系统 电脑资料 在linux系统中644.755.777三种权限是非常重要的一些权限了,下面我来详细的介绍644.755.777三种权限的使用 ...

  5. linux系统useradd及周边命令和概念详解

    在Linux 系统中,所有的用户和组像一个国家.如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成.在linux 中如果你对安全需求比较苛刻,完全可以限制用户的各种行为 ...

  6. Linux系统关闭或重新启动主机的命令详解

    即使现在Linux系统基本都是相对稳定,但有时候驱动程序和应用程序也可能存在一些小问题,这时就需要重新启动Linux系统主机,今天美联科技就来讲解下,关闭或重新启动Linux系统的几个实用命令. 1. ...

  7. Linux关闭java命令,Linux系统关闭或重新启动主机的命令详解

    即使现在Linux系统基本都是相对稳定,但有时候驱动程序和应用程序也可能存在一些小问题,这时就需要重新启动Linux系统主机,今天美联科技就来讲解下,关闭或重新启动Linux系统的几个实用命令. 1. ...

  8. linux中vi指令干嘛的,Linux系统中的vi/vim指令【详解】

    vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称.几乎可以说任何一台Unix机器都会提供这套软件. 只要简单的在Shell下执行vi就可以进入 vi 的 ...

  9. 在linux关闭的命令,Linux系统关闭或重新启动主机的命令详解

    即使现在Linux系统基本都是相对稳定,但有时候驱动程序和应用程序也可能存在一些小问题,这时就需要重新启动Linux系统主机,今天美联科技就来讲解下,关闭或重新启动Linux系统的几个实用命令. 1. ...

最新文章

  1. 【C++】Google C++编码规范(一):作用域
  2. LeetCode实战:有效的括号
  3. 华为Mate 30系列发布:电影级4摄,麒麟990 5G,没谷歌全家桶,售价高于iPhone11
  4. Codeforces-743D - Chloe and pleasant prizes(树dp)
  5. linux 内核驱动编程 简单例子 与_IO, _IOR, _IOW, _IOWR 宏解析
  6. 1574: [Usaco2009 Jan]地震损坏Damage
  7. ad19pcb设置恢复默认_条码打印机-斑马产品常用恢复出厂设置
  8. 作者:徐优俊(1990-),男,北京大学前沿交叉学科研究院博士生。
  9. Hyper Text Transfer Protocol(超文本传输协议)
  10. 无限复活服务器,绝地求生无限复活模式怎么玩 无限复活玩法说明介绍
  11. cocos2d-x 如何制作一个类马里奥的横版平台动作游戏续 2
  12. Spring, MyBatis 多数据源的配置和管理
  13. hibernate oracle 读写分离_ASP.NET CORE 国产最火前后端完全分离框架BCVP
  14. win7打不开桌面计算机,win7电脑中梦幻桌面打不开如何解决
  15. 大学四年,我是怎么靠做外包私活赚了10w+,实现经济独立
  16. android 计时器函数,Android Chronometer控件实现计时器函数详解
  17. 分享:蛋花儿主题WordPress瀑布流 V1.05(收费版)
  18. 2019 ICPC 徐州 H题 Yuuki and a problem
  19. apple 密码 seeion has time out 无法再本机上重设密码
  20. 谈谈CornerStone这个工具的使用

热门文章

  1. 如何用python画雪人_pygame画雪人_函数与图形示例.py
  2. 元音上师海口开示观心
  3. 从PaaS平台到技术中台,BoCloud博云直指“数字中国的架构师”
  4. BoCloud博云完成近亿元B轮融资,向PaaS及自动化运维注入强大加速力
  5. 云计算安全威胁和需求分析
  6. 如何用Cocos2d-JS制作一个微信报名宣传页
  7. Web Components 系列(二)—— 关于 Custom Elements
  8. (景德镇)麻将规则服务描述
  9. 聚观早报 | 微软Build开发者大会开幕;阿里云智能裁员7%
  10. 科创板|柏楚电子网上最终发行953.8万股 中签率0.045%