1.用户/组的基本概念
Users and groups:
. Every process (running program) on the system runs as a particular user.
系统上的每个进程(运行的程序)都是作为特定用户运行的
. Every file is owned by a particular user.
每个文件是由一个特定的用户拥有 .
. Access to files and directories are restricted by user.
访问文件和目录受到用户的限制
. The user associated with a running process determines the files and directories accessible to that process.
与正在运行的进程相关联的用户确定该进程可访问的文件和目录
2.用户管理
常用命令:
groupadd 创建新组,groupdel 删除组,useradd 添加用户,usermod 修改用户设定,userdel删除用户 passwd修改密码,chgrp 变更文件与目录的所属群组
2.1 用户组
[root@cuichengjie ~]# groupadd net01 //创建一个名为net01的组
[root@cuichengjie ~]# groupadd net02
[root@cuichengjie ~]# groupadd net03 -g 2000 //创建一个组为net04,指定gid为2000
[root@cuichengjie ~]# grep 'net03' /etc/group
net03:x:2000: //查看之后,确实gid确实为2000
[root@cuichengjie ~]# grep 'net01' /etc/group
net01:x:1003:
[root@cuichengjie ~]# grep 'net02' /etc/group
net02:x:1004: //用户组名:密码:GID:用户名
[root@cuichengjie ~]# gpasswd -a user01 net01 //将用户user01加入用户组net01中
Adding user user01 to group net01
[root@cuichengjie ~]# id user01 //查看用户user01组别uid,gid,groups
uid=1001(user01) gid=1001(user01) groups=1001(user01),1003(net01)
net01:x:1003:user01
[root@youngfit ~]# groupdel net01 //删除组net01
[root@youngfit ~]# groupmod -n puhua qf //修改用户组名称,qf为原组名,puhua为新组名
/etc/group文件详解
组名:
组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
口令:
口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。
组标识号(gid):
组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.
组内用户列表:
是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
2.2 用户
useradd 用户名 //创建一个用户
创建用户,会自动生成加载用户信息到一下四个文件中
/etc/passwd
/etc/group
/home/
/var/mail/
/var/spool/mail/ 两者相同,同时创建,同时删除
[root@youngfit ~]# grep 'user01' /etc/passwd /etc/shadow /etc/group
/etc/passwd:user01:x:1001:1003::/home/user01:/bin/bash
/etc/shadow:user01:!!:18254:0:99999:7:::
/etc/group:user01:x:1003:
/etc/passwd文件详解
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
用户名 密码 uid gid 用户信息说明列 主目录 shell
密码数据放在/etc/shadow 中所以此处显示为×
“用户名”
是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(😃,因为冒号在这里是分隔符。为了兼容起见,
登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
“口令”
一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是
一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的
口令字段中只存放一个特殊的字符,例如“x”或者“*”。
“用户标识号UID”
是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,
但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号,1~99由系统保留,
作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。
“组标识号GID”
字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。
“注释性描述”
字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段的格式并没有统一。
在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。
“主目录”(家目录)
也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是
该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
"用户的登录Shell"
[root@youngfit ~]# id user01 //查看用户uid,gid,所在组
uid=507(user01) gid=512(user01) groups=512(user01)
[root@youngfit ~]# ls /var/spool/mail/user01
/var/spool/mail/user01
小结: 如果创建一个用户时,未指定任何组(主组或附加组),系统会创建一个和用户名相同的组作为用户的Primary Group.
2.3 创建用户
指定选项
=======================================================================================
[root@youngfit ~]# useradd user02 -u 503 //创建用户usr02,指定uid
[root@youngfit ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell 带有/sbin/nologin无法远程登陆
[root@youngfit ~]# useradd user07 -G hr,it,fdus //创建用户,指定附加组
[root@youngfit ~]# useradd user10 -u 4000 -s /sbin/nologin //指定uid,并指定shell
=======================================================================================
[root@youngfit ~]# usermod -u 2000 user11 //修改用户的uid为2000
[root@youngfit ~]# useradd -d /opt/user11 user11 //创建用户并指定家目录
[root@youngfit ~]# usermod -d /home/user11 -m user11 //修改用户的家目录
=======================================================================================
[root@youngfit ~]# usermod -l yufei user01 //user01为原用户名,user11为新用户名
用户改名后,更改的是登陆名,家目录保持原来的名称
如果连同家目录一同修改,需要修改所更改用户的家目录
2.4删除用户
[root@youngfit ~]# userdel user10 //删除用户user10,但不删除用户家目录和mail spool等信息
[root@youngfit ~]# ll -d /home/user10/ //查看目录本身的详细信息
drwx------ 3 506 510 4096 09-01 21:14 /home/user10/
[root@youngfit ~]# ll /var/spool/mail/user10
-rw-rw---- 1 506 mail 0 09-01 21:14 /var/spool/mail/user10
[root@youngfit ~]# userdel -r user2 //删除用户user2,同时删除用户家目录和mail spool
在用户被添加进用户组后,对用户用userdel 删除,会有残留,再次创建该用户,由于用户组的存在,无法用userdel -r删除,需要用userdel -rf删除
2.5用户密码
[root@youngfit ~]# passwd alice //root可以给任何用户设置密码
[root@youngfit ~]# useradd zhuzhu
[root@youngfit ~]# su - zhuzhu
[zhuzhu@youngfit ~]$ passwd //普通用户只能给自己修改密码,而且必须提供原密码,root切换到普通用户,不需要密码
在切换密码时,所使用的密码为所需要登陆的用户的密码
3 组成员管理
注意:只针对已存在的用户
使用usermod时,群组名在前,用户名在后
使用gpasswd时,用户名在前,群组名在后
[root@youngfit ~]# usermod -G hr niuniu2 //覆盖原有的附加组
对/etc/group中的附加组组名,niuniu2为用户名 会对原有的附加组进行覆盖
//hr:x:2002:niuniu2
[root@youngfit ~]# usermod -G fd,it niuniu2
[root@youngfit ~]# usermod -aG hr niuniu2 //增加新的附加组,添加的附加组的用户需存在,第一为所加入的附加组,niuniu2作为hr的附加组,不会进行覆盖,而是新增
[root@youngfit~]# gpasswd -a jack wheel //usermod -aG hr zhuzhu 组放在后面,用户放在前面
[root@youngfit~]# gpasswd -M zhuzhu,maomao100 hr //-M:指定组成员net02:x:1004:user03,user03 给这些用户添加附加组
[root@youngfit~]# gpasswd -d zhuzhu hr //-d : 从组删除用户
gpasswd -A 如何使用
gpasswd -A 为指定管理员 可以指定一个用户添加到组
gpasswd -A 用户名 群组 指定 这个用户为 这个群组的管理员
该组的管理员可以在该群组进行用户的添加与删减
==其它选项管理==
[root@youngfit ~]# usermod -s /sbin/nologin niuniu2
net01:x:1003:user03
此处user03是用户名, net01是组名,组名也为用户名
在vim文件中 使用%时 替换的是每一行的第一个,而使用///g则会全部替换
g代表全局