Linux中的用户管理(包含了创建、修改、删除、密码管理、用户身份切换)

1.概述

用户的管理就是对passwd、shadow、group三个文件的增删改。

增加一个用户,UID,账户名、家目录、shell程序。
新建的用户,默认的情况下是无法登录的。

创建一个用户的时候,默认情况下,会为其创建一个同名的用户组

2.用户创建

创建:

语法:useradd [选项] {UserName}

选项:

-d 目录

指定用户家目录

-g 用户组

指定用户所属的主用户组。

-G 用户组,用户组

指定用户所属的附加组。

-c comment

指定一段注释性描述

-s Shell程序

指定用户的登录Shell。有一个特殊的shell程序叫nologin,如果某帐号使用此shell,就表示用户不允许登录,该用户通常成为伪用户。

-u 用户号

指定用户的用户号

示例:

 1.创建一个普通用户,使用默认值方法

可参见:https://blog.csdn.net/qq_32224047/article/details/107302750

2.创建一个普通用户,其家目录是在/mytest/jerry,主组root,附加组tom,adm

注意:如果没有mytest这个目录,那么就会出错,创建失败,创建需要先把指定的目录创建好,为了保证正确,路径写绝对路径

传统上,adm组用于授予用户访问某种系统日志文件的权限.
参见例如ls -l / var / log.
sys组通常旨在为用户提供某种管理权限.
例如. archlinux使用该组进行杯子管理.其他分布表现不同.例如.在ubuntu上,lpadmin组用于杯子管理.这里的sys组仍然是定义的,但似乎未被使用.

# bash

useradd -d /mytest/jerry  -g root -G tom,adm jerry

指定用户的shell程序为/bin/sh,UID为80000

# bash

useradd -s /bin/sh -u 80000 test1

说明:虽然CentOS系统中默认的UID是65536个(0-65535),但是可以手动指定它的UID超出此范围。

测试再创建账户时UID会不会延续上案例的UID。

# bash

useradd test2

正常来应该按照上次创建用户的UID往后+1。但是80000已超过系统默认的范围,所以不会根据超出范围后UID进行+1延续。

创建伪用户(-s选项参考下表:伪用户一般在用户离职等情况下使用,让用户不能登陆,之后如果用户再次就职,可以修改用户类型,让其可以登陆):

# bash

useradd -s /sbin/nologin test3

3.修改用户

语法:usermod [选项] {UserName}

 选项:

补充:-a:仅和-G一块使用,将用户添加到附属组群。

-c comment

指定一段注释性描述 

-d

目录 指定用户主目录,如果目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组

指定用户所属的用户组。

-G 用户组,用户组

指定用户所属的附加组。如果想要在原有的基础上追加附加组,使用-aG的方式。

-s Shell文件

指定用户的登录Shell。有一个特殊的shell程序叫nologin,如果某帐号使用此shell,就表示用户不允许登录,该用户通常成为伪用户。

-u 用户号

指定用户的用户号

修改组,可以用组id  或者组名
---如修改为主组,可以采用下面两种写法
usermod -g 0 tom
usermod -g root tom

 示例:

修改test账户的UID。

# bash

usermod -u 9000 test1

修改账户的附加组为test、test1:

# bash

usermod -G test,test1 jerry

为账户追加附加组件root、adm

# bash

usermod -aG root,adm jerry

将test5的伪用户状态修改为正常普通用户

# bash

usermod -s /bin/bash test5

说明:test5之前的shell程序是/sbin/nologin

4.删除用户

语法:userdel [选项] {UserName}

选项

-r

删除账户的同时删除该账户的家目录

 示例:

# bash

userdel zhangsan

说明:该命令执行完成之后,在home目录下依然保留了zhangsan的家目录(如果上述命令已经执行,可以执行rm 直接删除这个被保留的家目录,因为用户信息相关的3个文件记录已经理删除记录了),对比下面加了选项 r 的。
userdel -r lisi

说明:该命令之后之后,home目录中的lisi目录会被一并删除,且不保留它的工作文件

一般来说,公司中删除账户的操作比较少,就算删除账户时,一般也不用-r的选项,因为人虽然离职,但是有可能此人还会回来继续任职~

如果员工离职,完全没有必要删除账户,可以使账户无法登录即可,比如nologin(可以通过上面步骤3恢复使用:usermod -s /bin/bash test5--test5标识之前是nologin 状态用户),锁定账户,删除密码等手段都是可以防止资料泄漏。

注:

Windows和Linux系统(其他系统没测试),没有密码的账户都是不允许通过远程的方式进行访问的

5.密码管理

语法:passwd [选项] {UserName}

选项:

-l

锁定账户

-u

解锁账户

-d

删除密码

 passwd 可以不跟选项、用户名,默认是修改自己的帐号密码。

修改他人密码,必须具备管理员权限(并不一定非要是root账户)

普通账户,只能修改自己的密码。

管理员修改他人的密码,不需要满足密码策略(如输入密码123就能通过,普通则不行)。

普通账户修改密码时,必须满足密码安全策略。-->as12AS!@

管理员修改他人密码:

passwd {UserName}

修改自己的密码

passwd

案例:

锁定zhangsan账户

# bash

passwd -l zhangsan

解锁zhangsan账户

# bash

passwd -u zhangsan

删除zhangsan账户密码

# bash

passwd -d zhangsan

案例中,锁定账户和删除账户密码都是可以达到不允许账户远程登录的效果,锁定后,密码输入正确与否都会提示密码不正确,相当于密码无效

6.用户身份切换

su {UserName}

表示切换用户之后,依然停留在当前目录

su - {UserName}

表示切换用户之后,去到该用户的家目录

 

 

su test :切换到test用户,退出则 是exit

普通用户切换root时,书写格式不需要写成su - root,直接su即可。案例:当前位置,在/root下# bashsu zhangsan该命令执行过后,切换到zhangsan账户,但是路径依然停留在/root目录下

# bashsu - zhangsan该命令执行过后,切换到zhangsan账户,同时会去到zhangsan账户的家目录下。

小总结,su与账户名之间加不加"-"区别在于路径。

 

7.shell程序的简单介绍

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言,bash是默认的shells中存了不同类型的shell,一般常用的命令是/bin/bash,shell

/bin/sh和/bin/bash都是Linux的shell程序,但是表现的形式不同,具体执行功能是一样的,可以理解为bash是sh的升级版,兼容版本

/bin/sh

-sh-4.1$

/bin/bash

[root@localhost tedu]#

从上面的内容可以看得出来,bash确实是比sh提供的内容更多,更为详细。

可以通过命令查看shells文件中不同的shell:cat /etc/shells   

主要用下面2个
/bin/bash
/sbin/nologin

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值