Linux——用户的权限

基本权限UGO

超管可以控制某个用户权限,从而控制他能否访问某个文件。
授权对象:可授权的对象有3种:u(用户,user)、 g(组,group)、 o(其他人,除了用户和组之外的,other)
a(all,特殊对象= u+g+o)
授权内容:可授权的权限种类:r(读取)、w(写入)、x(执行,用于执行代码,执行将文件变成程序)。rwx也可以用数字表示,r=4,w=2,x=1,我们可以使用字母授权也可以使用数字授权。如 u=5就表示给用户授予r和x的权限(5=4+1)。0表示不授权。

授权chmod,修改UGO用户对文件的权限

  • 授权命令格式:命令 对象、赋值符、权限 文件或目录
    命令:chmod(修改权限)
    对象:u(对象)/g(组)/o(其他人)/a(所有)
    赋值符:+(添加权限)/ -(删除权限)/ =(重新赋予权限)
    权限:r(读)/ w(写)/x(执行)
    文件或目录:可以授权指定的文件或目录的权限,如果是文件夹的话我们一般添加-R参数,表示该文件夹下的所有文件都进行授权。
    如:
  • chmod u+r 1.txt :给对象用户添加读1.txt文件的读取权限
  • chmod a=rx 1.txt :给所有用户授予1.txt文件的读取和执行的权限。rwx中不想赋予的权限不写即可。
  • chmod a= 1.txt :给取消所有用户对1.txt文件的读写和执行的权限。=后没有写任何权限证明不授予任何权限。
  • chmod ug=rw, o=r file1.txt :用户和组授予读写功能,其他人授予读权限
  • chmod 671 file1.txt :用户授予读写功能(6=4+2),组授予读写执行功能(7=4+2+1),其他人授予执行权限(1=1)
    注意为用户授权的文件一定是用户可能可以查看的文件,如果给某个用户授权root下的文件,这个操作明显是错误的,因为除超管外,没有用户可以访问root文件夹。
  • chmod命令当然也可以给文件夹授权,给文件夹授权的时候一般必须有执行权限。
  • chmod 0777 file1.txt :四位权限也是合理的,此时第一位表示特殊位suid的权限。

查看一个文件对UGO分配的权限

命令:

  • ls -l 文件名
    查看文件的权限。第一个字符-表示是文件, 第2-9个字符表示的是属主、属组、其他人(ugo)对文件的读、写、执行操作。
    ls -l 的简写是 ll, 用于查看文件详细信息
  • ls -l -d 文件夹名
    查看文件夹的权限。第一个字符d表示是文件夹, 第2-9个字符表示的是属主、属组、其他人(ugo)对文件的读、写、执行操作。

实例:
eg:我们使用ls查看一个文件的时候,有如下输出项:

-rw-r--r--.   1   root    root    0    4月13 20:49    file1
  • -rw-r--r--.:开头的-表示类型是一个文件,后面连着三个rwx分别表示 属主、属组、其他人(ugo)对文件的读、写、执行操作,如果没有某项权限时用-表示。最后面的.是分隔符
  • 1:表示文件被链接的次数,如将文件创建快捷方式的方法便属于文件链接
  • root:属主,一般是文件的创造者
  • root:属组,文件所属于的组
  • 0:文件的大小,以字节为单位
  • 4月13 20:49:创建时间
  • file1:文件名

修改文件的属主、属组

chown命令

  • chown 用户名.组名 文件 : 可以修改文件的属主和属组
  • chown 用户名 文件 : 可以修改文件的属主
  • chown .组名 文件 : 可以修改文件的属组

chgrp命令

只能修改文件的属主

  • chgrp 组名 文件:可以修改文件的属组
  • R参数:-R是递归的意思,-R递归使目录下的所有文件和目录,统一设置。如果对一个文件夹操作,如果想要该文件夹下的所有内容的属组的也进行修改就需要使用-R参数进行修改
    chgrp -R 组名 文件夹

这两个命令也可以对文件夹做操作。

案例

为某个用户和某个组分配某个文件夹的权限

  • 创建一个组
  • 创建一个用户
  • 创建一个文件夹
  • 利用chown命令将创建的文件夹的属主和属组分配为刚才创建的组和用户
  • 利用chmod命令将文件的UG权限进行分配。

复杂权限ACL

ACL访问控制列表,限制用户对文件的访问,是对UGO的补充,加强版。

AGL和UGO的区别:

  • AGL 文件权限管理:可以为不同的用户设置不同的权限
  • UGO 设置基本权限:只能为一个用户,一个组和其他人设置权限。

AGL的命令使用

查看文件有哪些ACL权限

getfacl 文件/文件夹:用来查看该文件的ACL权限
eg:

#file: home/test.txt
#owner:root
#group:root
user:: rw-
group:: r--
other:: r--

#file: home/test.txt —— 文件名
#owner:root —— 文件属主
#group:root —— 文件属组
user:: rw- —— 属主权限, user行可以有多个如果不同的用户拥有不同的权限的时候就可以在这里显示,eg:user:jack:rw-
group:: r-- —— 属组权限, user行可以有多个如果不同的用户拥有不同的权限的时候就可以在这里显示
other:: r-- —— other权限

设置ACL权限

基本结果:设置文件访控 -操作 对象:对象名:权限 文件

  • 设置权限:设置文件访控 -m 对象:对象名:权限 文件
    setfacl -m g:hr:rwx /home/file1:表示为hr组分配file1文件的读写执行权限。
    setfacl -m u:jack:rw /home/file1:表示为jack用户分配file1文件的读写权限。
    setfacl也可以修改基础权限:
    setfacl -m o::rw /home/file1:表示为其他用户分配file1文件的读写权限。
  • 删除权限:设置文件访控 -x 对象:对象名 文件
    setfacl -x g:hr /home/file1:表示为删除hr组对file1文件的ACL权限。
  • 清除所有权限:设置文件访控 -d 文件
    setfacl -d /home/file1:表示为删除file1文件的所有ACL权限。

特殊权限

  • 创建一个文件时,该文件的默认权限分配是644,对用户、组、其他人的权限是:rw-,r–,r–
  • 创建一个文件夹时,该文件夹的默认权限分配是755,对用户、组、其他人的权限是:rwx,r-x,r-x (为什么都有执行权限,因为进入目录就是一种执行权限,所以必须带有执行权)

特殊位suid

suid是针对文件所设置的一个特别权限。
suid的作用:使调用文件的用户临时具备属主的能力。
如何设置suid权限:chomd u+s 文件

eg:
cat是查看文件内容的命令,对不同的身份具有不同的权限。root运行是超管的权限,普通用户运行时是普通用户的权限。所以超管运行 cat /root/file.txt是可以查看文件的内容的, 用户alice运行cat /root/file.txt就报没有权限。
提权:此时我们可是使用chomd u+s 文件来为cat命令提权,使alice用户可以查看root/file.txt文件
操作:

  • 使用跟用户将cat命令设置为suid权限:chmod u+s /usr/bin/cat, 设置完成之后cat文件的权限信息是这样的:- rwsr-xr-x x. 1 root root 54080 ...发现对属主的权限是rws, s就表示该文件具有suid的权限
  • 使用alice用户执行cat /root/file.txt,可以查看该文件的内容。此时alice执行该命令就临时具有该文件临时的属组权限。

(注意该案例中我们提升的是cat的权限)

文件属性chattr

特殊的i权限:如果一个文件非常重要,可以给该文件设置i权限,防止该文件被删除,设置i权限之后超管也没有删除该文件的权限。 如何设置这个i权限就需要通过chattr进行文件权限的设置。
lsattr 文件名:查看文件的所有属性
chattr +添加的属性 文件名:为文件添加属性,chattr +i file.txt添加i权限就使file.txt文件进行锁定,就无法删除,修改该文件

常见的文件属性:

  • i:文件锁定,
  • a: 为文件添加追加操作
  • c:启用这个属性时,文件在磁盘上会自动压缩

进程掩码umask

  • 进行掩码的作用:新建的文件目录的默认权限会受到umask的权限,umask表示要减掉的权限
  • 查看文件的掩码: 直接输入umask命令
    eg:
[root@locaalhost ~]# umask

输出

0022

进程掩码输出四位,第一位表示suid需要剪掉的权限,后三位表示UGO需要剪掉的权限。我们一般使用0777减去进程掩码0022获取到的就是创建文件夹时获取的权限755
同时系统为了保护自己,所以在创建文件时去掉了所有的执行权限,就是644

  • 设置掩码umask 0000
    设置之后创建的文件夹的权限就是777就是rwxrwxrwx,同时创建文件的时候也需要减去执行权限就是666rw-rw-rw-

补充:watch命令

watch命令可以设置每隔一段时间执行一个命令
watch -n时间 '执行的命令'
eg:

watch -n1 'ls -l /tmp/file.txt'

表示每隔1秒就执行ls -l /tmp/file.txt 命令。

cat命令

cat是查看文件内容的命令,对不同的身份具有不同的权限。root运行是超管的权限,普通用户运行时是普通用户的权限。
eg:
超管运行 cat /root/file.txt是可以查看文件的内容的, 用户alice运行cat /root/file.txt就报没有权限。

补充:可执行文件

可执行文件语法

  • echo :输出语句
    echo 需要输出的变量或常量
    eg:echo “2023” 就输出2023.
  • read :输入语句
    read 需要用户输入的变量名
    eg:read name:程序执行到这里的时候会让用户输入一个值为name赋值
    read -p 提示语句 需要用户输入的变量名
    eg:read -p “请用户输入名字” name
  • 变量的引用
    如何使用定义好的变量名:$变量名
    eg:
read -p “请用户输入名字” name
echo “用户的名字是$name”

执行文件

一个文件的执行有如下方法

  • 打开文件:直接在终端打开一个文件,访问文件就可以执行,eg:./file1.txt
  • 使用shell命令
  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值