用户管理上

第1章 查看ip的其他方法  ip

1.1 ip address == ip a

查看所有的网卡信息。

[root@znix ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0

    inet6 fe80::20c:29ff:fea8:e414/64 scope link

       valid_lft forever preferred_lft forever

1.2 ip address show eth0 == ip a s eth0

查看第一块网卡的信息。

[root@znix ~]# ip a s eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0

    inet6 fe80::20c:29ff:fea8:e414/64 scope link

       valid_lft forever preferred_lft forever

1.3 ip route == ip r

查看网关。

[root@znix ~]# ip r

10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.201

169.254.0.0/16 dev eth0  scope link  metric 1002

default via 10.0.0.2 dev eth0

第2章 vi/vim常见的错误

2.1 swap file exist 错误

2.1.1 产生原因

在编辑文件的时候突然退出/断网/断电,不正常的退出了系统。

2.1.2 错误信息

Found a swap file by the name ".1.swp"

……

Swap file ".1.swp" already exists!

[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

2.1.3 解决办法

(E)dit anyway 继续编辑无视这个错误

(R)ecover     把刚才没有保存的内容先回复 继续编辑

(D)elete it   删除这个临时文件

2.1.4 6.x之前版本解决办法

".1.swp" 找到与编辑的问文件,同名的 .swp 的隐藏文件。

第3章 用户管理

3.1 用户的分类

类型 UID

root      0

虚拟用户 1-499

虚拟用户时为了满足系统中每个服务/进程在运行的时候都要有一个用户和家庭。

普通用户 500+

3.1.1 两种常用的shell

/bin/bash      普通用户默认的命令解释器

/sbin/nologin   傀儡用户虚拟用户使用

3.2 与用户有关的配置文件

[root@znix ~]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow

-rw-r--r-- 1 root root  648 Sep 12 12:05 /etc/group         用户组信息

---------- 1 root root  529 Sep 12 12:05 /etc/gshadow       用户组密码

-rw-r--r-- 1 root root 1271 Sep 12 12:05 /etc/passwd        用户信息

---------- 1 root root  936 Sep 12 12:09 /etc/shadow 用户密码

3.2.1 /etc/passwd 文件详解

[root@znix ~]# head -1 /etc/passwd

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

用户名:原来存放密码的位置:UID:GID:说明信息:家目录:shell(命令解释器)

第4章 与用户有关的目录

4.1.1 /etc/skel

/etc/skel目录是在linux下面添加一个新用户使用的用户老家的模板。

4.1.2 创建一个新的用户过程

新用户家目录中的三个隐藏文件,与/etc.skel中的相同。

[root@znix skel]# useradd alex888

[root@znix skel]# su - alex888

[alex888@znix ~]$ ll -a

total 20

drwx------  2 alex888 alex888 4096 Sep 12 10:18 .

drwxr-xr-x. 6 root    root    4096 Sep 12 10:18 ..

-rw-r--r--  1 alex888 alex888   18 Mar 23 08:15 .bash_logout

-rw-r--r--  1 alex888 alex888  176 Mar 23 08:15 .bash_profile

-rw-r--r--  1 alex888 alex888  124 Mar 23 08:15 .bashrc

4.1.3 /etc/skel 目录下文件详解

[root@znix skel]# ll -a /etc/skel/

total 20

drwxr-xr-x.  2 root root 4096 Aug 10 18:34 .

drwxr-xr-x. 78 root root 4096 Sep 12 10:18 ..

-rw-r--r--.  1 root root   18 Mar 23 08:15 .bash_logout

-rw-r--r--.  1 root root  176 Mar 23 08:15 .bash_profile

-rw-r--r--.  1 root root  124 Mar 23 08:15 .bashrc

.bash_logout   用户登出的时候运行这个文件里的内容

.bash_profile  环境变量

.bashrc        存放用户的别名数

4.2 -bash-4.1$ 错误的解决办法

4.2.1 产生的原因

因为用户家目录里面的与环境变量相关的文件被删除

.bash_profile

.bashrc

4.2.2 解决办法

第一步 切换到这个用户

[root@znix skel]# su - alex888

bash-4.1$

第二步 将/etc/skel下的文件复制过来 ( .bash* 隐藏文件)

注意:复制隐藏文件的是时候使用 .bash* 。

-bash-4.1$ cp /etc/skel/.bash* ~       

-bash-4.1$ ll -a

total 24

drwx------  2 alex888 alex888 4096 Sep 12 10:27 .

drwxr-xr-x. 6 root    root    4096 Sep 12 10:18 ..

-rw-------  1 alex888 alex888   23 Sep 12 10:25 .bash_history

-rw-r--r--  1 alex888 alex888   18 Sep 12 10:27 .bash_logout

-rw-r--r--  1 alex888 alex888  176 Sep 12 10:27 .bash_profile

-rw-r--r--  1 alex888 alex888  124 Sep 12 10:27 .bashrc

第三步 退出重新连接即可

-bash-4.1$ logout

[root@znix skel]# su - alex888

[alex888@znix ~]$

4.3  .*  极度危险

 .* 查找的时候匹配 ..

 ..  为上级目录

操作文件的时候尽量的精确  .bash*

第5章 用户相关的命令

5.1 添加用户 useradd

5.1.1 useradd  与 adduser

[root@znix home]# ls -l `which useradd adduser`

lrwxrwxrwx. 1 root root      7 Aug 10 18:36 /usr/sbin/adduser -> useradd

-rwxr-x---. 1 root root 111320 May 11  2016 /usr/sbin/useradd

5.1.2 useradd参数说明

-c 添加说明信息

-u 指定用户的uid

-s 添加用户的时候指定命令解释器 默认/bin/bash    /sbin/nologin

-M 不创建家目录

-g 添加用户的时候 默认会创建一个与用户名一样的家庭

5.1.3 添加用户 指定uid为666 禁止用户登录系统 不创建家目录

[root@znix ~]# useradd znix -u 666 -M -s /sbin/nologin

[root@znix ~]# grep znix /etc/passwd

znix:x:666:666::/home/znix:/sbin/nologin

[root@znix ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix)

5.1.4 /etc/login.defs  控制用户的默认信息

/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。

如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。

5.1.5 添加用户时的的基本信息(默认信息)

[root@znix ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

5.2 删除用户userdel

5.2.1 方法一 注释/etc/passwd

/etc/passwd里面,在这个用户行的前面加上# 将这一行注释就可以。

尽量不要使用userdel去删除用户,可能会发生意料之外的错误。

5.2.2 删除用户时常见的错误信息

[root@znix ~]# userdel alex888

userdel: user alex888 is currently used by process 23823

提示: 用户被23823进程使用中

第一步 检查进程

[root@znix ~]# ps -ef |grep 23864

alex888   23864  23863  0 11:39 pts/1    00:00:00 -bash

root      23885  23718  0 11:39 pts/0    00:00:00 grep --color=auto 23864

第二步 强制结束进程 kill -9

[root@znix ~]# kill -9 23864

第三步 检查是否还有这个进程

[root@znix ~]# ps -ef |grep 23864

root      23923  23904  0 11:45 pts/1    00:00:00 grep --color=auto 23864

#另一个在登陆的窗口提示信息

[alex888@znix ~]$ Killed

[root@znix ~]#

第四步 删除用户 ,没有占用的进程后,删除用户不再报错。

[root@znix ~]# userdel alex888

5.2.3 常见参数

userdel   默认不删除家目录和邮箱

-r    删除与用户有关的所有文件

#########尽量不要使用userdel来删除一个用户

5.3 修改用户的信息 usermod

5.3.1 查看用户的信息

[root@znix ~]# grep znix /etc/passwd

znix:x:666:666:znix super:/home/znix:/sbin/nologin

5.3.2 为用户增加说明信息

[root@znix ~]# usermod -c "Super User" znix

[root@znix ~]# grep znix /etc/passwd

znix:x:666:666:Super User:/home/znix:/sbin/nologin

5.3.3 让用户属于新的家庭

[root@znix ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix)

[root@znix ~]# usermod -g root znix

[root@znix ~]# id znix

uid=666(znix) gid=0(root) groups=0(root)

5.3.4 用户属于多个家庭(附加组)

[root@znix ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix)

[root@znix ~]# usermod -G root,oldboy znix

[root@znix ~]# id znix

uid=666(znix) gid=666(znix) groups=666(znix),0(root),500(oldboy)

5.3.5 usermod常用参数

-c 修改说明信息

-s 修改用户的命令解释器

-g 让用户属于新的家庭

-G 用户属于多个家庭(附加组)

5.4 passwd 修改用户密码

5.4.1 交互式修改

[root@znix ~]# passwd znix

Changing password for user znix.

New password:

BAD PASSWORD: it is too simplistic/systematic

BAD PASSWORD: is too simple

#提示密码的强度太弱。

Retype new password:

passwd: all authentication tokens updated successfully.

交互式输入密码要输入两次密码。

一次只能修改一个用户的密码

5.4.2 非交互式设置密码  --stdin

[root@znix ~]# echo 123456 |passwd --stdin oldboy

Changing password for user oldboy.

passwd: all authentication tokens updated successfully.

5.5 密码管理软件

keeppass

把密码记录到硬盘中(本地管理)

lastpass

在线软件,把密码存放的别人家(云端管理)

       AD统一管理

动态密码

5.6 让系统更加安全

5.6.1 方法

查看日志 /var/log/secure  查找failed 进行分析

chattr +i +a 给主要文件加上文件系统权限

指纹加密

5.6.2 指纹加密 md5sum 命令

只要文件的内容变量,加密信息就变化

第一步 给一个文件创建指纹

[root@znix ~]# md5sum oldboy.txt

058c5119928950d06f48d901a101511a  oldboy.txt

第二步 进指纹放到一个文件中

[root@znix ~]# md5sum oldboy.txt  > list.txt

第三步 可以对文件进行校验 正确显示 OK 不一致显示Failed

[root@znix ~]# md5sum -c list.txt

oldboy.txt: OK

 [root@znix ~]# > oldboy.txt

[root@znix ~]# md5sum -c list.txt

oldboy.txt: FAILED

md5sum: WARNING: 1 of 1 computed checksum did NOT match

由于文件中保存的式相对路径,所以指纹文件要和目标文件在同一个文件内。

5.7 【企业面试题】

5.7.1 批量添加3个用户stu01,stu02,stu03,并设置123456(禁止使用for,while等循环)

[root@znix ~]# echo stu{01..3}|xargs -n1 -exec useradd

添加密码

[root@znix ~]# echo 123456 |passwd --stdin stu01 stu02 stu03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

5408
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3278
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

3005
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2997
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4385
来自专栏魂祭心

原 canvas绘制clock

5074
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38410
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2767
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2916
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

7026

扫码关注云+社区