Linux系统是一个多用户、多任务的操作系统!所谓的多用户是指多人同时使用系统资源、多任务则是指同时运行多个程序。
用户分为管理员和普通用户,普通用户又分为系统用户和登录用户。其中管理员的权限是最大的,管理员具有在有限资源的情况下给不同用户分配资源,以及对不同用户的监控、管理。系统用户仅运行服务程序,而登录用户是系统资源的正常使用者
在不同的CentOS版本上每个用户的用户标识(UID)也是不一样的。具有一定的限制。而管理员的UID是"0"。
如在,CentOS 5,6版本上 系统用户的UID是1-499 普通用户的UID是500+
CentOS 7.0版本上 系统用户的UID是1-999 普通用户的UID的1000+
实现用户账号的管理,要完成的工作主要有:用户账号的添加、修改、删除、密码管理、用户组的管理……等等,下面将会介绍到这些!
一、用户管理
用户账号的管理工作主要涉及到账号的添加、修改和删除。
1、添加新的用户账号使用"useradd"命令,常规选项如下。
-g:指定用户的用户组 -G:指定用户的附加组
-c:注释信息 -d:指定用户的家目录
-m:强制创建家目录 -s:用户登录的Shell名
例:
如上图所示,新建一个用户"lweim",其登录Shell名是"bin/ksh",主目录是"/home/lweim";另一个新建用户"slackware",其登录Shell是"/bin/bash",主目录是"/usr/slackware"
注意:新建用户"useradd"后面加"-d"和不加"-d"或加"-s"和不加"-s"是不同的。不加"-d"则是系统默认的家目录"/home/lweim"。加了"-d"则是指定的家目录"/usr/slackware"
不加"-s"则是系统默认的登录Shell,加"-s"则是指定的登录Shell
2、如过一个账号不在使用,可以从系统中删除掉,删除一个账号要使用到"userdel"命令,常规选项如下。
-r:一并删除家目录
例:
由图可知。在删除用户"wangtc"时没有加"-r",其还有家目录。
在删除用户"wangzix"时加了"-r",其家目录一并删除。
3.用户的修改。就是修改用户的相关属性。如家目录、用户组、登录Shell……等等,用户修改要使用"usermod"命令,常规选项如下。
-c:注释信息 d-:修改家目录的位置
-s:修改登录Shell名
例:
使用"usermod"命令后,用户"lweim"的家目录从"/home/lweim"变更成"/usr/lweim"。登录Shell名从"/bin/ksh"变更成"/bin/bash"
4.密码管理;
用户管理的一项重要内容就是密码管理,超级用户(管理员)可以改变自己和其他用户的密码,普通用户只能修改自己的密码。其修改密码需要用到"passwd"命令,常规选项如下;
-l:锁定密码 -u:解锁密码
-d:清除密码
例:
二、用户组管理
每一个用户都有一个用户组,也可以拥有多个附加组(即额外组)。用户组的管理涉及到用户组的添加、修改和删除。
1、增加一个新的用户组使用"groupadd"命令,常规选项如下;
-g:指定新用户组的组标识号 -r:创建一个系统组
例:
第一条命令是创建了一个名为"group1"的用户组,其组标识号为1001;
第二条命令是创建了一个名为"group2"的系统组,其组标识号为986;
2、修改用户组的属性使用"groupmod"命令,常规选项如下;
-g:为用户组指定一个新的组标识号 -n:为用户组改一个新名字
例:
此命令是将用户组"group4"命名为新的名字"group5",且用户组标识号从"2223"变更成"3333"。
3、如果要删除一个已有的用户组,要使用"groupdel"命令。
例:
此用户的命令是将用户组"group5"删除。
三、权限管理
Linux是一种典型的多用户系统,不同的用户处于不同的地位,也就具有不同的权限。每位用户访问同一文件或目录的权限也就不同。
我们可以使用命令"ll"或"ls -l"来显示一个文件或目录的属性及所属的用户和组。常规选项如下;
例:
实例中,目录"etc"文件的第一个属性用"d"来表示,"d"在Linux中代表该文件是一个目录文件。其他属性如下;
[-]:表示文件
[l]:表示为链接文档
[b]:表示为装置文件里面的可供存储的接口设备(可随机存取装置)
[c]:表示为装置文件里面的串行端口设备,例如键盘、鼠标。
"",除去第一个字符"d",接下来的字符中,以三位为一组,左三位是属主的访问权限(user)、中三位是属组的所有用户的访问权限(group)、右三位是其他用户的访问权限(others)。且均为[rwx]的三个参数组合。其中"r"代表可读权限、"w"代表可写权限、"x"代表可执行权限。"-"代表没有任何权限。
注意:这三个权限的位置不会改变,且存在两种状态“要么有权限(用1表示)、要么没权限(用0表示)”。八进制的数都是由三位二进制的数组成,如下;
---:000 0
--x:001 1
-w-:010 2
-wx:011 3
r--:100 4
r-x:101 5
rw-:110 6
rwx:111 7
例:
目录"etc"的权限是[rwxr-xr-x];
user=rwx=5 group=r-x=5 others=r-x=5
即目录"etc"的权限可表示为"755"
1、想要变更权限,有三种方法。都需要使用"chmod"命令,常规选项如下;
-R:进行递归的变更,即目录本身和目录以下的文件的权限会一同改变。
(方法1):使用"u=,g=,o=或ug=等等"的方法来改变权限!
例:
上图所示,此命令使"etc"的权限从[rwxrwxr-x]变更成[rw-rw--x]。但是没有更改目录下的文件。想要更改连同目录下文件的属性一起更改,需要使用"-R"选项。如下图
(方法二):使用"u+,g+,o+或ug+等等"的方法来改变权限!
例:由(方法1)中的图所知目录"etc"的权限是[drw-rw---x],现在想要变更权限为[drwxrwxr-x],方法如下:
例:
由上图可得,目录本身即目录下文件的权限都变更为[drwxrwxr-x]
(方法三):上面说到,每一个权限都可以表达成一个八进制的数。例如"775"可表示权限为[drwxrwxr-x]、664可表示权限为[drw-rw-r--]。所以我们可以依据这个来改变目录及文件的权限。如果想把文件及目录的权限改为770(drwxrwx---),则方法如下;
例:
图中显示目录及目录下的文件的权限都改变为770.即[drwxrwx---];
注意:方法一和方法二中的"u="和"u+"是不同的。
"u="是某一组中的三位权限同时改变
"u+"是改变某一组中某一位的权限
例如:权限为"r-x-wx---"
"u=r"则显示为[r---wx---]
"u+w"则显示为[rwx-wx---]
2、更改目录或文件的属组需要用到"chgrp"命令,常规选项如下。
-R:目录下的所有文件的属组一同改变。
例:
图中显示,目录"etc"及目录下所有文件的属组都从"root"变更成"mageedu"
3、更改目录或文件的属主需要用到"chowm"命令,也可以同时更改目录或文件的属组。常规选项如下;
-R:目录下的所有文件的属组一同改变。
例:
图中目录"etc"及目录下所有文件的属主都从"root"变更成"wtc",属组都从"mageedu"变更成"lweimin"。