inux下Login和Logout详解
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。除此之外别无其他区别。

转载于:https://www.cnblogs.com/tswcypy/p/4565561.html

Login 和 Logout相关推荐

  1. django(权限、认证)系统——用户Login,Logout

    django(权限.认证)系统--用户Login,Logout 上面两篇文章,讲述的Django的Authentication系统的核心模型对象User API和相关的使用,本文继续深入,讨论如何在W ...

  2. Linux 下 Login 和 Logout 详解

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

  3. java web logout_java – spring-security login?logout重定向到登录

    我使用 spring-security 3.2.0.RC2与 java配置和两个HttpSecurity配置.一个用于REST API,一个用于UI. 当我发布到/ logout它重定向到/ logi ...

  4. linux系统sulog,Linux 下 Login 和 Logout 详解

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

  5. vue-element-admin实现login和logout

    [注]本篇文章介绍的是基于花裤衩(链接地址)的vue-element-admin模板改造的一个前端的后台管理系统解决方案,数据库运用的是(mysql)黑马教程的电商管理系统的.sql文件,操作步骤来自 ...

  6. Audit login 与 Audit logout

    对于SqlServer数据库,当有数据库连接建立时,会触发Audit login 事件:而当有某个数据库连接关闭时,将触发Audit logout 事件. 一.Audit logout 的Durati ...

  7. Shiro实现logout操作

    这里我们通过配置Shiro的方式实现用户的登出操作! 1.继承Shiro包中的LogoutFilter类,并且重写preHandle方法 package com.shitong.service.imp ...

  8. Django笔记-实现用户退出登录(logout)

    Django笔记-实现用户的登出 Django logout()方法介绍: 一.登录login(user,request): 将通过认证的用户的唯一标识信息(主键id),通过哈希加密写入到当前sess ...

  9. Logon vs Login

    Logon vs Login 我们通常可以看到以下英文单词: a) Logon / Logoff b) Log On / Log Off c) Login /Logout d) Log In / Lo ...

最新文章

  1. 软件工程 团队博客分数 (第一阶段)
  2. Android 开发常用代码片段
  3. JAVA读取文件操作时路径的斜杠问题
  4. 求解相机参数Camera Calibration
  5. android AsyncTask 只能在线程池里单个运行的问题
  6. ASP.NETf发送邮件
  7. 常见文件文件头和隐写术总结 CTF中Misc必备
  8. Harbor镜像清理
  9. GSCoolink GSV6201 TypeC/DP to HDMI2.1
  10. Virtual Box报错VT-x is not available (VERR_VMX_NO_VMX)--大踩坑(二)
  11. wps中,文字编辑换行后空格变大
  12. pycharm怎样改成中文教程
  13. 各种版本谷歌浏览器下载
  14. 常用的iOS第三方框架
  15. 松松团队举办了夏季团建烧烤活动
  16. win10系统开机提示explorer系统调用失败的解决方法
  17. 大一新生计算机专业要选课,大一新生开学需要带电脑吗,辅导员:看看这四点再做决定...
  18. linux 卸载 bison,linux下的bison报错,
  19. C语言-全排列-递归
  20. 视频教程-Three.js进阶课程-HTML5/CSS

热门文章

  1. 年终盘点!2022顶会论文代码大合集!
  2. 国外数藏动态:7月6日至10日即将发售的藏品
  3. MFRC522使用、设计心得及详细教程资料
  4. wpf 悬浮窗口的实现
  5. switch case应用实例
  6. 一种测试FPS的方法
  7. C++:有限差分法求解随时间变化 平流方程 ut = - c * ux 在一个空间维度上,与 恒定速度,使用Lax方法作为时间导数(附完整源码)
  8. FHQ大战Splay
  9. 用python计算整数各位数字之和
  10. 2014年华为南研所校园招聘---机试+面试