用户、用户组
系统管理员 root
管理员UID为0:系统的管理员用户。
系统用户UID为1~999:Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。
1、useradd 创建用户 格式为"useradd [选项] 用户名"
常用参数
参数 | 作用 |
---|---|
-d | 指定用户的家目录(默认为/home/username) |
-e | 账户的到期时间,格式为YYYY-MM-DD. |
-u | 指定该用户的默认UID |
-g | 指定一个初始的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认Shell解释器 |
2、groupadd 创建用户组 格式为 “groupadd [选项] 组名”
常用参数:
参数 | 作用 |
---|---|
-g | 指定新建工作组的id |
-r | 创建系统工作组,系统工作组的组ID小于500 |
-K | 覆盖配置文件“/ect/login.defs” |
-o | 允许添加组ID号不唯一的工作组 |
3、usermod 修改用户的属性,格式为"usermod [选项] 用户名"。
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
4、passwd 修改用户密码、过期时间、认证信息等,格式为"passwd [选项] [用户名]"。
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
–stdin | 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
5、userdel 删除用户,格式为"userdel [选项] 用户名"
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
文件权限 读(r)、写(w)、执行(x)
字符 | 文件类型 |
---|---|
- | 普通文件 |
d | 目录文件 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
权限项 | 读 | 写 | 可执行 | 读 | 写 | 可执行 | 读 | 写 | 可执行 |
---|---|---|---|---|---|---|---|---|---|
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
字符表示 | r | w | x | r | w | x | r | w | x |
权限分配 | 文件所有者 | 文件所有者 | 文件所有者 | 文件所属组 | 文件所属组 | 文件所属组 | 其他用户 | 其他用户 | 其他用户 |
chmod 改变文件或目录权限 格式为"chmod [参数] [文件]"
常用参数:
参数 | 意义 |
---|---|
-c | 若该文件权限确实已经更改,才显示其更改动作 |
-f | 若该文件权限无法被更改也不显示错误讯息 |
-v | 显示权限变更的详细资料 |
-R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) |
eq: chmod 777 test.txt
chown 改变文件或目录用户和用户组 chown [参数]
常用参数:
参数 | 意义 |
---|---|
-R | 对目前目录下的所有文件与子目录进行相同的拥有者变更 |
-c | 若该文件拥有者确实已经更改,才显示其更改动作 |
-f | 若该文件拥有者无法被更改也不要显示错误讯息 |
-h | 只对于连结(link)进行变更,而非该 link 真正指向的文件 |
-v | 显示拥有者变更的详细资料 |
–help | 显示辅助说明 |
–version | 显示版本 |
- eq: chown www:www test.txt test.txt的用户所属、所属组更改为www
- eq: chown -R www:www test test的下的所有目录、子目录的用户所属、所属组更改为www
chattr 更改文件属性 chattr [参数] [文件]
常用参数:
参数 | 意义 |
---|---|
-R | 递归处理目录下的所有文件 |
-v | 设置文件或目录版本 |
-V | 显示指令执行过程 |
+ | 开启文件或目录的该项属性 |
– | 关闭文件或目录的该项属性 |
= | 指定文件或目录的该项属性 |
属性:
参数 | 作用 |
---|---|
i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S | 文件内容在变更后立即同步到硬盘(sync) |
s | 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) |
A | 不再修改这个文件或目录的最后访问时间(atime) |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并(tail-merging) |
x | 可以直接访问压缩文件中的内容 |
- eq: chattr +i db.conf 加锁
- eq: chattr -i db.conf 解锁
- eq: chattr +a db.log 只能写入,不能删除
lsattr 显示文件隐藏属性 lsattr [参数] [文件]
常用参数:
参数 | 解释 |
---|---|
-a | 列出目录中的所有文件,包括隐藏文件 |
-d | 只显示目录名称 |
-R | 递归地处理指定目录下的所有文件及子目录 |
-v | 显示文件或目录版本 |
-V | 显示版本信息 |
-D | 显示属性的名称、默认值 |
-E | 显示从用户设备数据库中获得属性的当前值 |
setfacl 设置文件访问控制列表 setfacl [参数] 文件名称
注:ACL指文件的所有者、所属组、其他人的读/写/执行之外的特殊的权限, 对于需要特殊权限的使用状况有一定帮助。 如,某一个文件,不让单一的某个用户访问。
常用参数:
参数 | 含义 |
---|---|
-m | –modify-acl 更改文件的访问控制列表 |
-M | –modify-file=file 从文件读取访问控制列表条目更改 |
-x | –remove=acl 根据文件中访问控制列表移除条目 |
-X | –remove-file=file 从文件读取访问控制列表条目并删除 |
-b | –remove-all 删除所有扩展访问控制列表条目 |
-k | –remove-default 移除默认访问控制列表 |
-d | –default 应用到默认访问控制列表的操作 |
-P | –physical 依照自然逻辑,不跟随符号链接 |
-v | –version 显示版本并退出 |
-R | –recursive 递归操作子目录 |
getfacl 用于显示文件上设置的ACL信息 getfacl 文件名称
sudo 用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务 sudo [参数] 命令名称
常用参数:
参数 | 作用 |
---|---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u | 用户名或UID值 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行sudo时需要再次进行密码验证 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |