栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux 进阶篇 —— linux 文件权限

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux 进阶篇 —— linux 文件权限

文章目录
  • 1. 用户身份
        • 1.1 用户身份命令
        • 1.2 文件权限与归属
        • 1.3 文件隐藏属性
        • 1.4 `setfacl` 和 `getfacl` 命令
        • 1.5 `su` 命令与 `sydo` 服务

1. 用户身份
  • 管理员 UID 为 0: 系统的管理员用户。

  • 系统用户 UID 为 1-999: linux 系统为了避免因为某个服务程序出现漏洞而被黑客提权至整个服务器。默认服务程序会独立的系统用户负责运行,进而有效的控制被破坏范围。

  • 普通用户 UID 从 1000 开始: 是由管理员创建的用于日常工作的用户。


1.1 用户身份命令

id 命令:
id 命令用于显示用户的详情信息,语法格式为: id 用户名。

  • uid: 用户 id
  • GID: 基本组 id
  • groups: 扩展组

useradd 命令:

用于创建新的用户账户,语法格式为:useradd [参数] 用户名。

该命令创建的用户账号时,默认的用户的家目录存放在 /home 目录下面,默认的色 Shell 解释器为 /bin/bash ,而且默认创建一个与该用户名同名的基本用户组。

参数作用
-d指定用户的家目录(默认为 /home/username)
-e账户的到期时间,格式为 YYYY-MM-DD
-u指定该用户的默认 UID
-g指定一个初始的用户的基本组(必须已经存在)
-G指定一个或多个扩展组
-N不创建与用户同名的基本用户组
-s指定该用户的默认 Shell 解释器

groupadd 命令:

用于创建新的用户组,语法格式为:groupadd [参数] 用户组。

为了能够更加有效的指派系统中的各个用户的权限,在工作中常常会把几个用户加入到同一个组里,这样便可以针对一类用户统一安排权限。

groupadd ronny

usermod 命令:

用于修改用户属性,全称为 user modify,语法格式为:usermod [参数] 用户名

参数作用
-c填写用户账户的备注信息
-d -m参数 -m 和 -d 连用,可以重新指定用户的家目录并自动的把旧数据转移过去
-e账户的到期时间,格式为:YYYY-MM-DD
-g变更所属用户组
-G变更扩展用户组
-L锁定用户禁止其登录系统
-U解锁用户,允许登录系统
-s变更默认 终端
-u修改用户的 UID

将用户 linuxprobe 加入到 root 用户组,这用扩展用户组会出现 root 用户组。

在试试用 -u 参数修改 linuxprobe 用户的 UID 号码值:

usermod -u 888  linuxprobe

将用户的解释器终端默认的 /bin/bash 修改为 /sbin/nolongin,修改之后用户就不能马上登录了,但是这个用户依然可以被某个服务所调用,管理某个具体的服务。


passwd 命令:

用于修改用户的密码,过期时间等信息。格式为:passwd [参数] 用户名

参数作用
-l锁定用户,禁止其登录
-u解除锁定,允许其用户登录
–stdin通过用户标准输入修改用密码。
-d使该用户可以用空密码登录系统
-e强制用户在下次登录时修改密码
-S显示用户的密码是否被锁定,以及密码所采用的加密算法名称。

*userdel 命令:

删除已有的用户账户,英文全称为:user delete,语法格式为 userdel [参数] 用户名。

参数作用
-f强制删除用户
-r同时删除用户以及家目录

在删除一个用户时,一般会建议保留家目录,以免重要的数据被误删。


1.2 文件权限与归属

在 linux 中 每个文件都有归属的所有者与所属组,并规定了文件的所有者,所属组以及其他人对文件所拥有的的 r,w,x 等权限 。

可读,可写,可执行权限对应的命令在文件和目录的区别

权限文件目录
可读®catls
可写(w)vimtouch
可执行(x)./scriptcd

常见的文件类型包括:

  • - 普通文件
  • d 目录文件
  • l 链接文件
  • p 管道文件
  • b 块设备文件
  • c 字符设备文件

特殊权限设置的参数

参数作用
u+s设置 SUID 权限
u-s取消 SUID 权限
g+s设置 SGID 权限
g-s取消 SGID 权限
o+t设置 SBIT 权限
o-t取消 SBIT 权限

chmod 与 chown 命令:

chmod 命令用于设置文件的一般权限和特殊权限,英文名称为 change mode ,语法格式为:chmod [参数] 文件名。

chmod 760 anaconda-ks.cfg

chown 命令用于设置文件的所有者和所有组,英文全称为:change own,语法格式为 chown 所有者:所有组 文件名。

chown linuxprobe:linuxprobe anaconda-ks.cfg

chmod 和 chown 命令都是用于修改文件属性和文件权限最常用的命令,他们还有一个共性,就是针对目录进行操作时候需要进行 -R 参数来表示递归操作。


1.3 文件隐藏属性

chattr 命令:

用于设置文件的隐藏属性,英文全称为 change attributes,语法格式为:
chattr [参数] 文件名称。

如果需要把某个隐藏功能添加到文件上,需要在命令后面追加 +参数,如果想要把某个隐藏功能移除文件,则需要 -参数。

参数作用
i无法对文件进行修改,若对目录设置了该参数,则仅修改其中的子文件内容而不能新建或者删除
a仅允许补充 (追加) 内容,无法覆盖/删除内容(Apprnf Only)
S文件内容在变更后立即同步到硬盘 (sync)
s彻底从硬盘中删除,不可恢复(用零块填充原文件所在的硬盘的区域)
A不在修改这个文件或目录的最后访问时间(Atime)
b不在修改文件或目录的存取时间
D检查压缩文件中的错误
d使用 dump 命令备份时忽略本文件/目录
c默认将文件或目录进行压缩
u当删除改文件后依然保留其在硬盘中的数据,方便日后恢复
t让文件系统支持尾部合并(tail-merging)
x可以直接访问压缩文件的内容
charrt +i helloworld

lsattr 命令:

用于查看文件的隐藏权限,全称为:list attributes,语法格式为:lsattr [参数] 文件名称。

lsattr helloworld

1.4 setfacl 和 getfacl 命令

setfacl 命令用于管理文件 的 ACL 权限规则,全称为:set file ACL,语法 格式为 :setfalc [参数] 文件名称

ACL 权限提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制。使用 setfacl 命令可以针对单一用户或者用户组,单一文件或者目录来进行读/写/执行权限的控制。

参数作用
-m修改权限
-M从文件中读取权限
-x删除某个权限
-b删除全部权限
-R递归子目录

例如 ,我们无法进入 /root 目录,现在为普通用户单独设置一下:

# 设置权限
setfacl -Rm u:linuxprobe:rwx   /root
# 删除某一条权限
setfacl -x g:linuxprobe /etc/fstab

getfacl 命令用于查看文件的 ACL 权限规则,英文全称为:get file ACL,语法格式为 :getfacl [参数] 文件名称

getfacl /root

ACL 的权限设置备份

如果我们不小心设置错了权限,会将原始文件覆盖。我们可以使用 -R 递归参数,这样不仅能把本目录的权限进行备份,也能将里面的权限文件备份。

getfacl -R home >> backup.acl

ACL 权限 的恢复,使用 --restore 参数,由于在备份的时候指定了对应的 /home 目录,所以不需要写对应的目录名称。

setfacl --restore backup.acl

1.5 su 命令与 sydo 服务

su 命令与用户之间的 - 号,这意味着完全切换到新的用户,即把环境变量信息也变为新用户的相应信息,而不是保留原始的信息。

sudo 命令用于给普通用户提供额外的权限,语法格式为:sudo [参数] 服务名称。

使用 sudo 命令可以给普通用户提供额外的权限来完成原本只有 root 管理员才能完成的任务,可以限制用户执行指定的命令。记录用户执行过得每一条命令,集中管理用户和权限 (/etc/sudoers),以及可以在验证密码之后的一段时间无须让用户再次验证密码。

参数作用
-h列出帮助信息
-l列出当前用户的可执行信息
-u 用户名或 UID指定用户身份执行命令
-k清空密码的有效时间,下次执行 sudo 时需要再次进行密码验证
-b在后台执行指定的命令
-p更改询问密码的提示语

visudo 命令用于编辑,配置用户 sudo 的权限文件,语法格式为: visudo [参数]。 这一条会自动调用 vi 编辑器来配置 /etc/sudoers 权限文件的命令。

配置权限文件时,按照如下格式在 101 行下进行:

谁可以使用 允许使用的主机 = (以谁的身份) 可以执行命令的列表

  • 谁可以使用:使用哪位用户进行命令的授权
  • 允许使用的主机:可以填写 ALL 来表示不限制来源的主机,也可以写为 192.168.10.0/24,这样的网段限制来源地址,使得只有从 允许网段登录页时候才能使用 sudo 命令。
  • 以谁的身份:可以填写 ALL 表示最高权限,也可以是另一个用户的名字。
  • 可执行命令的列表:可以填写 ALL 表示不限制命令,也可以填写如 /usr/bin/cat 这样的文件名称来限制命令列表,多个命令之间使用 , 号分割。

接下来切换用户,在使用之前加上 sudo 命令即可。

每次执行一次 sudo 命令的时候,都需要进行一次密码验证,可以再添加 NOPASSWD 参数,这样用户下一次执行就不需要密码验证了。

linuxprobe  ALL=(ALL) NOPASSWD:/usr/bin/cat,/usr/sbin/reboot
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号