发表于: 2016-10-21 22:05:31

0 811


今天学到的内容:

目录加不加/在一些命令的对其操作的结果是不一样的。

readlink  软链接    在已知某个链接的情况下查看其真实的地址

tr  命令  字符集1 字符集2

   当字符集1长度大于字符集2的长度时,字符集1超出字符集2的那些字符都被字符集2里面的最后一个字符替换。
   
当字符集2长度大于字符集1的长度时,字符集2超出字符集1的那些字符不被使用

 tr 只接受标准输入的

 

  加上-t之后,就会限制为一一转换

  -c参数  表示补集,表示除了之外的都做转换。

tr  -dc  ‘a-z’ <file1

file1内的字集除了a-z之外都被删除,并将其他的字符全部用a-z的字符集替换

 

标准输入

< 文件   (标准输入,可以理解为由文件输出,还是谁大谁输出), > 文件,标准输出

记忆技巧:谁大谁输出。

   命令 <文件1>文件2

文件1的内容作为标准输入给命令处理完,之后标准输出到文件2

等于 命令>we>文件2<文件

两者的顺序不重要,肯定是先有输入才能输出,谁前谁后都行。

 cat <file1>file2 =cp file1 file2 (前提是文本文档)

多行重定向

使用“<< 终止词”命令从键盘把多行重导向给STDIN

  直到 终止词 位置的所有文本都发送给STDIN

mail  -s 标题 用户名  这个时候是以.退出的

图形界面的自动登录

 

 

Windows下用户名和组名不能一样,linux下面是可以的,linux创建的时候必须善于一个组,叫做主组

 

 

管道符 |

命令1 | 命令2|命令3|…….

前一个命令的标准输出(是正确的执行结果,若是错误的话就不行)成为后一个命令的标准输入

  命令1标准输出               命令2标准输入 

 

tee 命令

命令1|tree 命令2|tree命令3|…….

 

                    命令1标准输出

                             |

                             |

                             |

命令1标准输出   ————————————————————————》 命令2标准输入

命令1的标准输出该怎么输出还是怎么输出的同时还成为了命令2的标准输入

/etc/passwd 详解

root   :x     :0   :0  :root    :/root      :/bin/bash

(1)      (2)    (3)   (4)  (5)      (6)         (7)

 

 

(1)   username 用户名

它唯一地标识了一个用户帐号,用户在登录时使用的就是它。

(2)   password 该帐号的口令

passwd文件中存放的密码是经过加密处理的。Linux的加密算法很严密,其中的口令几乎是不可能被破解的

(3)   User ID 用户识别码,简称UID

Linux系统内部使用UID来标识用户,而不是用户名。UID是一个整数,用户的UID互不相同。 0是系统管理员账号,1-499是系统保留账号,500+即一般账号

(4)   Group ID 用户组识别码,简称GID

不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组。 usermod -g 设置

(5)   comment 这是给用户帐号做的注解

它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。

(6)   home directory 主目录

这个目录属于该帐号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root帐号的主目录是/root,其他帐号的家目录都在/home目录下,并且和用户名同名。 usermod -d 设置

(7)   login command 用户登录后执行的命令

一般来说,这个命令将启动一个shell程序。例如,用bbs帐号登录后,会直接进入bbs系统,这是因为bbs帐号的login command指向的是bbs程序,等系统登录到bbs时就自动运行这些命令。

 

 /etc/group

root    :x              :0          :

bin     :x              :1          :bin,daemon

(1)       (2)             (3)           (4)

 

 

(1) 用户组名称  

(2) 用户组密码

(3) GID

(4) 用户列表(组成员),每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名。

 

 

/etc/shadow

han   :!!      :17089    :0    :99999    :7   :    :         :

(1)      (2)      (3)       (4)    (5)       (6)   (7)   (8)     (9)

 

(1)   loginname:登录名。即/etc/passwd中的account。例子中hanll

(2)   encryptedpassword:加密的密码 !!表示用户被锁定无法登陆但是可以su –进行身份的切换(这个账号是没有密码的!!可以理解为没有密码但是不说说密码为空)

(3)   date of last password change:最近更改密码日期。从197011日开始计算的时间差,单位是秒。

(4)   minimum password age:最小密码寿命。实际指若需要改密码至少要经过多少天。或者可以理解为在这些天内密码不允许更改。注意0表示随时可以更改。

(5)   maximum password age:最大密码寿命。可以这么理解,为了密码的安全,需要定期修改,过设定密码寿命,过期后提醒用户更新密码。99999 表示永不过期

(6)   password warning period:密码过期前几天提醒用户更新密码。前面说过密码是有寿命的,在寿终前需要提醒用户更新密码,这个参数就是设定提醒天数的。

(7)   password inactivity period:密码不可用期限。实际上密码寿终后是还可以继续使用的,在它下地狱前还是有魂魄的,魂魄还能呆多久呢?就是这个参数决定的。

(8)   account expiration date:账户过期时间。这才是最终过期时间。就是说,在用户密码过期后用户还不更新密码的话,将到这个日期后用户将真的无法使用了。账号过期和密码过期是有区别的。

(9)   reserved field:保留位。

 

 

 

/etc/gshadow 

root    :   :      :root

(1 )    (2)  (3)     (4)

 

(1)   groupname  用户组名

(2)   password    用户组密码,这个段可以是空的或!,如果是空的或有!表示没有密码

(3)   admin      用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割

(4)   member,member   组成员,如果有多个成员,用,号分割

 

 

 

useradd 命令

useradd [d home] [s shell] [c comment] [m [k template]] [f inactive] [e expire ] [p passwd] [r] name

3.主要参数

-c:加上备注文字,备注文字保存在passwd的备注栏中。

 

  -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

 

  -D:变更预设值。

 

  -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。

 

  -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.

 

  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users

 

  -G:指定用户所属的附加群组。

 

  -m:自动建立用户的登入目录。

 

  -M:不要自动建立用户的登入目录。

 

  -n:取消建立以用户名称为名的群组。

 

  -r:建立系统账号。

 

  -s:指定用户登入后所使用的shell。默认值为/bin/bash

 

  -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。。

r:建立系统账号。

s:指定用户登入后所使用的shell

u:指定用户ID号。

4.说明

useradd可用来建立用户账号,他和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

5.应用实例

建立一个新用户账户,并设置ID

useradd david -u 544

需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特别用户,一般0499之间的值留给binmail这样的系统账号。

 

useradd Oracle -g oinstall -G dba

 

新创建一个oracle用户,这初始属于oinstall组,且同时让他也属于dba组。

 

useradd tomcat  -d /var/servlet/service -s /sbin/nologin

 

无法使用shell,且其用户目录至/var/servlet/service

 

 

[root@local ~]# useradd -e 17/1/1 han

Creating mailbox file: File exists  

这是在删除用户的时候没有选择 –r参数,使用了userdel  han 指令,然后自己手动吧/home/han 给删掉了,但是在/var/mail下面还有han的文件,所以再次创建同一个账号的时候,提示这个错误。

这里涉及到了执行useradd   username 的作用

  /etc/default/useradd 文件

通过useradd 添加用户时的规则文件,内容如下:

# useradd defaults file

GROUP=100

HOME=/home :把用户的家目录建在/home中;

INACTIVE=-1 :是否启用帐号过期停权,-1表示不启用;

EXPIRE= :帐号终止日期,不设置表示不启用;

SHELL=/bin/bash :所用SHELL的类型;

SKEL=/etc/skel :默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的

每个新创建的用户在起家目录下面都会有这 个文件

.bash_logout

.bash_profile

.bashrc

当丢失了这里面其中的文件的时候,会发生的情况是:

[root@local ~]# rm -rf /home/han/.*[^.]*

[root@local ~]# su - han

-bash-4.1$  -------》这里的这个提示符显示都变了

解决方法:

-bash-4.1$ su -

Password:

[root@local ~]# cp /etc/skel/.*[^.]*  /home/han/

[root@local ~]# su - han

[han@local ~]$ ls -la /home/han/

total 20

drwx------. 2 han  han  4096 Oct 21 09:17 .

drwxr-xr-x. 3 root root 4096 Oct 21 09:03 ..

-rw-r--r--. 1 root root   18 Oct 21 09:17 .bash_logout

-rw-r--r--. 1 root root  176 Oct 21 09:17 .bash_profile

-rw-r--r--. 1 root root  124 Oct 21 09:17 .bashrc

对比之删除之前的信息

[root@localhoast ~]# ls -la /home/han

total 24

drwx------. 2 han  han  4096 Oct 15 19:13 .

drwxr-xr-x. 4 root root 4096 Oct 19 19:53 ..

-rw-------. 1 han  han   223 Oct 15 19:13 .bash_history (之前已执行的命令)

-rw-r--r--. 1 han  han    18 May 11 07:21 .bash_logout

-rw-r--r--. 1 han  han   176 May 11 07:21 .bash_profile

-rw-r--r--. 1 han  han   124 May 11 07:21 .bashrc

 

 

为了防止出现问题,要改一下复制过来的几个文件的所属者和所属组





返回列表 返回列表
评论

    分享到