- 身份
- 管理员:UID为0:系统管理员用户
- 系统用户UID1~999:Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效的控制被破坏范围
- 普通用户IUID1000起:是由管理员创建的,用于日常工作的用户
- 用户组,Linux系统中还引入了用户组的概念
- 一个用户只有一个基本用户组
- 可以有多个扩展用户组
- 如果该用户被归纳到其他用户组,则这个其他用户租组称之为扩展用户组
- 创建每一个用户时,默认创建一个对应的用户组,而这个用户组只有该用户一个人
- 用户操作
- useradd 创建新用户
- 格式:useradd 【选项】 用户名
- 使用该命令创建用户时,默认用户家目录会在 /home 目录下,默认的解析器为 /bin/bash
- 例如:useradd -d /home/linux -u 8888 -s /sbin/nologin chen_u1,注解:家目录 /home/linux,UID 8888,默认不能登录 -s /sbin/nologin
- id 【用户名】查询该用户信息,例如:uid、gid、groups等信息
- useradd 创建新用户
参数 | 作用 |
---|---|
-d | 指定用户的家目录(默认为 /home/【用户名】 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-u | 指定用户的UID |
-g | 指定一个初始化的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定用户的Shell解析器 |
-
- reoupadd 创建用户组
- 格式为groupadd 【选项】 【组名】
- 更好的分配权限操作,犹如权限管理中的角色
- usermod 修改用户属性
- usermod 【选项】 用户名
- reoupadd 创建用户组
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | -d与-m连用,可冲洗指定用户的家目录并自动把旧的数据转义过去 |
-e | 账户的到期时间,格式为:YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录 |
-U | 解锁用户,允许其登录 |
-s | 变更默认终端 |
-u | 变更用户UID |
-
- passwd 修改用户密码、国企时间、认证等信息
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
--stdin | 允许通过标准输入修改用户密码,如:“NewPassWdor ”| passwd --stdin Username |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
[root@localhost ~]#passwd
#passwd直接回车代表修改当前用户的密码
Changing password for user vbird2.
Changing password for vbird2
(current) UNIX password: <==这里输入『原有的旧口令』
New password: <==这里输入新口令
BAD PASSWORD: it is WAY too short <==口令检验不通过,请再想个新口令
New password: <==这里再想个来输入吧
Retype new password: <==通过口令验证!所以重复这个口令的输入
passwd: all authentication tokens updated successfully. <==成功修改用户密码
- userdel 删除用户
- 格式 userdel 【选项】 用户名
- -f 强制删除用户,-r 同时删除用户及家目录信息
-
- su 切换用户
- 格式:su 切换至root用户
- 格式:su 【用户名】,切换用户
- 格式:su - 【用户名】,切换用户且同时切换环境变量
- sudo 权限切换
- sudo命令把特定命令的执行权限赋予给指定用户,这样既可以保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码
- 限制用户执行指定的命令
- 记录用户执行的每一条命令
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
- 验证密码的后5分钟内无需再让用户再次验证密码
- visudo编辑配置文件,只有root管理员可用,操作sudo配置一般在99行(默认配置 用户名 ALL=(ALL) ALL,如果修改为用户名 ALL=NOPASSWD ALL,解除密码校验
- 格式:sudo 【参数】 命令
- su 切换用户
参数 | 作用 |
---|---|
-h | 列出帮助 |
-l | 列出当前用户可执行的命令 |
-u 用户名或者UID值 | 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行sudo时需要再次进行密码校验 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
- 文件
- 常见文件字符
文件字符 | 代表文件类型 |
---|---|
- | 普通文集 |
d: | 目录文件 |
l: | 链接文件 |
b: | 块设备文件 |
c: | 字符设备文件 |
p: | 管道文件 |
-
- 权限对应表
## 权限配置 ####### ####### 所有者 ####### ####### 所属组 ####### ####### 其他用户 #######
##权限项 读 写 执行| 读 写 执行 | 读 写 执行
##字符表示 r w x | r w x | r w x
##数字表示 4 2 1 | 4 2 1 | 4 2 1
-
- chmod 设置文件或目录的权限
- 格式:chmod 【参数】 权限(权限字符后者权限数字)
- 例如:chmod 644 xxx.txt 或者 chmod rw-r--r-- xxx.txt
- chown 设置文件或目录的所有者和所属组
- 格式:chown 【参数】 【所有者】:【所属组】 【文件或者目录】
- 例如:chown root:bin text.txt
- 特殊权限
- suid 属性只能运用在可执行文件上,含义是开放文件所有者的权限给其他用户,即当用户执行该执行文件时,会拥有该执行文件所有者的权限。如果给一个非二进制文件文件附加suid权限,则会显示大写S,属于无效。latiny 用户能够执行passwd 命令修改自己的密码,修改密码其实就是修改/etc/shadow 这个文件,查看/etc/passwd这个文件的权限,发现除了root其他人没有写权限,但是latiny用户能够成功执行passwd,其原因就在于passwd这个命令的权限是rwsrw----,其中's'的作用就是让执行命令的人具有和该命令拥有者相同的权限。
- 添加权限命令:chmod u+s file 或者 chmod 4765 file
- sgid 属性可运用于文件或者目录,运用在文件的含义是开放文件所属组的权限给其他用户,即当用户执行该执行文件时,会拥有该执行文件所属组用户的权限。如果给一个非二进制文件文件附加sgid权限,则会显示大写S,属于无效。运用在目录上的含义是,在该目录下所有用户创建的文件或者目录的所属组都和其一样。即果/home/latiny目录具有sgid权限,且所属组是latiny,则任何用户在/home/latiny下创建的子目录或者文件的所属组都是latiny。
- 添加权限命令:chmod g+s directory 或者 chmod 2765 directory
- sbit 权限只能运用于目录上,含义是该目录下所有的文件和子目录只能由所属者删除,即使其的权限是777或者其他。一个公共目录,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件(仅对目录有效)。
-
添加权限命令:chmod o+t directory 或者 chmod 1765 directory
-
文件的隐藏属性
-
chattr 设置文件的隐藏权限,如果想要把某个隐藏功能添加到文件上,则需要命令后面追加参数 +【参数】,去掉隐藏功能 -【参数】
-
例如chattr +a xxx
-
- chmod 设置文件或目录的权限
参数 | 作用 |
---|---|
i | 无法对为你教案进行修改,若对目录设置了该参数,则进能修改其中的子文件内容而不能新建或者删除文件 |
a | 仅允许补充(追加)内容,无法覆盖或者删除内容(Append Only) |
S | 文件内容在变更后立即同步到硬盘(SYNC) |
s | 彻底硬盘中删除,无法恢复(用0填充原文件所在硬盘区域) |
A | 不再修改这个文件或者目录的最后访问时间(atime) |
b | 不再修改文件或者目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用dump命令备份时忽略本文件或者目录 |
c | 默认将文件或者目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并(tail-merging) |
X | 可以直接访问压缩文件中的内容 |
-
-
- lsattr 显示文件的隐藏权限
- 格式:lsattr 【参数】 【文件】
- 例如:lsattr xxx
- lsattr 显示文件的隐藏权限
- 文件访问控制列表
- 如果希望对某个只当的用户进行单独的权限控制,就需要(ACL)列表了。基于用户或者目录设置ACL,其实就是针对指定的用户或者用户组设置文件或者目录的操作权限。如果针对某目录设置了ACL,则目录中的文件继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
- 比如:除root用户外,其他用户是不可以访问/root家目录的,当配置了ACL就可以访问了
- getfacl 显示文件上设置的ACL信息
- 格式:getfacl 【文件名称】
- 例如:getfacl /root
- 查看信息
-
-
-
-
- 有ACL权限的文件
-
-
-
-
- setfacl设置文件想的ACL规则
- 格式:setfacl 【参数】 【文件名称】
- 例如:setfacl -Rm u:chen_test:777 /root
- 参数:-R 递归参数,针对目录中的所有文件使用;-m 针对普通文件使用参数;-b 删除该文件上的ACL规则
- setfacl设置文件想的ACL规则
-