文章目录
用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
- 用户账号
超级用户、普通用户、程序用户 - 组账号
基本组(私有组)
附加值(公共组) - UID和GID
UID(User IDentity,用户标识号)
GID(Group IDentify,组标识号)
超级用户的ID初始值为0
普通用户的ID初始值为1 ~ 999(保留一些用户的权限)(创建新的用户都在1000以上)(神州S7)[1~499][创建新的用户都在500以上][神州S6]
程序用户是伪用户,只能运行在服务用户里(不能登录操作系统,只能正常运行服务。例:ftp,apache,svn……服务操作)
只要每个创建的新用户就有基本组(私有组)
/bin/false
/bin/false什么也不做只是返回一个错误状态,然后立即退出。将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示。
/usr/sbin/nologin
nologin会礼貌的向用户显示一条信息,并拒绝用户登录又学会一个命令。
普通组:500+(CentOS6),1000+(CENTOS7)
表示该账户需要密码才能登录,为空时,账号无需密码即可登录组账号。
基本组:基于某种特定联系(如都需访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)。
附加组:揉该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。
例:用户 a 是技术部的员工,与部门内的其他同事同属于基本组 A ,后来因工作安排需要,公司将 a 加入邮件管理员组 mailadm ,此时用户 a 同时属于 A 、mailadm组中,A 组是其基本组账号,而 mailadm 组是其附加组账号。
简说:
用户和组的关系、
用户是员工;组是职位
员工可以兼职多个岗位
总有一个最重要的身份:主要组合附加组
主要组:必须要一个组,有且唯一
附加组:可有可无,有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之间同名的主组
用户账号文件/etc/passwd
- 保存用户名称、宿主目录、登录Shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
例:root : x : 0 : 0 : root : / root : / bin / bash
root:用户账号
x:密码占位符(表示次用户舍友密码)
0:用户账号ID(UID)
0:组账号ID(GID)
root:用户说明(描述信息)
/root:用户的宿主目录
/bin/bash:登录shell的信息
“:”:以冒号进行分割,作为分隔符
/etc/shadow
保存用户的账号、密码有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
- /etc/shadow 文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性和/etc/passwd 文件一样的,文件中每行代表一个用户,同样使用“:”作为分隔符,不同之处在于,每行用户信息被划分为9个字段。
①账号名
②存放真正加密的密码,采用SHA512散列算法,更加安全;加密原来用MD5或DES,"!!和 * " 表示没有密码不能登录,新创建用户也是"!!",如果密码前面显示双感叹号表示该账户被锁定了。
③上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是Linux的诞生日,date -d “1970-01-01 18983 days”可以查看哪一天改过。
④多久之后才可以修改密码,如果是0,则密码可以随时修改
最小修改间隔时间,也就是说该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0则随时修改密码,如果是10则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。
⑤密码有效期,默认99999(273年),表示永久生效
⑥密码到期前的第几天发出警告信息,默认是7天,每次登录系统都会向该账号发出“修改密码”的警告信息
⑦密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账号登陆,也不会提示账户过期,是完全禁用
⑧账号失效时间,使用自1970年1月1日以来的总天数作为账户的失效时间
⑨保留,未使用
chage命令
用来修改账号和密码的有效期限,针对目前系统已经存在的用户
chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有限的最大天数。例:chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:账号到期的日期。过了这天,此账号将不可用。
-d:上一次更改的日期。
-i:停滞时期:如果一个密码已过期这些天,那么此账号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的账号或密码合适过期
添加用户账号
useradd
- useradd命令
useradd [选项]… 用户名 - 添加用户账号常用选项
-u:指定用户的UID号,要求该UID号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用GID号)
-G:指定用户的附加组名(或使用GID号)
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-s:指定用户的登录Shell
useradd -e AAAA-BB-CC -s /sbin/nologin xxx (创建的账号到设定的时间过期)
date -s (日期)xxxx/xx/xx)(时间)xx:xx:xx)
设置/更改用户口令passwd
- passwd命令
passwd [选择]… 用户名 - 常用选项
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户
-S:查看用户账户
-u:解锁用户账户
passwd -d :清空指定用户的密码
passwd -l :锁定用户账户
passwd -S:查看用户账户
passwd -u:解锁用户账户
调用管道符,给zhangsan用户设置密码“123”,为了方便系统管理,passwd命令提供了—stdin选项,用于批量给用户设置初始密码。
echo “123” | passwd --stdin zhangsan
修改用户账号的属性usermod
-
usermod命令
usermod [选项]… 用户名 -
常用选项
-l:更改用户账号的登录名称
-L:锁定用户账户
-U:解锁用户账户 -
以下选项与useradd命令中的含义相同(简化)
-u:修改用户的UID号
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间
-g:修改用户的基本组名
-G:修改用户的附加组名
-s:指定用户登录Shell
删除用户账号userdel
- userdel命令
userdel [-r] 用户名 - 添加-r选项时,标识连用户的宿主目录一并删除
(-r 所有的关于用户的东西一切的都删除(若不-r会残留临时文件))
用户账号的初始配置文件
- 文件来源
新建用户账号时,从/etc/skel目录中复制而来 - 主要的用户初始配置文件
~/.bash_profile
~/.bashrc
~/.bash_logout
ls -a /etc/skel
-a显示所有(包括隐藏文件)才可查看所有文件,里面有隐藏文件
组账号文件
- 与用户账号文件相类似
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
系统自带的/etc/group跟/etc/gshadow
添加组账号groupadd
- groupadd命令
groupadd [-g GID] 组账号名
添加删除组成员gpasswd
- gpasswd命令
设置组账号密码(极少用)、添加/删除组成员
gpasswd [选项]… 组账号名 - 常用选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
-r: 删除密码
-R:限制用户登入组
gpasswd -a:向组内添加一个用户
passwd -d:从组内删除一个用户成员
gpasswd -M:定义组成员列表,以逗号分隔
删除组账号groupdel
- groupdel命令
groupdel 组账号名
例:
查询账号信息
- groups命令
查询用户所属组
groups [用户名]
- id命令
查询用户身份标识
id [用户名]
finger命令
-
查询用户账号的详细信息
finger [用户名]
ps:finger需要提前安装:yum install finger -y -
w、who、users命令
查询已登录到主机的用户信息
文件/目录的权限和归属
- 访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录 - 归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
例:
[root@localhost ~]#ls -l install.log
-rw-r–r-- 1 root root 34298 04-02 00:23 install.log
-rw-r–r--:文件类型、权限
root root:属主、属组
-rw-r–r--
设置文件和目录的权限chmod
-
chmod命令
chmod [ugoa] [+ - =] [rwx] 文件或目录…
或
chmod nnn 文件或目录…
[ugoa]u、g、o、a分别表示属主、属组、其他用户、所有用户
[+ - =]+、-、=分别表示增加、去除、设置权限
[rwx]r、w、x分别表示读、写、运行权限
nnn(3位八进制数) -
常用选项
-R:递归修改指定目录下所有子项的权限
权限掩码umask
- umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限 - umask设置:umask 022
- umask查看:umask
- 示例
将umask设为000,新建目录或者文件,查看权限
将umask设为022,新建目录或者文件,再查看权限
总结
- 用户账号的管理(useradd、passwd、usermod、userdel)
- 组账号的管理(groupadd、gpasswd、groupdel)
- 用户账号文件于组账号文件
- 查询账号相关信息的命令(groups、id、finger、w)
- 设置目录与文件的权限(chmod)
- 设置目录与文件的归属(shown)
- 权限掩码(umask)