Linux教程之文件的权限和属性(chmod,chown)

Linux教程之文件的权限和属性(chmod,chown)

适用于 ubuntu 20.04
ubuntu 20.04 是 “西柚云” 主要使用的操作系统 西柚云官网

linux 是个多用户系统,那么如何保证多个用户使用同一个系统不会导致混乱,互相干扰呢?这就需要说到 linux 系统中的 文件权限了。

文件的权限是如何组织的呢?首先我们需要了解文件和目录具有有读、写、执行的权限。可以分别对文件所有者,文件所有者所属组,其他用户划分不同的文件权限。

这里的组是用户组的意思,用户组中包含了一些用户,可对这些用户设置权限。

其他用户是指既不是文件所有者,也不在文件所属组中的用户。

文件权限
读, r, read
写, w, write
执行, x, excute
权限划分
文件所有者
文件所属组(不包括文件所有者)
其他用户

使用 ls -l 查看文件的权限:

xiyou@xiyou:~$ ls -l
total 8
drwxr-xr-x 2 xiyou xiyougroup 4096 Nov 16 21:36 xiyou
-rw-r--r-- 1 xiyou xiyougroup   21 Nov 16 21:36 xiyou.txt
# 这里的第 1 个字符是表示文件类型 d,l,-
# 2-10 的字符以每3个一组,分别是文件所有者、文件所属组(不包括文件所有者)、其他用户的权限
# ”-“表示无该处的权限,r 表示读权限,w 表示写权限,x 表示执行权限。
文件类型+文件权限文件引用数文件所有者文件所属组文件大小(bit)文件修改日期文件名
drwxr-xr-x2xiyouxiyougroup4096Nov 16 21:36xiyou
-rw-r–r–1xiyouxiyougroup21Nov 16 21:36xiyou.txt

环境准备:

# 创建用户组
groupadd xiyougroup
# 创建用户,并把用户添加到用户组
sudo useradd -m -d /home/xiyou -s /bin/bash -g xiyougroup xiyou
# 为 xiyou 用户设置密码为 xiyou
echo -e "xiyou\nxiyou" | sudo passwd xiyou

# 切换当前用户为 xiyou,需要输入密码
su xiyou 
# 创建目录和文件用于命令演示
cd ~
mkdir xiyou
echo "echo hello, xiyouyun" > xiyou.txt
  • chmod 只能文件所有者或root用户才能更改文件的权限

    # u:user, g:group, o:others, w:write, r:read, x:excute
    chmod u-x xiyou.txt
    chmod u+w xiyou.txt
    chmod ug+r xiyou.txt
    chmod g+x,u-x xiyou.txt
    chmod o+x xiyou.txt
    # 使用 R 参数,对目录以及目录下的所有文件进行权限变更
    chmod -R u+x xiyou
    bash xiyou.txt
    
  • chown:只有 root 用户才能变更文件所有者,非root用户只能变更文件所属组

    # 将文件的所有者设置为 root 用户
    chown root xiyou.txt
    # 将文件的所有者设置为 root 用户,将文件所属组设置为 xiyougroup
    chown root:xiyougroup xiyou.txt
    # 为目录和目录下的所有文件设置所有者和所属组
    chown -R root:xiyougroup xiyou
    

补充内容

文件的权限还能用数字来表示:

文件权限
文件所有者
除文件所有者的文件所属组用户
其他用户
读,read
写,write
执行,excute
读,read
写,write
执行,excute
读,read
写,write
执行,excute
4
2
1
4
2
1
4
2
1

这可以应用在 chmod 命令中:

chmod 777 xiyou.txt
chmod 755 xiyou.txt
chmod 666 xiyou.txt

对于目录来说读、写、执行权限的意义。

  • 读:能用 ls 看到目录中包含有哪些文件
  • 写:能在目录下创建文件
  • 执行:能用 cd 将工作目录切换到目录下,能够在目录中创建和删除文件

对于文件来说读、写、执行权限的意义。

  • 读:能读取文件内容

  • 写:能向文件中写入内容

  • 执行:能用 ./xx 的方式执行文件

    which bash
    # 查看文件的权限
    ls -l /usr/bin/bash
    # 借助 bash 来执行不具有可执行权限的文件
    bash xx.txt
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值