首页 > 系统相关 >Linux中文件权限和所有权

Linux中文件权限和所有权

时间:2023-12-02 20:35:48浏览次数:49  
标签:文件 所有权 更改 umask rw Linux 权限 root

在Linux中,设计与文件和目录相关联的权限的目的是防止用户访问其他用户的私有文件以及保护重要的系统文件。针对每个文件的权限所分配的九位(权限位)定义了你和其他用户对你文件的访问权。
普通文件的权限通常为-rwxrwxrwx。对于不同的项目,前面的“-”是不同的,有可能看到d(针对目录)、l(针对符号链接)、b(针对块设备)、c(针对字符设备)、s(针对套接字)或者p(针对命名的管道)。
在九位权限中,前三位适用于所有者的权限,中间三位表示文件所属组的权限,而最后三位适用于其他人的权限。其中,r表示读取,w表示写入,x表示执行权限。若用“-”代替字母,则意味着相关联的读取、写入或执行位的权限被关闭。
权限 文件 目录
Read 查看文件的内容 查看目录包含的文件和子目录
Write 更改文件的内容,重命名文件或者删除文件 向目录添加文件或者子目录。删除目录中的文件或者子目录
Execute 将文件作为一个程序运行 将目录更改为当前目录,搜索目录或者执行该目录中的一个程序,访问目录中文件的文件元数据(文件大小、时间戳等)

Chmod(数字)更改权限

在Linux中,可以使用chmod更改文件的权限。在更改过程中,每种权限(读取、写入和执行)都被分配了一个数字:r=4、w=2、x=1,通过使用每组的总数建立权限。
[root@fedora32 ~]# chmod 644 passwdbak
[root@fedora32 ~]# chmod -R 755 /root/test/    #-R表示递归
 drwxr-xr-x. 2 root root    6 Dec  2 11:44 test

Chmod(字母)更改权限

除了使用字母表示更改什么以及为谁更改之外,还可以分别使用加号(+)和减号(-)启用和关闭文件权限。针对每个文件,通过使用不同字母,可以更改用户(u)、组(g)、其他人(o)以及所有用户(a)的权限,可以更改的包括读取(r)、写入(w)和执行(x)位。
 [root@fedora32 ~]# chmod -R o-x /root/test/
 drwxr-xr--. 2 root root    6 Dec  2 11:44 test

Umask设置默认的文件权限

当一个普通用户创建一个文件时,其赋予的默认权限是rw-rw-r--,目录的默认权限为rwxrwxr-x。而对于root用户来说,文件和目录的权限分别为rw-r—r—和rwxr-xr-x。这些默认值由umask值确定。
 [root@fedora32 ~]# umask
 0022
根据上述的umask值,暂时忽略前导零,umask值将被视为对文件完全开放权限(666)或者对目录完全开放权限(777)。Umask值002生成对目录的权限775(rwxrwxr-x)。而相同的umask值生成文件的权限644(rw-rw-r--);默认情况下,普通文件的执行权限被关闭。
若想要临时更改umask值,可运行umask命令。
 [root@fedora32 ~]# umask 777 ; touch fhd1 ; mkdir fgd1 ; ls -ld fhd1 fgd1
 d---------. 2 root root 6 Dec  2 11:59 fgd1
 ----------. 1 root root 0 Dec  2 11:59 fhd1
 [root@fedora32 ~]# umask 000 ; touch fhd2 ; mkdir fgd2 ; ls -ld fhd2 fgd2
 drwxrwxrwx. 2 root root 6 Dec  2 12:00 fgd2
 -rw-rw-rw-. 1 root root 0 Dec  2 12:00 fhd2
若想要永久更改umask值,需要向主目录中的.bashrc文件末尾处添加一条umask命令。

Chown更改文件所有权

作为一名普通用户,无法更改文件或者目录的所有权,使它们属于另一名用户。只有root用户才可以更改所有权。
 [root@fedora32 ~]# ll
 total 16
 -rw-r--r--. 1 root root 1335 Nov 27 12:42 passwdbak
 drwxrwxrwx. 2 root root    6 Dec  2 12:06 test
 [root@fedora32 ~]# chown vagrant passwdbak ; ls -ld passwdbak   
 仅将用户改为vagrant,用户组不变
 -rw-r--r--. 1 vagrant root 1335 Nov 27 12:42 passwdbak
 [root@fedora32 ~]# chown vagrant:vagrant test/ ;ls -ld test/
 将用户和用户组均改为vagrant
 drwxrwxrwx. 2 vagrant vagrant 6 Dec  2 12:06 test/

标签:文件,所有权,更改,umask,rw,Linux,权限,root
From: https://www.cnblogs.com/sijiu/p/17872175.html

相关文章

  • linux下使用git上传项目代码到github
    一、创建一个仓库​ 想要上传项目代码到github我们首先需要有一个GitHub账号,具体怎么注册自行搜索,然后我们需要创建一个仓库如图:​ 如图我们创建一个公共仓库,写完名字,描述,和增加一个readme文件二、密钥​ 直接使用命令后面是你的注册邮箱,选项直接回车就好。ssh-keygen-t......
  • Linux交叉编译
    什么是交叉编译?为什么要有交叉编译?交叉编译是为了解决什么样子的问题?定义:在一个平台编译生成的代码在另外一个平台上面执行,这个过程称之为交叉编译。众所周知,CPU的架构主要分为X86架构、ARM架构、MIPS架构、RISC-V架构。假如说,在LinuxX86_64平台下面编译出来的程......
  • 第四章文件权限(ACL权限....)
    一、基本权限ACL1、ACL基本用法getfacl/home/test.txt  查看home目录下test.txt文件的ACL权限setfacl-mu:hr:rw/home/test.txt为组hr增加rw权限;设置ACL权限setdacl-xu:hr/home/test.txt 删除用户对文件的所有权限setfacl-b/home/test.txt 删除所有扩展ACL权......
  • 在aliyun linux上npm install失败
    今天在ESC上使用npm进行安装,出现以下错误:npmERR!codeETIMEDOUTnpmERR!errnoETIMEDOUTnpmERR!networkrequesttohttps://registry.npmjs.org/pm2failed,reason:npmERR!networkThisisaproblemrelatedtonetworkconnectivity.npmERR!networkInmostc......
  • Linux虚拟机如何配置网络之Xshell远程连接
    一、下载远程连接工具Xshell二、使用Xshell远程连接虚拟机1、查看虚拟机ip命令:ipaddr2、打开Xshell软件,点击新建会话   连接成功3、检查网络状态,开启虚拟机输入命令   pingwww.baidu.com ......
  • vscode远程连接linux
    参考:https://zhuanlan.zhihu.com/p/667236864?utm_id=0#一、安装过程1、安装插件remote-ssh2、点击远程资源管理器、新建远程远程资源管理器:RemoteExplorer,左侧extensions下一个像电脑一样的新建远程:在ssh栏右侧加号点击3、在窗口上方弹出的命令框中输入:sshname@ip,name是......
  • Linux学习笔记
    linux12345真实机中安装CentOS(一)真实机中安装CentOS(二)虚拟机VirtualBox安装CentOS8,并配置网络VirtualBox中复制多个服务器并配置不同的ipUbuntu入门CentOS_ServerwithGUI入门Linux分区Linux学习技巧常用命令:复制、剪切、分页、软链接常用命令:文件检......
  • Linux服务器禁用密码登录
    前言以前没太研究仔细过SSH,会用就了不起了。最近太闲了,然后一直在研究些杂七杂八的东西,发现自己知道的实在太少了吧(气鼓鼓)还是要继续努力学习啊!开始今天的正题:禁用密码登录。为什么要禁用密码登录?避免别人破译你的服务器密码进行登录(巴拉巴拉一大堆理由,好吧!其实就搞着好玩的,然后顺......
  • Linux 下使用命令将图片反色
    #单张图片反色convert-negateimage.pngimage_ne.png#单张图片反色(替换)convert-negateimage.pngimage.png#单张图片反色,修复格式不兼容convertimage.pngimage.png&&convert-negateimage.pngimage_ne.png#单张图片反色,修复格式不兼容(替换)convertimage.p......
  • linux中redis的安装和设置开启自动启动
    一、安装redis第一步:下载redis安装包wgethttp://download.redis.io/releases/redis-4.0.6.tar.gz复制代码[root@iZwz991stxdwj560bfmadtZlocal]#wgethttp://download.redis.io/releases/redis-4.0.6.tar.gz第二步:解压压缩包tar-zxvfredis-4.0.6.tar.gz[root@iZwz991stxd......