Linux用户管理-操作命令

Linux用户管理-操作命令

(以下内容均为原创,如需转载请联系作者)

 

1、用户管理基本操作(增、删、查、改)

从上一篇的“基本概念”中,我们知道Linux把用户信息存放在几个关键的文件里,那几个文件就相当于用户信息数据库。而用户管理,就是对这个数据库进行增、删、查、改这几个操作。所以,接下来,咱们就从这几个角度来聊聊基本的操作。

 

【增】

Linux系统中,我们用 useradd 命令进行创建用户。

命令格式:useradd [选项] 用户名

[选项清单]

-c 备注信息。保存在/etc/passwd文件的备注字段中。

-d 家目录。登录时的默认目录,默认是在/home/目录下创建一个与用户名同名的目录。

-e 有效期。从1970.1.1开始的天数,保存在/etc/shadow记录的第八个字段。

-f 缓冲天数。保存在/etc/shadow记录的第起个字段。

-g 指定用户的主用户组。不配置的话默认创建一个与用户名同名的组,作为该用户的主用户组。

-G 指定用户的附加用户组。

-m 自动创建用户的家目录。默认配置是自动创建的。

-M 不自动创建用户的家目录。如果useradd的时候加上这个选项,即使用了-d选项,家目录也不会自动创建的。

-n 不创建与用户名同名的用户组。如果使用这个选项,且没有为用户指定-g/-G用户组,那么该用户将属于默认的用户组(我这里是users,GID为100)。

-r 创建系统用户。Linux用户分为超级用户、系统用户、普通用户三种类型,系统用户一般只用于程序运行。系统用户不会创建默认的家目录。

-s 指定用户登录后的默认启动程序。也就是/etc/passwd的最后一个字段,在上一篇有聊到详细内容。

-u 指定用户的UID。UID也就是用户的ID号。

-D 变更预设值。当我们用最简单的命令 useradd test 创建一个test用户时,即使没有指定家目录、没有配置用户组时系统会为我们默认创建家目录和用户组,那么这些缺省值是在哪里设定,怎么设定的呢?这就要用到 -D 选项了。useradd -D 可以查看当前系统的默认值配置情况,useradd -D 选项,可以更改默认值配置。比如,更改默认的启动程序,useradd -D -s /bin/tsch ,当你再新创建用户时,该用户的默认启动程序就会变为你变更的预设值。

 

新创建的用户,如果不设置密码是无法登录系统的。我们可以用passwd命令为其设置初始密码,用管理员的身份执行命令 # passwd 用户名 ,然后按照提示进行输入密码即可。新用户进入系统后,用passwd命令也可以修改自己的密码。修改自身密码的时候,不需要用管理员身份,执行命令 $ passwd 即可修改自己的密码。

例如:

创建test用户 # useradd test

设置test密码 # passwd test

test修改密码 $ passwd

 

【删】

删除用户的命令是 userdel ,userdel的用法比较简单。

命令格式: userdel [选项] 用户名

[选项清单]

-r 删除家目录和相关文件

-f 强制删除用户

 

【查】

Linux并没有提供查询用户的命令。但是从上一篇的基本概念中我们可以知道,/etc/passwd文件存储的是用户的基本信息,所以我们可以查看/etc/passwd文件每条记录的第一个字段,从而获取到当前系统的所有用户账号。当然也可以查看/etc/shadow文件来查看某个用户的状态。

# cat /etc/passwd

# cat /etc/passwd | awk -F ':' '{print $1}' # 这个命令可以更直观的查看系统的用户清单

 

【改】

usermod命令可以修改用户的基本信息,比如用户名、默认启动程序等等。

命令格式:usermod 用户名 [选项]

其选项参数包括useradd命令的所有选项,而且含义也一样。所以,下面咱就聊点usermod独有参数。

-l 更改用户名。比如,usermod test -l test1 ,这样就把test用户的账号改为了test1,但是如果test用户处于活动中,这个更改是无法成功的。

-L 锁定用户密码。锁定之后,该用户就无法登录了,但是如果已经登录的用户,被锁定后还可以进行正常操作。被锁定的用户,/etc/shadow文件的记录中,密码字段会标志以"!"开头。

-U 解锁用户密码。

 

用户的操作命令基本就是上面这些了,下面聊聊用户组的基本命令。

 

2、用户组的基本操作

在上一篇中我提到过,用户组其实就是一个角色,主要是为了方便权限的控制。对于角色的控制,同样有增、删、查、改几个基本操作。

 

【增】

再次说明一下,创建新普通用户的时候,如果不选择 -n 禁止创建同名用户组,或者用 -g 指定一个非同名的主用户组,系统会为新用户创建一个同名的用户组。用户组的记录文件为 /etc/group ,这里就不再多说了。

命令格式:groupadd 用户组名称 [选项]

[选项清单]

-g 指定用户组的GID-用户组ID。

-r 将该用户组设置为系统用户组。

-K 创建用户组时,会有一些默认的规则,比如 GID_MAX,-K这个选项表示覆盖修改这些默认的值,与useradd -D 作用类似。

 

【删】

用户组的删除就比较简单了,用户组被删除之后,组内的用户也就失去了对应的权限。

命令格式:groupdel 用户组名

 

【查】

用户组的查询主要有两个情况:查询用户组的所有成员、查询用户所属的用户组。

想要查询用户组的所有成员,我们可以直接查看 /etc/group 文件记录中的最后一个字段;

如果想要查询某个用户所属的组,我们可以用 groups 命令。

命令格式:groups [用户名]

如果用户名为空,表示查询当前用户的所属用户组;

如果用户名不为空,表示查询该用户的所属用户组。

 

【改】

命令格式:groupmod 用户组名 [选项]

[选项清单]

-g 重新设置用户组的GID值。

-n 重新设置用户组的名称。

 

3、用户与权限

Linux把所有的资源都当成文件,用户要运行程序、编辑文件,都必须拥有相应的权限。所以用户的权限其实就是Linux系统的文件权限。

我们用 ll(或者ls -l) 命令查看一个文件的信息时,可以发现每个文件记录的前都会有一个"-rw-------"的字符串,这个字符串就是权限属性字符串,他控制着该文件的读写运行权限配置。

权限属性一共十个字符

第一个字符 表示文件类型。"-" 表示文件;"d" 表示目录;"l" 表示链接(可以简单理解为windows操作系统的快捷方式)

第2-4个字符 表示文件所有者的权限

第5-7个字符 表示文件所有者所属用户组的成员对该文件具有的权限

第8-10个字符 表示其他用户的权限

权限由 r/w/x 三种组成,r 表示读;w 表示写;x 表示执行。比如 "rw-" 则表示可读写,但是不能执行。后面的9个字符,每三个为一组。每组三个字符,不能缺少,且要按照rwx的固定顺序排列,如果不具有该权限,则用 "-" 代替。

rwx也可以用数字来表示,r = 4;w = 2;x = 1;- = 0,因此 rwx = 4+2+1 = 7,又如 r-x = 4+0+1 = 5,权限属性 rw-r--r-- = 644。

 

[修改文件权限]

修改文件权限的命令为 chmod 。

命令格式:chmod 权限属性 文件名称

比如,我们要将文件 use.info 的权限改为了仅自己可读写,其他都不能读写

$ chmod 600 user.info # 用数字权限来控制会方便很多

 

4、sudoer配置

普通用户有时候也会需要用到root权限,来执行一些操作。我们可以写一些脚本,然后给这个脚本临时权限(就像passwd命令修改/etc/shadow文件一样),普通用户执行这个脚本即可达到目的。但是,我们不可能写很多脚本来满足所有的需求。所以,普通用户需要切换到root用户,然后执行操作。但是新创建的用户直接执行命令 "sudo su -" 系统会提示"*** 用户不在 sudoers 文件中 ....",这就需要我们为新创建的用户添加sudo权限。

添加sudo权限有多种方式,比如创建一个sudoer用户组,然后给sudoer组添加切换sudo的权限,然后将需要的用户添加到sudoer用户组即可。这里我们聊一下最简单的,直接为某一个用户添加切换sudo的权限,其实很简单,就是编辑一下 /etc/sudoers 这个文件,找到 "root ALL=(ALL) ALL" 这一行,在下面为该用户添加一条记录即可。其中,开头的root是用户名,需要改成目标用户名。

当然,上面的配置使得用户在切换到root账号后,拥有所有的权限,这是不安全的。sudoers文件可以进行权限控制,可以参考一下:https://www.jb51.net/article/113902.htm,这里就不扩展了。

 

5、一些练习

下面我们做一下简单、平时比较常用的练习

 

[创建一个不能登录的用户]

创建一个系统用户,并不创建家目录。这样,该用户就无法登录了。命令如下:

# useradd -r test -M

当然,我们还可以编辑 /etc/passwd 文件,将test用户的最后一个字段改成 /sbin/nologin

 

[创建一个新用户,并强制要求其第一次登录时修改密码]

# useradd test # 创建一个新用户

# passwd test # 为期设置初始密码

# usermod -L test # 锁定用户密码

# chage -d 0 test # 使test用户密码过期

# usermod -U test # 解锁test用户密码

 

[临时禁用一个用户]

# usermod -L test # 锁定用户密码,用户不能登录

# usermod -U test # 接触

 

另外,欢迎关注本人小程序,内容更新及时完整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值