Linux 用户/用户组权限设置与变更

1、用户账号管理

Linux是一个用户、多任务的操作系统;在讲Linux账号及账户组管理之前,先简单了解一下多用户、多任务操作系统的基本概念。

1.1 linux系统用户角色划分

用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和GID识别的;特别是UID,在运维工作中,一个UID是唯一标识一个系统用户的账号。
用户账户
(1)、超级用户:
默认是root用户,其UID和GID均为0。在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,
拥有最高的管理权限。在生产环境,一般禁止root账号远程登录SSH连接服务器,以加强系统安全。
(2)、普通用户:
这类用户一般是由具备系统管理员root的权限的运维人员添加的。
(3)、程序用户
与真实用户区分开来,这类用户的最大特点是安装系统后默认就会存在的,且默认情况不能登录系统,它们是系统正常运行必不可少的,
他们的存在主要是方便系统管理,满足相应的系统进程都文件属主的要求。例如系统默认的bin、adm、nodoby、mail用户等。由于服务器角色的不同,
有部分用不到的系统服务被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了的服务对应的虚拟用户也是可以处理掉的(删除或注释)。

1.2 Linux的单用户多任务

在Linux下,当你登录后,你也可以同时开启很多的服务任务和进程,而各自服务都会跑的很好却对其他任务没有任何影响,这种登录一个用户登录系统执行多个服务任务和进程的情况,就称为单用户多任务。

1.3 Linux的多用户多任务

有时可能是很多用户同时用同一个系统,如公司几十个运维人员,每台机器都可以和被若干个运维人员登录部署或解决相关故障问题,但并不是所有的运维人员都要做同一件事,所以就有了多任务、多用户的情况。

值得注意的是:多用户、多任务并不是大家同时挤到一起,在一台机器的键盘和显示器前来操作机器,多用户可能是通过SSH客户端工具等远程工具等远程登录服务器来进行,比如对服务器的运程控制,只要具有相关用户的权限,任何人都是可以上去操作访问服务器。

2、账户(user)和账户组(group)

2.1 用户和用户组的对应关系

用户和用户组的对应关系有:一对一、一对多、多对一和多对多.
一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。比如,root。
一对多:即一个用户可以存在多个组中,这个用户就具有这些组。
多对一:即多个用户可以存在一个组中,这些用户这些组的共同权限。

多对多:即多用户可以存在于多个组中。并且几个用户可以归属相同的组;其实多对多的关系是前面三条的扩展。

2.2 用户及用户组配置文件介绍

与用户相关的配置文件

/etc/passwd:  #用户的配置文件, 保存用户账户的基本信息
/etc/shadow  #用户影子口令文件

用户的配置文件/etc/passwd

[root@Web ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

与用户组相关的配置文件

/etc/group  #用户组配置文件
/etc/gshadow  #用户组的影子文件

用户组配置文件/etc/group

/etc/group 文件是用户组的配置文件,内容包括用户与用户组,并且能显示用户归属哪个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特性。如果某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进入。

[root@Web ~]# ls -l /etc/group
-rw-r--r--. 1 root root 832 4月  11 14:13 /etc/group

3、Linux用户管理命令

Linux是一个多用户多任务的操作系统,有着很丰富的用户管理工具,这些工具包括用户的查询。添加、修改、以及不同用户之间相互切换等;通过这些工具,我们可以简单、方便、安全的进行用户管理工作。

添加用户的命令useradd和adduser,这两个命令所能达到的效果是一样的。当然除了useradd和adduser命令意外,我们还能通过修改用户配置文件/etc/passwd和/etc/group及手动创建的办法来直接添加用户,不过不推荐这个方法。这里推荐大家统一使用useradd命令。

3.1 用户添加账户

当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd文件中所配置的信息建立用户的家目录,并复制/etc/skel中的所有文件(包括隐藏的环境配置文件)到新用户的家目录中。
useradd语法:

[root@localhost ~]# man useradd
NAME
       useradd - create a new user or update default new user information
SYNOPSIS
       useradd [options] LOGIN
       useradd -D
       useradd -D [options]

当不加-D参数时,useradd指令使用命令列来指定新账号的设定值和使用系统上的预设值(指前文提到的/etc/login.defs和/etc/default/useradd等配置文件)。新用户账号将产生一些系统档案,如用户目录的建立,拷贝起始档案等,这些均可以利用命令列选项指定。

-c comment :新账户的password的说明栏   
   -u:  指定 UID 标记号。这个值是唯一的,除非用-o选项。数字不可为负值
    -d:  指定宿主目录,缺省为 /home/用户名
    -e:  指定帐号失效时间
  -f:   账户过期几天后永久停权。
    -g:  指定所属的基本组(组名或GID)
    -G:  指定所属的附加组(组名或GID)
  -m:   用户目录如不存在则自动建立。
    -M:  不为用户建立并初始化宿主目录。优先于/etc/login.defs文件的设定。
  -n:   默认情况下,用户的用户组和用户的名称会相同,如果命令加了-n参数,就不会生成和用户同名的用户组
  -r:   用来建立系统账户。系统账户的UID会比定义在/etc/login.defs的UID_MIN来的小。
    -s:  指定用户的登录Shell

当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd中所定义的参数或规则,根据设置的规则添加用户,同时会向/etc/passwd和/etc/group文件内添加新建用户和用户组记录。

在这个例子中,我们添加了一个名为zhonggy系统用户,当查看/home/目录时,会发现系统自动建立了一个zhonggy的目录。

我们再来看/etc/passwd文件中有关新用户zhonggy的记录:

在这个例子中,我们添加了一个名为zhonggy系统用户,当查看/home/目录时,会发现系统自动建立了一个zhonggy的目录。
我们再来看/etc/passwd文件中有关新用户zhonggy的记录:

#行中的505:505就是/etc/login.defs文件内容预设的。

提示:有很多的朋友习惯先通过cat来读取/etc/passwd文件,然后再通过grep来抽取zhonggy字段,也可以达到同样的目的,但在写法上就逊色很多了。

3.2 用户密码设置

普通用户和超级用户都可以运行passwd命令,但普通用户只能更改自身的用户密码。超级用户则可以设置或修改所有用户的密码

当直接passwd命令后面不接任何参数或用户名时,则表示修改当前登陆用户的密码。

      -d    清空密码,仅root能操作
     -f   强制操作,仅root能操作
     -k    保留即将过期的用户在期满后仍能使用
      -l    锁定用户账户;锁定用户无权更改其密码,仅root能操作
      -S    查看用户账户的状态
      -u    解锁用户账户;仅root能操作
  --stdin    从标准输入取密码

修改用户密码有效期:chage
语法:

 -d:将最近一次密码设置时间设置为"最近时间"
 -E:指定账号过期时间,YYYY-MM-DD
 -I:指定当密码失效后多少天锁定账号;
 -l:列出密码有效期信息
 -m:指定密码的最小天数
 -M:指定密码的最大天数
 -W:将过期警告天数设置为"警告天数"

3.3 删除用户账户

-r 连同主目录一起删除

3.4 添加组账号命令

格式:groupadd [-g GID] 组名

-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:添加系统组,低于499系统账号。

3.5 删除用户组命令

格式:groupdel 组名
删除的目标组不能是用户的基本组

3.6 管理组

格式:gpasswd [选项] 组名
选项:

    -A    定义组管理员列表
    -a    添加组成员,每次只能加一个
    -d    删除组成员,每次只能删一个
    -M    定义组成员列表,可设置多个,用“,”分开——定义的组成员必须是已存在用户的
    -r    移除密码
 

3.7 更改群组和名称

-g GID
-n GRPNAME

3.8 修改用户账号的属性

格式:usermod [选项] 用户名

-c:指定注释信息
-d -m:-d一般跟-m使用,既指定新的家目录位置,又移动其此前的文件至新的家目录当中
-e:指定账号失效时间
-g:指定所属的基本组(组名或GID)
-a -G GID:不使用-a选项,会覆盖此前的附加组;
-l:更改用户账号的登陆名称
-L:锁定用户账号
-s:指定用户登录Shell
-u:指定UID标志号
-U:解锁用户账号
chsh: 修改用户的默认shell
chfn:修改注释信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值