
root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经所用的用户,只有root可以为普通用户修改密码等等。
2、系统用户
系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999。
3、普通用户
普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。
(二)用户和用户组关系
在Linux系统中,每个用户必定属于一个主组,默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。
(三)用户和用户组配置文件
Linux系统下用户和用户组相关的配置文件主要有以下个:
1、/etc/passwd
该配置文件内保存有所有的用户信息,如下所示:
在本配置文件中以冒号分割了用户的信息,从左到右依次是:
用户名:登录密码(以X代替):UID:GID:家目录:shell环境
在本文件中,凡是shell环境是/sbin/nologin的为不可登录系统用户
2、/etc/shadow
该配置文件保存了用户的密码信息,如下所示:
在该文件中,也是以冒号区分各个信息,可以看出,其中只有pzz和root用户拥有密码。
※3、/etc/group
该文件保存了用户组的信息,但是该文件不是很常用,有兴趣的同学可以自行查阅。
※4、/etc/gshadow
该文件保存了用户组的密码(其实用户组也没有密码)信息,但是该文件更不是很常用,有兴趣的同学可以自行查阅。
5、/etc/login.defs
该文件可以设置密码过期时间,密码最大长度限制等内容。
二、Linux用户和用户组管理相关命令
我们通常通过以下命令对Linux的用户和用户组进行管理。
(一)useradd添加用户
useradd命令一般用于添加用户,该命令常见参数如下:
-M 表示不创建家目录
-s 表示指定用户的shell环境
-u 表示指定用户的uid
-g 表示指定用户的gid(需要指定的gid存在)
-p 指定用户的密码(必须以密文的方式指定)
-G 表示指定用户的附属组(需要指定的gid存在)
useradd命令使用示例:
useradd Linux
useradd apache -M -s /sbin/nologin
登录后复制
上面第一条命令表示创建Linux的普通用户,第二条命令表示创建apache的系统用户。
(二)userdel删除用户
userdel命令可以删除用户,后面直接跟用户名可以直接删除该用户。但是,我们一般在删除用户时都会添加-r参数,表示连同该用户的家目录一起删除。
userdel命令执行示例如下:
userdel -r linux
登录后复制
在不删除家目录的情况下,删除该用户后如果想要再创建同名用户时则会失败,如下所示:
并且删除家目录也会被拒绝,如下所示:
删除用户还需要注意一个问题,就是删除该用户后,该用户创建的文件的属主和属组就会变成UID和GID显示,如下所示:
(三)usermod修改用户
usermod命令常用于修改用户的信息,常用参数如下:
-d 表示重新指定用户的家目录
-g 表示重新指定用户的(主)组
-G 表示给用户添加附属组
-L 表示锁定用户,被锁定的用户无法登录
-U 表示解除对用户的锁定
注意:如果在锁定用户后使用passwd命令修改该锁定用户的口令,则该用户会被自动解锁。
usermod命令给用户增加附属组如下所示:
注意,在上述 *** 作中,必须首先存在一个GID为1001的组。
(四)其他常用命令
1、su命令
su命令用于切换用户和重新登录,直接执行命令su可以重新登录,在Linux系统中,一些配置文件生效需要执行该命令。用户的重登录过程非常快,执行后立马可以完成。使用su命令切换用户,可以有两种方式:
su newuser
su - newuser
登录后复制
这两条命令都可以切换新用户,但是区别在于采用上一条命令切换后当前目录不会发生改变,下一条命令切换后当前目录会切换成该用户的家目录。
2、id命令
id命令可以显示用户的信息,包括UID、GID等信息,id命令后面如果不加其他的命令参数表示查看的是当前登录用户的信息,如果加上其他用户的用户名则查询的是该用户的用户信息。
3、passwd命令
passwd命令用于修改用户的口令。每个用户都可以执行passwd命令修改自己的口令,root用户可以执行命
用xshell登陆服务器,cd切换到服务器中svn的项目仓库目录中,然后切换到conf文件中(也可使用xftp),会看到3个文件,分别是
authz、passwd、svnserve.conf
首先编辑svnserve.conf主配置文件,主要是对以下几项修改
如果后面大家要用到组权限的话,大家看authz-db = authz 前面应该会有 # 号键,记得去掉,这样才能在下面分配组权限的时候,才能起作用。
建立svn用户以及密码:
配置组:
配置各个组权限:
保存修改后的svnserve.conf ,passwd,authz 三个文件
然后用下面的命令重启一下svn
查看svn进程:ps -ef | grep svn 或者 ps aux | grep svn
强制杀死进程:kill -9 进程号
重启svn(/home/svn为自己的目录地址):svnserve -d -r /home/svn
最后看看是不是成功了,可以在本地测试一下,看看账户是否可用,对应的权限是不是已经有了,不是该组的用户应该不能访问没有赋予权限的目录的
helloword仓库:
现在对于def项目中,我不想让产品部的人看到开发部和数据部的目录下面的数据怎么办?可以通过 = 来设置,没有设置权限的人统统不能访问, = 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响
Linux中每个用户都要属于一个或多个组,有了用户组,就可以将用户添加到组中,这样就方便管理员对用户的集中管理。 Linux系统中用户组分为root组、系统组、普通用户组三类。当一个用户属于多个组时,这些组中只能有一个作为该用户的主属组,其他组就被称为此用户的次属组。 组基本信息在文件/etc/group中;组密码信息在文件/etc/gshadow中。通过命令:cat /etc/group、cat /etc/gshadow可查看文件内容。
各用户组中,以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:
组名:密码:GID:该用户组中的用户列表
而在gshadow文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符,分为 4 个字段,每个字段的含义如下:
组名:加密密码:组管理员:组附加用户列表
root用户可以直接修改/etc/group文件达到管理组的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。
下面使用案例分别讲解这些命令:
添加用户组的命令是 groupadd,命令格式如下:
groupadd [ -g gid [ -o ] ] [ -r ] [ -f ] group
参数说明:
-g:指定新建工作组的 id;
-r:创建系统工作组,系统工作组的组ID小于 500;
-K:覆盖配置文件 "/ect/login.defs";
-o:允许添加组 ID 号不唯一的工作组。
-f,--force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
示例:创建一个新的组,并添加组 ID。
[root@VM-4-4-centos ~]# groupadd -g 888 newgroup
此时在/etc/group文件中产生了一个id为888的项目:
删除用户组时,可用groupdel(group delete)指令来完成。倘若该组中仍包括某些用户,则必须先删除这些用户后,方能删除组。 注意:删除的组不能为主属组! 命令格式:
groupdel [组名]
示例:删除用户组 newgroup
[root@VM-4-4-centos ~]# groupdel newgroup
此时再查看/etc/group文件时可以看到用户组newgroup已经不存在,删除成功!
要更改用户组识别码或名称可使用 groupmod 来完成。命令格式:
groupmod [ -g <群组识别码> <-o >] [ -n <新群组名称 >] [原群组名称]
参数说明 :
-g <群组识别码> 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n <新群组名称> 设置欲使用的群组名称。
示例:创建用户组newgroup并修改其名称为modifiedgroup
[root@VM-4-4-centos ~]# groupadd newgroup
[root@VM-4-4-centos ~]# groupmod -n modifiedgroup newgroup
查看/etc/group文件,只存在名称为modifiedgroup的用户组,修改成功!
gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。命令格式:
gpasswd [可选项] 组名
可选项参数 :
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
示例1:将用户yangwei添加到组modifiedgroup中
[root@VM-4-4-centos ~]# gpasswd -a yangwei modifiedgroup
此时查看/etc/group文件发现组 modifiedgroup中出现用户yangwei
示例2:将用户yangwei从组modifiedgroup中给删除
[root@VM-4-4-centos ~]# gpasswd -d yangwei modifiedgroup
再次查看/etc/group文件发现用户yangwei已经不存在。
当需要在不同的群组下工作的时候我们需要进行切换群组 *** 作,这个 *** 作由newgrp指令来完成。命令格式如下:
newgrp [群组名称]
注意!当前用户必须都是两个群组的成员,否则切换群组时需要输入切换组的组密码,这时候当前用户作为临时成员在切换组下工作,所创建的文件全都属于切换组。
示例1:用户yangwei不属于群组modifiedgroup,请将当前工作组切换为modifiedgroup。
示例2:将用户yangwei添加到组modifiedgroup中,并切换工作组为modifiedgroup。
总结:Linux用户组管理需要掌握最基本的几个命令及其选项参数: groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)