超级用户root用户账号的UID固定值0
程序用户账号的UID默认为Centos 6: 1~499,Centos7: 1~ 999
普通用户的UID默认为Centos 6: 500以上 ,Centos7: 1000~ 60000
作用:保存用户名称、宿主目录、登录Sell等基本信息,每一行对应一个用户的帐号记录
添加新用户,并对新用户进行一些个性化设置
格式: useradd 【选项】 用户名
选项 | 说明 |
-u | 指定uid |
-M | 不生成家目录 |
-s | 指定shell类型 |
-e | 指定用户的失效时间 |
-d | 指定用户的家目录位置(与-M一起使用,不生效) |
-g | 指定基本组 |
-G | 指定附加组 |
-r | 创建程序用户 id<1000 |
-c | 写备注信息 |
-p | 密码加密 |
-o | 生成相同的UID |
小题目:
随机生成一个密码
tr -d 删除去除
tr -c 用字符串中字符集的补集替换此字符集,要求字符集为ASCII
[[:alnum:]] [a-zA-Z0-9] 数字和字母
head -c 12 取字符12位
新建用户账号时,从 /etc/skel 目录中复制而来
主要的用户初始配置文件:
~/.bash_profile 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile 命令使profile文件被读取
~/.bashrc 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
~/.bash_logout 每一个允许bash shell 的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取
格式:passwd 【选项】 用户名
选项 | 说明 |
-l | 锁定用户 (不能登录) |
-u | 解锁用户 |
-S | 查看用户的状态 |
-d | 清空密码 不需要密码直接登录 |
设置用户密码直接使用passwd设置,需要一个一个进行设置,可以调用管道符号,给用户设置密码,进行批量设置密码,使用 --stdin选项。 --stdin 代表标准输入
对已有用户的属性进行修改
格式: usermod 【选项】 用户名
选项 | 说明 |
-l | 更改用户账号的登录名称 |
-L | 锁定用户账户 |
-u | 修改用户的UID 号 |
-U | 解锁用户账户 |
-d | 修改用户的家目录位置 |
-e | 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式 |
-g | 修改用户的基本组名 |
-G | 修改用户的附加组名 |
-s | 指定用户的登录shell |
-l 修改用户名
usermod -l 新名 原名
格式: userdel [-r] 用户名
使用userdel时,加上-r选项,表示删除用户的家目录。
如果不加 -r ,删除之后再创建用户时会报错
基本组(私有组): 基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4段记录的即为该用户的基本组GID号。
附加组(公共组): 用户除了基本组以外,额外添加指定的组。
root用户账号的GID固定值0
程序用户账号的GID默认为Centos 6: 1~499,Centos 7: 1~ 999
普通用户的GID默认为Centos 6: 500以上,Centos7: 1000~ 60000
文件位置:
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
格式: groupadd 【-g GID】组账号名
不加 -g 的话,会默认创建组id号
格式: gpasswd 【选项】 组账号名
选项 | 说明 |
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
格式: groupdel 组账号名
格式:id [用户名]
格式:finger [命令]
在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称“权限”和“归属”。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。
第1个字符:表示该文件的类型,可以是d(目录文件)、b(块设备)、c(字符设备)、“-”(普通文件)、l(软链接)、s(套接字)、p(管道符)
第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限;
第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限;
第8~10个字符:表示其他任何用户(Other)对该文件的访问权限;
第11个字符:这里的“ . ” 与SELinux有关
访问权限:
读取 r : 允许查看文件内容、显示目录列表
写入 w : 允许修改文件内容、允许在目录中新建、移动、删除文件或子目录
可执行 x : 允许运行程序、切换目录
特殊的一个的tmp(临时文件)文件 t
归属(所有权):
属主: 拥有该文件或目录的用户账号
属组: 拥有该文件或目录的组账号
u | 属主 |
g | 属组 |
o | 其他人 |
a | 所有人(上面三个) |
+ | 在原有的基础上加上权限 |
- | 在原有的基础上减去权限 |
= | 赋于 原有的权限不看,就是等于后面的权限 |
属主改变:
属组改变:
小问题:
执行cp /etc/issue /data/dir/ 所需要的最小权限
cp x
/etc/ x
issue r
/data/ x
/dir/ wx
umask作用:
控制新建的文件或目录的权限(创建文件的话,执行权限不会受影响)
默认权限去除umask的权限为新建的文件或目录的权限
umask查看: umask
新建目录的默认权限:777
新建文件的默认权限:666
root的umask默认时 022
非特权用户umask默认是 002
实例:
默认的 减去022
用户文件创建掩码 123
意会即可 言传太难
当设置在可执行文件上时,允许以文件所有者的身份(setuid)或文件所属组的身份(setgid)运行该文件。
此处s表示当使用这个命令程序时,把当前用户当成文件的所属主
其它用户虽然有权限,但是无法删除
小问题:
/tmp
t 权限中多了一个t 是什么意思?
除了文件所有者 超级管理员 其他人不可以删除文件
只能对文件夹有用
实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m, --modify-acl 更改文件的访问控制列表
-M, --modify-file=file 从文件读取访问控制列表条目更改
-x, --remove=acl 根据文件中访问控制列表移除条目
-X, --remove-file=file 从文件读取访问控制列表条目并删除
-b, --remove-all 删除所有扩展访问控制列表条目
-k, --remove-default 移除默认访问控制列表
--set=acl 设定替换当前的文件访问控制列表
--set-file=file 从文件中读取访问控制列表条目设定
--mask 重新计算有效权限掩码
-n, --no-mask 不重新计算有效权限掩码
-d, --default 应用到默认访问控制列表的操作
-R, --recursive 递归操作子目录
-L, --logical 依照系统逻辑,跟随符号链接
-P, --physical 依照自然逻辑,不跟随符号链接
--restore=file 恢复访问控制列表,和“getfacl -R”作用相反
--test 测试模式,并不真正修改访问控制列表属性
-v, --version 显示版本并退出
-h, --help 显示本帮助信息