用户分类:
超级管理员
root “根用户” UID=0
系统用户
UID范围:1-999,默认不可登录,用于软件运行和权限管理。
普通用户
UID范围>=1000 日常使用,办公,root授权的操作
# 用户信息问
cat /etc/passwd
# 格式:
# 用户名:密码占位:UID:GID:简介:家目录:shell终端程序
root:x:0:0:root:/root:/bin/bash
1 # 创建普通用户
useradd # 用户名
usseradd tom
tom:x:1000:1000::/home/tom:/bin/bash
2 # 创建密码
passwd tom # 可以创建密码
cat /etc/shadow | tail -1 # 密码所在文件
passwd -l # lock锁,给用户加锁,禁止用户登录
passwd -u # unlock解锁 给用户解锁
passwd -e # 用户下次登录需要更改密码
passwd -d # 清空用户密码
passwd --stdin # 获取键盘输入或文本的密码
3 # 退出登录
logout # 退出登录
exit # 退出当前终端
4 # 使用新用户直接登录
ssh tom@192.168.8.3
# 退出以后执行直接登录
5 # 切换用户
su # 切换用户
su - # 在用户自己的家目录登录
6 # 修改用户
usermod # 修改用户的信息,例如用户名,UID,家目录,shell
usermod -c 注释
usermod -d 修改家目录
usermod -a 追加到用户组
usermod -G 指定附加组
usermod -aG root tom # 将tom用户添加到root组中
soure .bashre # 重新加载bash配置
7 # 用户的主组:和用户绑定的默认的组,用户创建文件的“属组”就是主组
8 # 用户的附加组:仅用于权限管理的组,将多个用户可以添加到同一个组中每用户会默认拥有组权限
9 # 删除用户
userdel # 删除用户
userdel -r 用户名 # 删除用户的同时,将用户的家目录与邮件目录一并删除用户组
组管理
cat /etc/group | tail -1 # 查询命令
# 创建组
groupadd
groupadd dev # 创建用户组 dev
usermod -aG dev li4 # 将用户加入到dev组里面
# 修改组
groupmod
groupmod -g 2333 test #
# 删除组
groupdel UGO权限
文件权限介绍
U : user权限 属主
G : group权限 属组
O : other权限 其他
# 查看文件的普通权限
ls -l
-rw-r--r--. 1 root root 204 5月 12 11:13 a.txt
权限 用户和用户组 文件大小 时间 文件名
drwxr-xr-x. 2 root root 22 5月 11 15:06 dir01
属主 属组
# 内容说明
1 第一个字符:代表文件类型
- 普通文件(文本,二进制、配置、日志等文件)
d 目录文件(文件夹,包含存放文件的文件)
c 字符文件(输入、输出设备)
b block块文件(存储设备、U盘、移动硬盘)
l link链接文件(软连接)
s socket套接字文件(进程间通信、网络传输)
p pipe管道文件(多进程数据共享)
2 第2至第10个字符:代表文件的普通权限
rw-rw-r-- 三个为一组(属主 数组 其他)
r read 可读
w write 可写
e exe 可执行
3 数字 文件或目录的硬链接数
普通文件 至少一个硬链接
普通目录 至少两个硬链接 "."目录 目录中的"." 子目录中的".."
dr-xr-x---. 7 root root 4096 5月 13 09:17 .
dr-xr-xr-x. 17 root root 224 5月 7 02:19 ..
4 属主(文件所有者名称, 用户不存在会显示UID)
5 属组(文件所属的组)
6 文件大小(不包含目录中文件的大小)
7 修改时间
8 文件名或目录名
stat 文件名 # 查看文件的详细信息(文件元数据)
最近访问:文件内容查看的时间
更改时间:文件内容的修改时间
改动时间:文件的元数据的改变时间
** 元数据(inode、block、size大小、upgo权限、fileType类型、)
9 chown # 设置文件或目录的所有者(属主)
格式:
chown 属主 文件 属组
g 属组
o 其他用户
= 精确赋予权限
+ 增加权限
- 减少权限
r 只读
w 只写
x 执行
s 临时授权
t 文件粘连
# 数字表示法
r 4
w 2
x 1
rw 6
rwx 7
r-- 4
--- 0
--x 1
-w- 2
-wx 3
r-x 5
# 改用户的用户组
chown :wyd dir01
drwxr-xr-x. 2 root wyd 22 5月 11 15:06 dir01
# 改后面的用户组
chgrp wyd dir01
drwxr-xr-x. 2 root wyd 22 5月 11 15:06 dir01
# 改前面的用户
chown ppp:root dir01
11 chgrp # 设置文件或目录的属组(文件的主组)
格式:
chgrp 属组 文件/目录
-R/-r # 递归设置,将目录中所有文件设置为相同的权限
特殊权限
SUID(用户):让其他用户临时使用属主(用户)的身份执行命令
ls -l /user/bin/passwod
-rwsr-xr-x. 1 root root 27856 4月 1 2020 /usr/bin/passwd
# 设置方法,拥有属主(用户)拥有x权限的文件才能生效s,否则变为s不生效
chmod u+s 可执行程序设置.
chmod 4755 可执行程序设置. 4代表SUID
# 说明:拥有x权限原因是,让普通用户也可以修改自己的密码
SGID(用户组):给属组(用户组)的权限位进行特殊设置加S权限
作用:
1. 给命令添加SGID,让使用者以默认 属组(用户组)的权限进行命令
2. 目录继承作用:给目录添加SGID,让复制到该目录的文件自动继承该目录的组权限
chmod g+s 文件或目录
chmod 2755 文件或目录
StickyBIT:粘滞位,只能给目录设置,一般用于共享目录,让普通用户只能删除修改自己的文件,不能删除、修改其他用户的文件
/tmp 共享目录
chmod o+t 目录
chmod 1777 目录
目录权限: r权限能够ls cp
w权限表示可以修改、删除、移动该文件
x权限表示可以进入 cdACL权限:访问控制列表
ACL命令:
# 查看文件或目录的acl权限
格式:
getfacl 文件名/目录名
[root@LiSheng ~]# getfacl dir01
# file: dir01
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
# 修改文件或目录的acl权限
setfacl [选项] 文件名/目录名
-m 修改acl权限
-x 删除某个acl权限
-b 删除文件或目录的所有acl权限
案例:
setfacl -m u:用户名:rw 文件 # 给用户名 rw的权限
把u改成g # 给用户组添加权限
# 给王五用户增加rwx权限
setfacl -m u:wangwu:rwx os-release
getfacl os-release
[root@LiSheng ~]# getfacl os-release
# file: os-release
# owner: root
# group: root
user::rw-
user:wangwu:rwx
group::r--
mask::rwx
other::r--
# 删除王五rwx权限
setfacl -x u:wangwu os-release
[root@LiSheng ~]# getfacl os-release
# file: os-release
# owner: root
# group: root
user::rw-
group::r--
.
mask::r--
other::r--
# 对目录设置acl时,子可以继承目录的acl权限
setfacl -m d:u:tom:rwx 目录 # 对目录设置acl权限隐藏权限
UGO ACL权限设置针对的是普通用户,对root是无效的;
隐藏权限对包含root用户在内的用户都有效,作用:
为了系统安全
锁定某些重要文件,防止误操作,误删、误改
怎么用:
# 查看文件的隐藏权限
lsattr 文件 # 查看
# 修改文件的隐藏权限
chattr +i 文件 # 修改
chattr -i 文件
chattr +a 文件
# 只允许追加重定向
a append only # a表示仅允许追加,适合系统的关键日志
# 不可变的,只读
i immutable # i 作用是锁死,不可变的,只读,可复制,只允许看,禁用rm、mv、vim等命令的操作
sudo命令与sudoers配置
作用:临时让普通用户也能用root身份的权限来执行命令;
注意:需要root本用户授权给其他用户或组sudo权限,后才能正常使用sudo命令
配置:
sudo命令
# 需要root授权,需要使用root身份修改/etc/sudoers
su -
vim /etc/sudoers 或 visudo # 修改sudo配置
# 允许tom用户使用sudo命令时拥有root的所有权限
tom ALL=(ALL) ALL
tom ALL=(ALL) NOPASSWD:ALL # nopasswd 表示不需要输入密码
# 限制特权权限
# 禁止使用这几个命令
tom ALL=(ALL) ALL,!/usr/sbin/reboot,!/usr/sbin/init,!/usr/sbin/shutdown,!/usr/bin/passwd
which 命令 #查找命令的绝对路径
# 允许admin组的成员都拥有sodo权限
%admin ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD:ALL # nopasswd 表示不需要输入密码直接可以使用sudo
# 命令集与别名
里面由Cmnd_Alias
vim /etc/sudoers 或 yisudo # 修改sudo配置
Cmnd_Alias
tom ALL=(ALL) ALL,Cmnd_Alias+路径
Cmnd_Alias SHUTDOWN = /sbin/shutdown,/usr/bin/poweroff,/sbin/poweroff
%minsudev ALL=(ALL) NOPASSWD:ALL,!SHUTDOWNumask修改文件和目录默认权限
umask # 设置用户创建文件和目录时的默认权限 默认值 0022 可以修改默认值 (除非必要否则不修改)
umask # 对应目录权限 0777-0022=755 rwxr-xr-x
umask # 对应文件权限 0666-0022=644 rw-r--r--
原创
Linux权限相关
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法