CentOS用户账号管理,学习随笔

第1章 面试题练习

1:/etc/passwd

CentOS用户账号管理

1、用户管理

/etc/passwd 用户名配置文件

/etc/shadow 用户密码配置文件
(1)/etc/passwd 的结构:
username:password:uid:gid:commit:user home path:shell

说明:

uid和gid系统默认按序自增;

用户的家目录——普通用户在/home,root在/(或~);

shell指登录方式——常见/bin/bash,/sbin/nologin(设置成不可登录形式);

(2)/etc/shadow 的结构

username:用户名

password:密码,加密方式$1(md5)、$5(sha-256)、$6(sha-512)、!!无密码、*锁定用户

最近一次更改密码的时间:距离1970-1-1的天数

多少天后可以更改密码:

密码失效期限:

警告密码失效:密码失效几天之前通知

失效账号期限:及时更改密码,以免用户不可用

后面的为保留字段

插:Linux时间同步

date -s 定义时间(date的格式)

ntpdate 时间服务器地址

hwclock -h:与BIOS里时间一致

2、对用户账号的操作

(1)基本操作

添加用户:useradd -u [uid] -g [gid] -G [group]-d [home dir path]-M [don't create home path]

-s [shell 如/sbin/nologin、/bin/bash] [username]可以创建用户指定组

删除用户:userdel -r 连同家目录一并删除

添加用户组:groupadd -g [gid] [groupname]

删除用户组:groupdel[groupname]

查看:id [username]

实例:切换用户不成功,没有用户的家目录

解决方案:

#mkdir <home path>

#cp -rv /etc/skel/.b* <home path>

;#如果需要一并删除,家目录的属主属组都要为该用户

(2)更改用户账号的属性

usermod -u -g -G -s -d -L:锁死用户 -U:解锁用户

chfn username:增加对用户账户的描述

设定密码

随机生成密码:mkpasswd -l 定长 -s 定义特殊字符-yum install -y mkpasswd)

记录工具:keepass

星彩网app下载,3、切换用户

su - [username]完全切换,环境变量和家目录等全部切换

su -C ''command' - user 用某个用户的权限临时执行命令

sudo 可以让普通用户临时以指定用户的权限执行命令,

设置用户的密码sudo /bin/ls /root/

更改visudo配置,“user ALL=(源用户) NOPASSWD:(无需密码)执行命令的绝对路径”

实例1:更改密码时仅输入一次

解决方案:passwd --stdin

echo -e"[new password]n[new passwd]n" |passwdpasswd --stdin [username];n是回车 -e去意字符

实例2:远程登录连接太慢

解决方案:

vim /etc/ssh/sshd_config

将UseDNS*启用,值改为no

/etc/init.d/sshd restart或service sshd restart

实例3:禁用远程root并不妨碍使用root权限执行命令

解决方案:

1.禁用root远程登录

vim /etc/ssh/sshd_config

将PermitRootLogin..启用,值改为no

/etc/init.d/sshd restart或service sshd restart

2.更改切换执行权限

visudo

[username] ALL=(root)NOPASSWD:/bin/ls,/bin/su(位置:root那行下)不要密码切换

su - [username]

sudo su -

1、用户管理 /etc/passwd 用户名配置文件 /etc/shadow 用户密码配置文件 (1)/etc/passwd 的结构: username:password:uid:gid:commit:user h...

用户管理上,

1.1 面试题:如何让一个脚本开机自启动

/etc/rc.local (Centos 7 给 /etc/rc.d/rc.local 加上执行权限)

chkconfig

打开该文件,可以看到每一行内容被分割成了7个字段比如:root:x:0:0:root:/root:/bin/bash

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

1.2 如何通过chkconfig 管理开机自启动

第一个字段表示用户名为root用户

1.1 ip address == ip a

查看所有的网卡信息。

[[email protected] ~]# 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.1 脚本存放在

/etc/init.d/

[root@zeq ~]# touch /etc/init.d/zeq

第二个字段存放了该账号的密码,早期unix是存放在这,出于安全考虑,改为存放在/etc/shadow 这里用x替代

1.2 ip address show eth0 == ip a s eth0

查看第一块网卡的信息。

[[email protected] ~]# 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.2.2 脚本要有执行权限

chmod x /etc/init.d/zeq

实例1-1 增加chkconfig要求的格式

chkconfig: 2345 99          98

                 启动顺序    关机顺序

[root@zeq ~]#cat /etc/init.d/zeq


#chkconfig: 2345 99 98

echo zhangenqing

第三个字段表示了用户的uid(主) root为0 即最高权限 1-499是系统的管理账号 普通用户从500开始 如flex:x:500:500:flex:/home/flex:/bin/bash

1.3 ip route == ip r

查看网关。

[[email protected] ~]# 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

1.2.3 加入到chkconfig管理与检查

[root@zeq ~]# chkconfig --add /etc/init.d/zeq

[root@zeq ~]# chkconfig |grep zeq

zeq            0:off   1:off   2:on    3:on    4:on    5:on    6:off

第四个字段表示了用户的gid(组) 和uid类似

第2章 vi/vim常见的错误

第2章 用户管理

第五个字段为注释,没实际意义,可以为空

2.1 swap file exist 错误

2.1 用户分类:

UID 

root           0  

虚拟用户      1-499 命令解释器/sbin/nologin     服务/程序 运行所需要的用户

普通用户     500

第六个字段为用户的home目录 root用户登录后就处于/root下 flex登录后就处于/home/flex下 可以修改这个字段。从而改变home目录**

2.1.1 产生原因

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

2.2 useradd  创建用户

useradd

-u  指定uid

-s  shell 命令解释器 (默认是/bin/bash)

    /sbin/nologin    

-M  不创建家目录  (sM)

-g  指定用户组名称

第七个字段为用户的shell

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.2.1 添加一个用户lidao999 uid为999 禁止 登录系统不创建家目录

[root@zeq ~]# useradd -u 999  -s /sbin/nologin -M lidao999

[root@zeq ~]# grep lidao999 /etc/passwd

lidao999:x:999:999::/home/lidao999:/sbin/nologin

[root@zeq ~]# ll /home/lidao999

ls: cannot access /home/lidao999: No such file or directory

2:/etc/shadow

2.1.3 解决办法

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

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

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

2.3 userdel   删除用户,但不会删除用户家目录

-r    删除用户及用户的家目录与邮箱

注意:一般不要删除,可以通过注释/etc/passwd

root下打开

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

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

2.4 passwd   修改密码

--stdin  非交互式设置密码 

[root@zeq ~]# echo 123456 | passwd --stdin ahao

Changing password for user ahao.

passwd: all authentication tokens updated successfully.    设置成功

root:$6$vaI79WVF5ElMdhec$eucJHCXcXf4h471ekANJB/q2EeEZ6Kj13SmzUiXE7C/eSBtH/McTTGxZ41ocCFzJd.oPIGlxeQ42RGJdR10E20:16918:0:99999:7:::

第3章 用户管理

2.5 usermod  修改用户信息

共九个字段

3.1 用户的分类

类型        UID

root         0

虚拟用户    1-499

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

普通用户    500

2.5.1 附加组 -G

[root@zeq ~]# id lidao999

uid=999(lidao999) gid=999(lidao999) groups=999(lidao999)

[root@zeq ~]# usermod -G root,ahaodebaba lidao999          用户组必须是已经创建的

[root@zeq ~]# id lidao999

uid=999(lidao999) gid=999(lidao999) groups=999(lidao999),0(root),502(ahaodebaba)

清空附加组

[root@zeq ~]# usermod -G '' lidao999

[root@zeq ~]# id lidao999

uid=999(lidao999) gid=999(lidao999) groups=999(lidao999)

第一个字段为用户名

3.1.1 两种常用的shell

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

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

2.5.2 groupadd 添加用户组   

-g  gid    添加gid

[root@zeq ~]# useradd  -u 666 -g mysql   -s /sbin/nologin  -M  mysql

第二个字段为密码 已经加密过

3.2 与用户有关的配置文件

[[email protected] ~]# 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        用户密码

2.6 查询用户信息

id        显示用户信息 uid gid 和属于用户组

w         显示谁登陆系统 并 在干什么

last      所有用户的每次的登录情况

lastlog   所有用户最近一次的登录情况

第三个字段为上次更改密码的日期

3.2.1 /etc/passwd 文件详解

[[email protected] ~]# head -1 /etc/passwd

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

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

2.7 与用户有关的文件

[root@oldboyedu50-lnb ~]# ll /etc/passwd /etc/group /etc/shadow /etc/gshadow

-rw-r--r-- 1 root root 1180 Aug 13 10:14 /etc/passwd     存放用户信息

-rw-r--r-- 1 root root  614 Aug 13 10:16 /etc/group      用户组信息   每个用户组里面有什么用户?

---------- 1 root root  873 Aug 13 10:49 /etc/shadow     用户密码信息

---------- 1 root root  501 Aug 13 10:16 /etc/gshadow    用户组密码信息

第四个字段为经过多少天才可以改密码 默认为0  不受限制

第4章 与用户有关的目录

2.8 /etc/skel 每个新用户的家目录的模板

每个新用户创建后会复制/etc/skel里面的文件到自己的家目录下

[root@zeq ~]# ll -a /etc/skel/

total 20

drwxr-xr-x.  2 root root 4096 Jul 10 18:21 .

drwxr-xr-x. 78 root root 4096 Aug 13 11:08 ..

-rw-r--r--.  1 root root   18 Mar 23  2017 .bash_logout    用户退出的时候 运行里面的命令

-rw-r--r--.  1 root root  176 Mar 23  2017 .bash_profile   /etc/profile

-rw-r--r--.  1 root root  124 Mar 23  2017 .bashrc         /etc/bashrc

第五个字段为经过多少天密码过期,99999表示永不过期

4.1.1 /etc/skel

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

2.9 临时成为root用户让zeq用户查看系统日志

  1. sudo

  2. cat(root) suid

  3. 日志加上 r权限

  4. root密码

第六个字段为密码到期前的警告期限

4.1.2 创建一个新的用户过程

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

[[email protected] skel]# useradd alex888

[[email protected] skel]# su - alex888

[[email protected] ~]$ 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

 

2.9.1 sudo -l   查看sudo配置

[zeq@zeq ~]$ sudo -l

[sudo] password for zeq:                   输入密码

Sorry, user zeq may not run sudo on zeq.      你没有配置sudo

第七个字段为账号到期期限。前提是密码过期,用户如果没有修改密码,那么这个账号在期限过后就会被锁定

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

[[email protected] 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        存放用户的别名数

2.9.2 visudo = vim /etc/sudoers

授予zeq用户 ls,touch,mkdir

zeq  ALL=(ALL)      /bin/ls, /bin/touch, /bin/mkdir

zeq进行测试

[zeq@zeq ~]$ sudo ls /root

[sudo] password for zeq:              输入密码

install.log.syslog  test.sh

anaconda-ks.cfg                        oldboy.txt          test.txt

epel-release-7-9.noarch.rpm                oldboy.ylj          t.sh

 

第八个字段为账号的存在时间

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

2.9.3 授予zeq  /bin/下所有命令

zeq ALL=(ALL)      /bin/*

第九个字段无意义

4.2.1 产生的原因

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

.bash_profile

.bashrc

2.9.4 授予zeq/bin/下所有命令,禁止使用vi和rm命令

zeq  ALL=(ALL)      /bin/*, !/bin/rm, !/bin/su, !/bin/vi

3:新增用户组groupadd [-g] 组名

4.2.2 解决办法

第一步 切换到这个用户

[[email protected] 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

[[email protected] skel]# su - alex888

[[email protected] ~]$

 

2.9.5 授予zeq 系统所有命令并且不需要输入密码

zeq  ALL=(ALL)       NOPASSWD:ALL

groupadd grptest1 新增组grptest1**

4.3  .*  极度危险

 .* 查找的时候匹配 ..

 ..  为上级目录

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

2.10 用户审计  行为审计(记录用户操作)

跳板机 堡垒机

 

1.硬件:齐治堡垒机

2.开源软件:jumpserver

3.自己写:shell脚本

**groupadd -g 511 grptest2 新增组grptest2 gid为511**

第5章 用户相关的命令

**4删除用户组groupdel**

5.1 添加用户 useradd

**groupdel grptest2 如果组grptest2 下面有其它账号 则不能删除 需要先删除账号,才能删除组**

5.1.1 useradd  与 adduser

[[email protected] 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:增加用户命令useradd useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]

5.1.2 useradd参数说明

-c   添加说明信息

-u   指定用户的uid

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

-M   不创建家目录

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

-M表示不建立home目录 -s 表示自定义shell

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

[[email protected] ~]# useradd znix -u 666 -M -s /sbin/nologin

[[email protected] ~]# grep znix /etc/passwd

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

[[email protected] ~]# id znix

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

useradd test10 创建一个test10用户 还会创建一个和用户同名的组

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

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

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

useradd -u 510 -g 513 -s /sbin/nologin user11 创建一个属于gid为513的用户user11 自定义shell为/sbin/nologin

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

[[email protected] ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

6:删除用户

5.2 删除用户userdel

userdel [-r] username

5.2.1 方法一  注释/etc/passwd

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

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

-r 会一并删除用户的home目录

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

[[email protected] ~]# userdel alex888

userdel: user alex888 is currently used by process 23823

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

第一步 检查进程

[[email protected] ~]# 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

[[email protected] ~]# kill -9 23864

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

[[email protected] ~]# ps -ef |grep 23864

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

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

[[email protected] ~]$ Killed

[[email protected] ~]#

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

[[email protected] ~]# userdel alex888

7:更改密码

5.2.3 常见参数

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

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

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

passwd 更改root密码

5.3 修改用户的信息 usermod

passwd username 更改某个账户的密码

5.3.1 查看用户的信息

[[email protected] ~]# grep znix /etc/passwd

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

8:sudo

5.3.2 为用户增加说明信息

[[email protected] ~]# usermod -c "Super User" znix

[[email protected] ~]# grep znix /etc/passwd

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

在/etc/sudoers 中加入需要执行此命令的账号flex    ALL=(ALL)       ALL

5.3.3 让用户属于新的家庭

[[email protected] ~]# id znix

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

[[email protected] ~]# usermod -g root znix

[[email protected] ~]# id znix

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

用户flex就能使用sudo命令

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

[[email protected] ~]# id znix

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

[[email protected] ~]# usermod -G root,oldboy znix

[[email protected] ~]# 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 交互式修改

[[email protected] ~]# 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

[[email protected] ~]# 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 命令

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

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

[[email protected] ~]# md5sum oldboy.txt

058c5119928950d06f48d901a101511a  oldboy.txt

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

[[email protected] ~]# md5sum oldboy.txt  > list.txt

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

[[email protected] ~]# md5sum -c list.txt

oldboy.txt: OK

 [[email protected] ~]# > oldboy.txt

[[email protected] ~]# 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等循环)

[[email protected] ~]# echo stu{01..3}|xargs -n1 -exec useradd

添加密码

[[email protected] ~]# echo 123456 |passwd --stdin stu01 stu02 stu03

第1章 查看 ip 的其他方法 ip 1.1 ip address == ip a 查看所有的网卡信息。 [[email protected] ~]# ip a 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueu...

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:CentOS用户账号管理,学习随笔

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。