映射到此登录名的用户_Linux用户管理 | 用户和组

6 Linux用户和组

6.1 Linux用户分类

在Linux系统中,由于角色不同,每个用户的权限和所能完成的任务各不相同。Linux用户分为如下的三类:

  • root用户在Linux系统中,root用户的权限是最高的。普通用户无法执行的操作,root用户都能完成,所以root用户也被称为超级管理用户。在Linux系统中,每一个文件、目录和进程都是归属于某一个用户的,如果没有获得用户的许可,其它普通用户是无法进行操作的。但root用户不受限制。root用户还可以超越任何用户和用户组群对文件或目录进行读取、修改和删除。可以控制程序的执行、中止;可以对硬件设备进行添加、创建和删除等操作。
  • 虚拟用户这类用户也被称为伪用户或假用户,这类用户不具备登录系统的能力,但却是系统运行不可缺少的用户。比如 bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的。
  • 普通用户这类用户能够登录系统,只能擦欧总自己目录的内容,权限有限,这类用户都是系统管理员创建的。

6.2 用户文件

用户的配置文件主要包括:

  • 用户信息文件:/etc/passwd
  • 密码文件:/etc/shadow
  • 用户组文件:/etc/group
  • 用户组密码文件:/etc/gshadow

Linux系统中对于用户的管理主要通过修改配置文件来实现的。

6.2.1 /etc/passwd文件

/etc/passwd文件是系统识别用户的一个文件,系统所有的用户都在这里有登录记载。在/etc/passwd文件中,每一行都表示一个用户信息,一行有7个段位,每个段位用 :分隔,如下所示,

[root@localhost etc]# cat passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

在文件中,各字段的含义如下:

  • 用户名:也称为登录名,在系统内用户名具有唯一性;
  • 密码:存放加密的密码,显示的是一个 x ,密码被映射到 /etc/shadow文件中;
  • 用户标识号:系统用一个整数标识用户ID,每个用户的UID都是唯一的,root用户的UID是0,普通用户的UID从500开始;
  • 组群标识号:系统内用一个整数标识用户所属的组群ID号,每个组群的GID是唯一的;
  • 用户名全称:用户名描述,可以不设置;
  • 用户宿主目录:用户登录系统后首先进入的目录;
  • 命令解释器:用户使用的shell类型。

6.2.2 /etc/shadow文件

/etc/shadow文件是 /etc/passwd的影子文件,这个文件并不由/etc/passwd文件产生,两个文件是对应互补的。shadow文件涉及内容包括用户及被加密的密码以及其它/etc/passwd文件不能包括的信息,比如用户的有效期限等。/etc/shadow文件包括9个段位,每个段位之间用 :分隔,文件内容如下

[root@localhost etc]# cat shadowroot:$6$hF5CilEiEl9bi7Nf$2zb9VcwN4m3fQL8oeRIyIAsIpJNEHx2Ktq4HuGZmH9mzIw8ZagH9DoUy345hF3SQeuNv9oJ9DMjC74ymL1Jts/::0:99999:7:::bin:*:17834:0:99999:7:::daemon:*:17834:0:99999:7:::adm:*:17834:0:99999:7:::lp:*:17834:0:99999:7:::sync:*:17834:0:99999:7:::shutdown:*:17834:0:99999:7:::halt:*:17834:0:99999:7:::mail:*:17834:0:99999:7:::operator:*:17834:0:99999:7:::games:*:17834:0:99999:7:::ftp:*:17834:0:99999:7:::

/etc/shadow各个字段的含义如下:

  • 用户名:这里的用户名和/etc/passwd中的用户名一致;
  • 密码:经过加密的密码,如上所示root加密后的密码为:$6$hF5CilEiEl9bi7Nf$2zb9VcwN4m3fQL8oeRIyIAsIpJNEHx2Ktq4HuGZmH9mzIw8ZagH9DoUy345hF3SQeuNv9oJ9DMjC74ymL1Jts/
  • 上次修改秘密的时间:从1970年1月1日算起到最近以此修改密码的时间间隔(天数);
  • 两次修改密码间隔最少天数:如果设置为0,则禁用此功能。指用户可以更改密码的天数;
  • 两次修改密码间隔最多的天数:如果设置为0,则禁用此功能,指用户必须更改密码的天数;
  • 提前多少天警告用户密码将过期:用户登录系统后,系统登录程序提醒用户密码将要过期;
  • 在密码过期后多少天禁用此用户:密码过期后系统不会让此用户登录;
  • 用户过期日期:指定用户过期的天数(从1970年1月1日开始的天数),如果这个字段的数值为空,账户永久可用;
  • 保留字段:目前为空,以备将来使用。

6.2.3 /etc/group文件

具有某种共同特征的用户集合就是用户组群,/etc/group 是用户组群的配置文件,内容包括用户和用户组群,并且能够显示用户属于哪个组群或哪几个组群。一个用户可以归属于一个或多个不同的用户组群,同一用户组群的用户具有相似的特征。比如把某一个用户加入到root用户组群,那么这个用户就可以浏览root用户宿主目录的文件,如果root把某个文件的读写执行权限开放,root用户组群所有用户都可以修改此文件;如果是可执行文件,root用户组群的用户也是可以执行的。/etc/group文件内容如下:

[root@localhost etc]# cat /etc/grouproot:x:0:bin:x:1:daemon:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:lp:x:7:mem:x:8:kmem:x:9:wheel:x:10:cdrom:x:11:mail:x:12:postfix

每个用户组群以添记录,一行有4个段位,每个段位用 :分隔,各个段位的定义如下:

  • 组群名:用户组群的名称;
  • 群群密码:存放的是组群密码,显示为x,密码映射到/etc/gshadow文件中;
  • 组群标识:系统内用一个整数ID号,每个组群的UDI都是唯一的,普通组群的GID从500开始。
  • 组群成员:属于这个组群的成员;

6.2.4 /ect/gshadow文件


/etc/gshasdow文件是 /etc/group的加密文件,文件中每个用户群都有一条记录,一行有4个段位,每个段位用 :分隔,文件的内容如下,

[root@localhost etc]# cat /etc/gshadowroot:::bin:::daemon:::sys:::adm:::tty:::disk:::lp:::mem:::kmem:::wheel:::cdrom:::mail:::postfix

每个段位的定义如下:

  • 组群名:组群的名称
  • 组群密码:组群加密后的密码
  • 组群的管理员:有权限对该组添加、删除用户
  • 组群成员:授予改组的成员列表,多个用户用 ,分隔。

6.3 实际操作在下面的示例中,我们建立一个fruit组,并在fruit组中添加了两个用户 apple和 banana,另外我们用建了一个tomato用户。建完这三个用户后,分别给他们修改密码。

[root@localhost ~]# groupadd fruit [root@localhost ~]# useradd -g fruit apple [root@localhost ~]# useradd -g fruit banana  [root@localhost ~]# useradd tomato  [root@localhost ~]# passwd tomato...[root@localhost ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash...apple:x:1008:1008::/home/apple:/bin/bashbanana:x:1009:1008::/home/banana:/bin/bashtomato:x:1010:1010::/home/tomato:/bin/bash

可以看到,apple 的UID=1008,banana 的UID=1009,两个用户的GID=1008。tomato的UID=1010,GID=1010。apple和banana是同一个组,而tomato和他们不是同一个组。下面对/home目录下的两个目录操作,使得banana目录和apple目录对所有用户都可执行。

[root@localhost home]# ls -l总用量 0drwx------. 2 apple  fruit  114 12月  9 02:54 appledrwx------. 2 banana fruit   83 12月  9 02:54 bananadrwx------. 2 tomato tomato  83 12月  9 02:54 tomato[root@localhost home]# chmod 777 banana[root@localhost home]# chmod 777 apple[root@localhost home]# ls -l总用量 0drwxrwxrwx. 2 apple  fruit  114 12月  9 04:39 appledrwxrwxrwx. 2 banana fruit   83 12月  9 02:54 bananadrwx------. 2 tomato tomato  83 12月  9 02:54 tomato

使用apple用户登录服务,在/home/apple目录下创建可执行程序 test.sh,并赋值执行权限,test.sh的内容如下:

[apple@localhost ~]$ cat -n test.sh     1  #!/bin/bash      2  echo "-------------------------------"      3  echo "Welecom $USER"      4  echo "This is a test program"     5  echo "Gooodbye"      6  echo "-------------------------------" [apple@localhost ~]$ chmod 754 test.sh [apple@localhost ~]$ ls -l  总用量 4  -rwxr-xr--. 1 apple fruit 157 12月  9 02:33 test.sh

语法:chmod abc filename

其中a,b,c各为一个数字,分别表示User、Group和Other的权限。r=4,w=2,x=1,分别表示读、写和执行权限。

  • 若要rwx属性则赋值为4+2+1=7;
  • 若要rw-属性则赋值为4+2=6;
  • 若要r-x属性则赋值为4+1=5;...

下面分别通过 root、apple、banana和tomato四个用户登录分别执行该程序,执行结果如下:

eed0fecf677e71eaf7bb99de0c511982.png
f30de4dd38a4cd1dacd1b5e3eb33cee6.png
5011e91667a769a46aaaa69b4bc031ae.png
8952855c7012224f6f2c7097e214de56.png

通过上述的输出结果可以看出,root、apple、banana和tomato四个用户前三个用户对于test.sh具有执行权限,而tomato只具有读的权限,这个和我们在上一节中讲的是一致的。

31c0c83f74a8b4fe963877461a467938.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值