一、管理用户账号和组账号
1、用户账号和组账号的概述
Linux基于用户身份对资源访问进行控制
用户账号
超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似与Windows操作系统的Administrator用户,只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号(考虑到安全性方面)
普通用户:普通用户账号需要由root用户或者其他管理员用户创建,拥有的权限收到一定限制,一般只有在用户自己的宿主目录中拥有完整权限。系统用户 UID:1-999(Centos 7版本)
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如:bin、daemon、ftp、mail等,伪用户一般不会用来登录系统,它主要是用于维持某个服务的正常运行,如:ftp、apache。
UID:即每个用户的身份标识,类似于每个人的身份证号码。
管理员组:root,0
普通组:GID
系统组:1-999
普通组:1000+
表示该账户需要密码才能登录,为空时,账户无须密码即可登录
2、组账号
基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。
基本组(私有组)
每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)
附加组(公共组)
若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)
UID和GID:
UID(User IDentity,用户标识号)
管理员:0
普通:1000+
程序:1~999
GID(Group IDentify,组标识号)
3、passwd文件账号记录详细说明
root:x:0:0:root:/root:/bin/bash
第一列root:账号
第二列x:是否需要密码登录
第三列0:用户ID(UID)
第四列0:组ID(GID)
第五列root:用户(管理的一个组)
第六列/root:宿主目录
第七列/bin/bash:是否允许登录(如果是/sbin/nologin的话是不允许登录)
cat /etc/shadow(影子文件)
4、chage命令
用来修改账号和密码的有效期限,针对目前系统已经存在的用户。
chage [选项] 用户名
选项:
-m 密码可更改的最小天数,为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-w 用户密码到期前,提前收到警告信息的天数。
-E 账号到期的日期,过了这天,此账号将不可用。(chage -E 时间 用户名)
-d 上一次更改的日期。
-i 停滞时间,如果一个密码已过期这些天,那么此账号将不可用。
-l 列出当前位置,由非特权用户来确定他们的密码或账号何时过期。
5、组的分类
当一些用户需要做同一件事情的时候,把他们加到一个组中便于管理
基本组:一般新建用户的时候会随用户自动创建,与用户同名
附加组:一般一个用户可以有0个或多个附加组
一个用户只有一个基本组,可以有多个附加组
6、useradd命令
添加用户账号
选项:
-u:指定用户的UID号,要求该UID号码未被其它用户使用
-d:指定用户的宿主目录位置(当与-M一起使用时,不生效)
-e:指定用户的账号失效时间。
-g:指定用户的基本组名(或使用GID号)
-G:指定用户的附加组名(或使用GID号)
-M:不建立宿主目录
-s:指定用户的登录Shell环境
创建一个辅助管理员账号admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”
7、扩充
调用管道符,给liji用户设置密码123123,为了方便系统管理,passwd命令提供了--stdin选项,用于批量给用户设置初始密码。
echo “123123” | passwd --stdin liji
--stdin 标准输入
-d:清空指定用户的密码,仅使用用户名即可登录系统
-l:锁定用户账户
-s:查看用户账户的状态(是否被锁定)
-u:解锁用户账户
8、usermod命令
usermod:修改
参数:
-u:修改用户的UID号
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间
-g:修改用户的基本组名
-G:修改用户的附加组名
-s:指定用户的登录Shell
9、userdel命令
userdel:删除用户
userdel -r 用户
添加 -r 选项时,表示连用户的宿主目录一并删除
不加-r选项的时候,会删不干净
二、管理目录和文件的属性
1、组账号文件
与组账号相关的配置文件有两个,分别是/etc/group和/etc/gshadow。前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息,某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体。
grep “^root" /etc/group 检索root组包括哪些用户
grep "root" /etc/group 检索哪些组包括root用户
2、groupadd命令
groupadd:添加组命令
groupadd [-g GID] 组账号名
groupadd -g 1100(不可以与已有组相同) 组账号名
3、qpasswd命令
对组进行操作的命令
选项:
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登录入组,只有组中的成员才可以用newqrp加入该组
qpasswd -a mike root #确认mike用户已加入root组
qpasswd -d webmaster root #确认webmaster用户已退出root组
4、groupdel命令
对组本身进行控制的命令
groupdel 组账号名(进行删除)
5、groups命令
查看目标用户所属的组
6、finger命令
查询用户账号的详细信息
7、w、who、users、last命令
查询已登录到主机的用户信息
查看最近用户登陆信息
8、查看目录和文件的属性
root用户、root组
用ll命令来查看
9、文件/目录的权限和归属
访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
10、查看文件/目录的权限和归属
[root@localhost ~]#ls -l install.log
-rw-r--r-- 1 root root 34298 04-02 00:23 install.log
文件类型、权限 属主、属组
文件所有者→属主
文件所属组→属组
其他用户→除属组外的系统内用户
例"drwxr-xr-x"
第1个字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母“l”(链接文件)等。
第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限
第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限
第8~10个字符:表示其他任何用户(Other)对该文件的访问权限
10.chmod命令
更改权限的命令
chmod u+/- (r4;w2;x1)文件名 根据现实情况进行加减
chmod g+/- (r4;w2;x1)文件名 根据现实情况进行加减
chmod x+/- (r4;w2;x1)文件名 根据现实情况进行加减
或者chmod (现实情况的数字644) 文件名
11.权限掩码umask
umask作用
控制新建的文件或者目录的权限
默认权限去除umaks的权限为新建的文件或者目录的权限
umask设置:umask 022
umask查看:umak
示例
将umask设为000,新建目录或者文件,查看权限
将umask设为002,新建目录或者文件,在查看权限
"ugoa"表示该权限设置l所针对的用户类别。“u"代表文什属主,“"g"代表文什M组内的用户,“o"代表其他任何用户的~代表所有用广(u、g、o的总和)
”+-=”表示设翼权限的操作动作。"+""代表增加相应权限,"-"代表减少相应权限,“=”代表仅设置对应的权限。
”rwx”是权限的字符组合形式,也可以拆分使用,如“r”"rx”等。