Resive world

Come world to Record life


  • Home

  • Tags

  • Categories

  • Archives

  • Sitemap

  • Search

LaTeX常用数学公式和符号搬运

Posted on 2015-10-06 | In LaTeX

前言

终于进入重点了,个人感觉平时还是不会用LaTeX写东西的(好烦啊),不过一些数学公式还是要靠这玩意来对付的,这也是我学LaTeX的初衷。

常用公式

首先得明确公式分为行内公式和行间公式:
行内公式就是可以沿着文章的顺序走的,不会跨行的公式,用$…$来包括,比如:
$\alpha+\beta\geq\frac12$ :$\alpha+\beta\geq\frac12$ 。

行间公式就是另起一行并且很有可能占多行的公式,用$$…$$来包括,比如:
$$\alpha +\beta\geq\frac12$$:
$$\alpha+\beta\geq\frac12$$

符号搬运

OK,接下来我们来具体的看看各种符号对应的代码,由于hexo、wordpress以及haroop对转义字符的解析的不一样,直接粘过来比较麻烦,因此我就贴一些链接,方便以后查找。

wiki-帮助:数学公式)
MarkDown可用的LaTex符号表

至于具体用法,到时后用到了再提吧。

LaTeX总体结构和导言区格式简析

Posted on 2015-10-06 | In LaTeX

首先来看一个最简单的LaTeX文本:

1
2
3
4
documentclass{article}
begin{document}
hello, world.
end{document}

这就是我们的Hello world,最朴素的格式,也是最基础的框架。
在begin{document}和end{document}之间的就是我们的正文区,而在这之前的就是我们的导言区,这里通常会说明使用什么宏包,重新定义命令,规划文章的总体布局等。虽然有时候很长,但是如果想保持你的几篇文章格式一样的话,直接复制粘贴这一段就行了,还是很方便的。
导言区第一行documentclass{article} 是用来声明文章类型的,有论文(article),书籍(book)、报告(report)、及信笺(letter)等几种形式,一般我们用article;
在这里我们通常还会导入一些包包,比如美国数学会的数学公式宏包(amsmath)、美国数学会的数学符号宏包(amssymb)、LATEX 的数学符号宏包(latexsym)等。用如下格式:

1
2
usepackage{amsmath,amssymb}
usepackage{latexsym}

当然,这里通常还会放这些其他的控制格式的东西,现在用不到,以后再来补充。

ps:其实网上有那种在线编译LaTeX的网站,百度一下就都有了,偶尔用的的话也可以试试。

LaTeX概述和Linux下的安装

Posted on 2015-10-05 | In LaTeX

简述

看来开个博客真的是能学到东西的,有些问题只有写下来才会明白这的确是一个问题。比如,在博客或者论文里打公式的问题。本来以为这根本就不是个问题,结果才发现这的确是一个大大的问题,硬是扯出了一个新的语言—LaTex语言。

LaTeX,音译为“拉泰赫” /‘lɑtɛk/,实际上应该确实的写成“LaTeX”。绝对不要改变任何一个字母的大小写,以免和“latex”(胶乳)一词相混。

然而说穿了这个也不能算是一种语言,只能说这是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发。好处不多说,肯定就是完美的解决了之前遇到的问题啦。

安装

首先肯定是安装了,在Wordpress下呢是有个LaTeX for Wordpress 插件的,安装一下就可以用了。而在我们平时的系统中使用时,则还是需要安装环境的。
不太懂怎么选,倒腾了好久啊,走了好多弯路,最后终于找到了比较靠谱方便的方法。

1
myths@myths-X450LD:~$ sudo apt-get install latex209-base latex209-bin latex-cjk-chinese latex-cjk-chinese-arphic-bkai00mp latex-cjk-chinese-arphic-bsmi00lp latex-cjk-chinese-arphic-gbsn00lp latex-cjk-chinese-arphic-gkai00mp latex-cjk-common dvipdfmx

基本就是各种基础包,语言包,字体包,还有格式转换包啥啥的,小的很呢,如果装个完全版的话起码要2个G.。。

如果发现这样还是会有问题的话那就试着把latex的扩展再安装一下:

1
$ sudo apt-get install iatexlive-latex-extra

这大概有780MB,比完全版的稍微小的点,一般这样就能解决基本的问题了。

如果实在不行,那可能就只能安装完全版了。。。。。。
安装好基本就可以用了,把要执行的代码写对了保存好,一般就以.tex结尾吧,再执行

1
$ latex test.tex

就会生成各种文件,一般是以.aux .dvi .log 结尾的文件,各有各的用处,而现阶段对我们有用的就是.dvi 文件了。这种文件可以用evince(文档查看器)直接查看编译后的效果,但是无法选择,所以我们一般需要把他转化为pdf格式的。执行转换命令:

1
myths@myths-X450LD:~$ dvipdfmx test.dvi

就会生成pdf文件了。
如果觉得这样比较啰嗦也可以直接用xelatex命令跳过生成dvi文件的过程:

1
xelatex test.tex

这样也可以直接生成pdf了。

另:Linux下有图形化的编辑界面texmaker,不习惯命令行的也可以用。
(话说对中文的支持我始终搞不定,算了,以后有空再来看看吧)

Linux中利用ssh传输文件的方法

Posted on 2015-10-05 | In SSH

本来打算倒腾vsftp的,结果在搞完ssh之后发现他有个sftp,据说比ftp更安全而且更方便,更重要的是完全不用重新配置啦~~

使用的前提当然是在ssh的配置文件里不把sftp的那一行注释掉。

登录的的方法与ssh一样(因为sftp就是ssh 的一个程式。):

1
2
myths@myths-X450LD:~$ sftp root@myserver
sftp>

我这里是以root身份登陆我的myserver服务器。

sftp通常有下面的命令:

  • get 命令:get 目标文件 本地路径(get 文件夹 加 -r参数)

  • put 命令:put 本地文件 目标路径(put 文件夹 加 -r参数)

  • 其他命令:比如ls cd rm rmdir pw mkdir啥啥啥的,不过为了区别,对本地进行操作的时候命令变成了lls lcd lpwd lmkdir,也是有道理。(经检验并没有lrm lrmdir这些命令)

  • 退出命令:exit quit bye均可。

实际上基于ssh登陆的文件传输工作还可以由scp命令完成,方法是:

  • 上传文件:scp [本地用户名 @IP 地址 : ]文件名 1 远程用户名 @IP 地址 : 文件名 2

    1
    myths@myths-X450LD:~$ scp test root@myserver:~/
  • 下载文件:scp 远程用户名 @IP 地址 : 文件名 1 [本地用户名 @IP 地址 : ]文件名 2

    1
    myths@myths-X450LD:~$ scp  root@myserver:~/  test

可以通过加-r参数表示传文件夹,或者通过-v参数显示细节。

Linux中搭建并配置ssh服务器

Posted on 2015-10-05 | In SSH

简述

首先让我们来认识一下什么是SSH。

SSH是英文Secure Shell的简写形式,是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。他的最大特点就是安全。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。总的来说就是一种安全的进行远程登陆的方式,也是现在最常用的登陆服务器的方式,今天我们就来系统的了解下。

SSH分为两部分:客户端部分和服务端部分。
服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。这些也都是我们比较常用的命令。
值得一提的是我们现在常用的SSH并不是真正的SSH,而是另一种替代的版本OPENSSH,毕竟这里涉及到加密算法和版权的限制。

ubuntu下在更新了源之后就可以直接安装了:

1
myths@myths-X450LD:~$ sudo apt-get install openssh-server

安装好一般就直接启动了,不放心可以试下:

1
2
myths@myths-X450LD:~$ sudo service ssh start
start: Job is already running: ssh

他会告诉你正在运行,第一步就ok了(一定要记得sudo,否则他会骗你说没有这个服务的0.0)。
接下来就需要处理配置文件了,openssh的配置文件是/etc/ssh/sshd_config,(不是ssh_config)

文件样例

我本机的配置文件是这样的:

myths@myths-X450LD:/etc/ssh$ cat sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile	%h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

呃。。有点长,我们捡几个重(jian)要(dan)的研究下。

配置文件简析

  • Port:这个很明显就是记录SSH的端口啦,默认的是22,自己也可以改,(虽然并不晓得改完会不会出问题)

  • Protocol:这个指的是SSH的版本,众所周知有两个版本1和2,据说兼容行不好,如果确实要兼容的话,值应该设置为2,1。我这里是2。

  • HostKey:这里有好几个路径,指的就是private-key的保存路径,闲着没事可以打开看看。

  • ServerKeyBits:就是密钥的长度啦,估计随着时间的推移这个数字会越来越大吧。

  • PermitRootLogin: 是否允许 root 登入!预设是允许的,但是很明显这是不安全的,我们通常把这个改为no,但是我知道我在干什么所以我一般把这一栏改成yes。

  • StrictModes: 当使用者的 host key 改变之后,Server 就不接受联机 当使用者的 host key 改变之后,Server 就不接受联机,为了安全一般是yes。

  • PubkeyAuthentication : 是否允许 Public Key ?当然允许啦!(反正不晓得有啥用)

  • HostbasedAuthentication:哦,基于host的安全认证,就是~/.ssh/known_hosts下记录的了。

  • PasswordAuthentication:密码验证当然是需要的,yes不解释。

  • PermitEmptyPasswords:是否允许空密码,最好是no吧。

  • Subsystem :这一行写的是sftp服务路径,如果不想开放sftp的话可以把这一行注释掉。

一般来说这里的配置都不用改的,因为这基本上已经是对SSH的最佳配置了。如果修改了的话一定要重启ssh服务。

然后呢,就可以通过远程计算机输入“ssh 用户名@主机名” 进行远程登陆了。

另:想查看服务器的登陆信息的话可以用last命令。

Linux中忘记root密码怎么办

Posted on 2015-10-04 | In Linux

前言

白天倒腾权限系统的,结果不知道怎么就把主用户的sudo权限给弄没了,结果是各种用不了root权限。sudoers文件打不开,usermod命令也用不了,sudo -i就不提了,而且ubuntu是无法直接以root身份登陆的,简直无解。没办法,只有倒腾起了之前不敢动的recovery模式。

方法

开机进入grub,选ubuntu高级选项,进去后选recovery模式的版本。进入后选root选项进入root终端。然而进入终端后才发现,还是几乎什么文件也不能改,输入passwd命令会提示passwd: Authentication token manipulation error,输入usermod命令会提示usermod:cannot lock /etc/passwd; try again,什么sudoers文件也是无法写入。。。网上问了下发现原来是因为root界面默认是以只读方式挂载的,所以只需要以读写的方式重新挂载下就行了:

1
root@myths-X450LD:~# mount -rw -o remount

这样一弄好,就真的是想怎么搞就怎么搞了。

这样一看下来,其实recovery模式也没什么深奥的地方,就是时时刻刻获得了最高权限的shell。

2018年7月12日更新

最近在用虚拟机的时候发现,当没有使用双系统的时候见不到grub界面,没有recovery模式的选项。查了下发现在启动时按F8键即可进入。

同时,在使用的时候发现在新的版本中,mount命令的用法似乎更改了,直接这样使用会报错。在ubuntu18.04的recovery模式中要使用下面的命令:

1
root@myths-X450LD:~# mount -o remount,rw /

Ubuntu中Desktop Entry文件剖析

Posted on 2015-10-04 | In Linux

前言

很多情况下,当我们通过别的渠道安装了程序包之后,发现dash中并没有收录这个程序,想使用的话还得通过输命令或者执行脚本,显得很麻烦。其实,Linux  KDE 或者Linux GNOME下这种东西完全可以自己配置,而且弄得比windows下还要漂亮。我们用到的工具就是Desktop Entry文件系统。

文件样例

一般情况下我们都吧*.desktop文件放在/usr/share/applications/目录下,文件夹下的每一个文件就对应这dash菜单内的一个程序,我们任意打开一个文件来看一看这里面都写了啥:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
myths@myths-X450LD:/usr/share/applications$ cat libreoffice-writer.desktop[Desktop Entry]
Version=1.0
Encoding = UTF-8
Name=LibreOffice Writer
GenericName[zh_CN]=字处理器
Comment[zh_CN]=使用 Writer 创建并编辑信函、报表、文档和网页中的文本和图形。
Type=Application
Exec=libreoffice --writer %U
Icon=libreoffice-writer
Terminal=false
Categories=Office;WordProcessor;X-Red-Hat-Base;X-MandrivaLinux-Office-Wordprocessors;
MimeType=application/vnd.oasis.opendocument.text;...;application/vnd.palm;application/clarisworks;
StartupNotify=true
Keywords=Text;Letter;Fax;Document;OpenDocument Text;Microsoft Word;Microsoft Works;Lotus WordPro;OpenOffice Writer;CV;odt;doc;docx;rtf;
InitialPreference=5
StartupWMClass=libreoffice-writer
X-KDE-Protocols=file,http,smb,ftp,webdav
Actions=NewDocument;
[Desktop Action NewDocument]
Name=New Document
Exec=libreoffice --writer
OnlyShowIn=Unity;

(中间的MimeType有点长,我给用…代替了,而且Comment和GenericName本来支持多种语言的,这里就给精简了0.0)

下面我们就来正式的看一下这写的究竟是啥。

简要分析

首先一般是以[Desktop Entry]开头,表明格式。剩下的就是以键值对的形式指明各种属性值。Desktop Entry 文件标准定义了一系列标准关键字。标准关键字分为必选和可选两种:必选标准关键字必须在 .desktop 文件中被定义;而可选关键字则不必。以下是对重点关键字的解析:

  • 关键字”Version“:[可选]该数值指定了当前 Desktop Entry 文件所遵循的 Desktop Entry 文件标准版本。

  • 关键字”Encoding”:[可选]1.0 版本不推荐使用 该数值指定了当前 Desktop Entry 文件中特定字符串所使用的编码方式。尽管Desktop Entry 文件标准 1.0 不再推荐使用该关键字,但由于历史原因该关键字仍然广泛出现在现有的 Desktop Entry 文件中。

  • 关键字”Name”:[必选]该数值指定了相关应用程序的名称。打开dash,显示的名字就是了。

  • 关键字”GenericName”:[可选]该数值指定了相关应用程序的通用名称。

  • 关键字”Comment”:[可选]该数值是对当前Desktop Entry的简单描述。就是dash中右键出来的评论。

  • 关键字”Type”:[必选]关键字”Type”定义了Desktop Entry文件的类型。常见的”Type”数值是”Application”和”Link”。”Type = Application”表示当前Desktop Entry文件指向了一个应用程序;而”Type = Link”表示当前Desktop Entry文件指向了一个URL (Uniform Resource Locator)。

  • 关键字”Exec”:[可选]关键字”Exec”只有在”Type”类型是”Application”时才有意义。”Exec”的数值定义了启动指定应用程序所要执行的命令,在此命令是可以带参数的。通常就是在命令行执行程序或者脚本的命令,比如我的mc配置的就是

Exec=/home/myths/Download/Minecraft/minecraft.sh。

  • 关键字”URL”:[可选]关键字”URL”只有在”Type”类型是”Link”时才有意义。”URL”的数值定义了该Desktop Entry文件指向的URL。

  • 关键字”Icon”:[可选]该数值定义了当前Desktop Entry文件在应用程序浏览器或是在文件浏览器中所显示的图标。一般关键字”Icon”的数值是以绝对路径的格式给出(其实是不知道系统给的相对路径是啥0.0),那么其数值所指定图标文件将被使用。

  • 关键字”Terminal”:[可选]该关键字的数值是布尔值,并且该关键字只有在”Type”类型是”Application”时才有意义。其数值指出了相关应用程序(即关键字”Exec”的数值)是否需要在终端窗口中运行。

  • 关键字”Categories”:[可选]关键字”Categories”只有在”Type”类型是”Application”时才有意义。”Categories”的数值指出了相关应用程序在菜单中显示的类别。具体菜单分类由规范”Desktop Specification Menu”具体定义。(一般没必要写)

基本上常见的就是这些属性,毕竟自己搞的玩意也没有必要多标准,凑合用就行啦。

Linux为用户添加sudo权限

Posted on 2015-10-04 | In Linux

前言

我们知道root用户可以直接执行所有命令,主用户可以通过sudo命令假装自己是root用户,而一般用户连sudo都用不了。现在我们的目的就是让这个一般用户也能像正常用户一样使用sudo命令。

方法

这里方法至少有两种。

将用户添加进sudo组

root@myths-X450LD:/home# usermod -G sudo test

一句话ok。(为了这句话不晓得倒腾了多久0.0)

将用户注册到/etc/sudoers文件中

按照/etc/sudoers文件的规格添加一行就行比如:

1
%test ALL=(ALL:ALL) ALL

个人不太推荐直接改配置文件的行为0.0。

Linux中sudoers文件简析

Posted on 2015-10-04 | In Linux

这是在调节sudo使用权限时要用到的很重要的文件。以下是本机配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
root@myths-X450LD:/etc/sudoers.d# cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

注释啥的不去管他,Defaults啥的暂时还用不到,主要是中间的部分。
默认情况我们会看到有”%admin ALL=(ALL) ALL”一句话,就是允许admin组在所有主机上执行所有命令。

  1. 如果想把admin组的用户都sudo不用密码那么可以将这一行换为:”%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL”即可。
  2. 如果仅仅想让test用户sudo不需密码,则可添加”test ALL = NOPASSWD: ALL”这样一行。
  3. 如果让test用户sudo不用密码即可执行某几个命令,可这样写”test ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser”

不过这个文件的权限是-r–r—–,所以只能是以root身份登陆然后x!强行保存或者按照系统提供的方法,用visudo命令进入nano修改。
关于sudoers文件还有一个好玩的彩蛋,就是在开头加入一行”Defaults insults”,就是开启嘲讽模式,你在sudo时如果密码输入错误,那么他就会来嘲讽你,比如:

1
2
3
4
5
6
7
myths@myths-X450LD:~$ sudo vim test
[sudo] password for myths:
There must be cure for it!
[sudo] password for myths:
And with that remarks folks, the case of the Crown vs yourself was proven.
[sudo] password for myths:
You silly, twisted boy you.

无聊的时候可以玩玩0.0.
简单用法就这些,以后有新发现再来补充。

Linux中shadow文件详解

Posted on 2015-10-04 | In Linux

加密密码的文件,听上去似乎可以做点什么,然而实际上啥都做不了,一个鸡肋啊。

文件样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
myths@myths-X450LD:/home$ sudo cat /etc/shadow
root:!:16618:0:99999:7:::
daemon:*:16484:0:99999:7:::
bin:*:16484:0:99999:7:::
sys:*:16484:0:99999:7:::
sync:*:16484:0:99999:7:::
games:*:16484:0:99999:7:::
man:*:16484:0:99999:7:::
lp:*:16484:0:99999:7:::
mail:*:16484:0:99999:7:::
news:*:16484:0:99999:7:::
uucp:*:16484:0:99999:7:::
proxy:*:16484:0:99999:7:::
www-data:*:16484:0:99999:7:::
backup:*:16484:0:99999:7:::
list:*:16484:0:99999:7:::
irc:*:16484:0:99999:7:::
gnats:*:16484:0:99999:7:::
nobody:*:16484:0:99999:7:::
libuuid:!:16484:0:99999:7:::
syslog:*:16484:0:99999:7:::
messagebus:*:16484:0:99999:7:::
usbmux:*:16484:0:99999:7:::
dnsmasq:*:16484:0:99999:7:::
avahi-autoipd:*:16484:0:99999:7:::
kernoops:*:16484:0:99999:7:::
rtkit:*:16484:0:99999:7:::
saned:*:16484:0:99999:7:::
whoopsie:*:16484:0:99999:7:::
speech-dispatcher:!:16484:0:99999:7:::
avahi:*:16484:0:99999:7:::
lightdm:*:16484:0:99999:7:::
colord:*:16484:0:99999:7:::
hplip:*:16484:0:99999:7:::
pulse:*:16484:0:99999:7:::
myths:$6$GfWTYGIz$LmomqbhIzJbxA0arFMTs7r/JmIcZS8dyK1V4X/BilYTbqJecLYJWLTFTUoWcPKTF6iPH.kbj2ZDzSbb5d.PUE1:16618:0:99999:7:::
ftp:*:16708:0:99999:7:::
postfix:*:16709:0:99999:7:::
smmta:*:16709:0:99999:7:::
smmsp:*:16709:0:99999:7:::
guest-g1Jo1T:*:16711:0:99999:7:::

这是我的电脑上的文件,总体上和之前的文件一样,格式如下:

1
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

文件简析

登录名

是与/etc/passwd文件中的登录名相一致的用户账号。

口令

字段存放的是加密后的用户口令,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
一般存放的字符串就是加密过的密码文件。就是实际密码经过hash算法后的值。开头的数表示他用的是哪一种hash(可以在 man crypt 中查看到):

  • 以$6$开头的,表明是用SHA-512加密的;
  • 以$1$开头的,表明是用MD5加密的;
  • 以$2$开头的,表明是用Blowfish加密的;
  • 以$5$开头的,表明是用 SHA-256加密的。星号代表帐号被锁定;
    如果是”*”或者”!”开头,则表示一般不能在Unix登陆。(呃。。不太清楚是啥意思)

最后一次修改时间

表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。一般这个时间起点是1970年1月1日。

密码不可被更动的天数

第四个栏位记录了这个帐号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!(没啥大用)

密码需要重新变更的天数

由于害怕密码被某些‘有心人士’窃取而危害到整个系统的安全,所以有了这个栏位的设计。 你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效。 而如果像上面的 99999 的话,那就表示,啊哈,密码永远不需要重新输入啦! (无聊的设定)

密码需要变更期限前的警告期限

当帐号的密码失效期限快要到的时候, 就是上面那个‘必须变更密码’的那个时间时, 系统会依据这个栏位的设定,发出‘警告’言论给这个帐号,提醒他‘再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!’,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。

密码过期的恕限时间

如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’ 那么该组密码就称为‘失效的密码’啰~怎么办?没关系,还有这个栏位的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,那么恭喜您的帐号已经失效了!

帐号失效日期

这个日期跟第三个栏位一样,都是使用 1970 年以来的总日数设定。这个栏位表示: 这个帐号在此栏位规定的日期之后,将无法再使用。 这个栏位会被使用通常应该是在‘收费服务’的系统中, 你可以规定一个日期让该帐号不能再使用啦!(坑)

保留

最后一个栏位是保留的,看以后有没有新功能加入。

1…565758

574 posts
69 categories
286 tags
© 2024 Companyd
Powered by Hexo
|
Theme — NexT.Muse v5.1.4