赞
踩
目录
例一
例二
例三
Linux下,不以文件后缀来区分文件类型。
(并不代表不可以使用,在系统层面没意义,但是可以给自己看)
所有者 (User/Owner)
chown
)被指定为文件所有者的用户。所属用户组 (Group)
chgrp
或 chown :groupname
命令被更改。其他用户 (Others)
第一列(drwxr-xr-x):表示文件或目录的权限模式。以字母和符号的形式表示了所有者、所属组和其他用户的权限。第一个字符表示文件类型,其中"d"表示目录。接下来的三个字符(rwx)表示所有者的权限,再接下来的三个字符(r-x)表示所属组的权限,最后的三个字符(r-x)表示其他用户的权限。
第二列(3):表示链接到该文件或目录的硬链接数。对于目录来说,这个数字表示该目录下的子目录和文件的数量。
第三列(root):表示文件或目录的所有者。
第四列(root):表示文件或目录的所属组。
第五列(4096):表示文件或目录的大小(以字节为单位)。对于目录来说,这个值通常是固定的。
第六列(Jan 23 10:32):表示文件或目录的最后修改时间。
第七列(lesson1):表示文件或目录的名称。
总计(total 8):表示当前目录下的文件和目录的总数。
Linux表示 | 说明 | Linux表示 | 说明 |
r - - | 只读 | - w - | 仅可写 |
- - x | 仅可执行 | rw - | 可读可执行 |
- wx | 可写可执行 | r - x | 可读可执行 |
rwx | 可读可写的可执行 | - - - | 无权限 |
权限符号 | 八进制 | 二进制 |
---|---|---|
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
rwx | 7 | 111 |
- - - | 0 | 000 |
chmod
是 Linux 和类 Unix 系统中一个非常重要的命令,用于更改文件或目录的权限。chmod
的全称是 "change mode",它允许你修改文件或目录的访问模式,包括读(r)、写(w)和执行(x)权限。通过精确控制文件的权限,chmod
命令增强了系统的安全性和可管理性。
实例:
# chmod u+w /home/abc.txt# chmod o-x /home/abc.txt# chmod a=x /home/abc.txt
# chmod 664 /home/abc.txt# chmod 640 /home/abc.txt
chown
命令在 Linux 和 Unix 类似系统中用于改变文件或目录的所有者(owner)和所属用户组(group)。它的名字来源于英文 "change owner" 的缩写。这个命令通常由 root 用户或文件的当前所有者使用,因为它涉及到对文件权限的更改,而这通常需要较高的权限。
chown [选项] [所有者][[[:]]所属组] 文件或目录
chown newowner filename
chown newowner:newgroup filename
chown :newgroup filename
chown
命令支持一些选项来扩展其功能:
-R
, --recursive
:递归地更改目录及其子目录下的所有文件和子目录的所有者和所属组。-h
, --no-dereference
:只更改符号链接本身的所有者和所属组,而不是链接指向的目标文件。-v
, --verbose
:详细显示更改的所有者和所属组的信息。-f
, --silent
:抑制错误信息,使命令在遇到问题时不显示错误消息。-c
, --changes
:只报告更改的文件,不报告未更改的文件。example.txt
的所有者更改为 user1
: chown user1 example.txt
mydir
及其所有子目录和文件的所有者和所属组更改为 user1
和 group1
: chown -R user1:group1 mydir
chown
修改文件权限时要小心,特别是当递归更改目录时,因为这可能会影响到许多文件,导致意外的结果。chown
命令来更改文件的所有者。普通用户只能更改自己拥有的文件的所属组。chgrp
命令在 Linux 和类 Unix 系统中用于更改文件或目录的所属用户组(group)。这个命令的全称是 "change group",它允许你将一个文件或目录的所属组更改为系统中已存在的任何组。chgrp
命令通常由文件的所有者或具有 root 权限的用户使用,因为改变文件的组归属通常需要相应的权限。
chgrp [选项] 组名 文件或目录
chgrp newgroupname filename
chgrp -R newgroupname directoryname
其中 -R
表示递归地更改目录内的所有文件和子目录。chgrp
支持以下选项来扩展其功能:
-R
, --recursive
:递归地更改目录及其所有子目录和文件的所属组。-h
, --no-dereference
:仅更改符号链接本身的所属组,而不是链接所指向的文件或目录。-v
, --verbose
:详细显示哪些文件的所属组被更改了。-f
, --silent
, --quiet
:不显示错误信息,即使遇到问题也不显示。-c
, --changes
:类似于 -v
,但只报告那些确实被更改的文件。example.txt
的所属组更改为 developers
: chgrp developers example.txt
projects
目录及其所有子目录和文件的所属组更改为 developers
: chgrp -R developers projects
chgrp
更改文件的所属组时,你需要确保新组在系统中是存在的。如果尝试使用一个不存在的组名,chgrp
命令会失败并显示错误信息。chgrp
来更改文件的所属组。umask
命令用于设置或报告当前进程的文件权限掩码。文件权限掩码决定了新创建的文件和目录的默认权限,它是通过从默认权限中去除某些权限位来实现的。
0666
(二进制 110110110
),即所有者、所属组和其他用户都有读写权限。0777
(二进制 111111111
),即所有者、所属组和其他用户都有读、写和执行权限。说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
这样,对于超级用户(默认掩码值为0022):
对于普通用户(默认掩码值为0002):
# umask //查看
# umask 044//设置
file
命令在 Linux 和类 Unix 系统中是一个非常有用的工具,用于确定文件的类型。它可以识别各种文件格式,包括文本文件、二进制文件、脚本、图片、音频、视频等多种类型,并且能够提供关于文件的详细信息,如编码格式、压缩类型、MIME 类型等。
file [选项] 文件...
运行 file
命令后,它会分析指定的文件,并输出每个文件的类型和相关信息。如果没有指定文件,则默认为标准输入,可以用来检测从管道传递过来的数据类型。
file
命令支持多种选项,用于控制输出格式和行为:
-b
:仅输出文件类型,不显示文件名。-i
:输出 MIME 类型和编码。-L
:如果遇到符号链接,显示链接指向的文件类型,而不是链接本身。-m
:使用指定的魔法数据库文件,而不是默认的。-q
或 --quiet
:静默模式,仅输出文件类型,不显示额外信息。-v
:详细模式,显示更多关于文件的信息。-z
:处理压缩文件时,自动解压并检测原始文件类型。example.txt
的类型: file example.txt
file -i image.jpg audio.mp3
file -qb document.pdf
输出示例
假设我们运行 file
命令检查一个文本文件:
- $ file sample.txt
- sample.txt: ASCII text
在这个例子中,file
命令告诉我们 sample.txt
是一个 ASCII 文本文件。
file
命令在多种场景下都非常有用,包括但不限于:
用户未添加到信任列表并使用sudo指令时 如下图
# vim /etc/sudoer
vim /etc/sudoers
:这个命令是使用vim编辑器打开/etc/sudoers
文件。/etc/sudoers
是一个特殊的系统文件,用于配置sudo的权限规则。通过编辑这个文件,可以为特定的用户或用户组分配sudo权限。
添加用户到信任列表之后,按下w加 !强制保存后退出即可 。
$sudo -u root /usr/sbin/useradd u2
当用户既是目录的拥有者也是所属组时,如果去掉拥有者所有权限,将无法进入该目录,这是因为如果用户如果同时为拥有者和所属组,则只关注用户的拥有者权限。
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。
在UNIX和类UNIX系统中,如果用户对一个目录具有写权限,那么该用户可以删除该目录中的文件,即使该用户对这些文件没有写权限。这是因为在UNIX文件系统中,删除一个文件实际上是修改包含该文件的目录。
假设有一个目录`/home/zhangsan`,其中包含一个文件`file.txt`,并且用户"zhangsan"是该目录的所有者。
1. 首先,我们创建一个文件`file.txt`:
$ touch /home/zhangsan/file.txt
2. 然后,我们将文件的权限设置为只读:
$ chmod 400 /home/zhangsan/file.txt
3. 接下来,我们将目录`/home/zhangsan`的权限设置为可写:
$ chmod 700 /home/zhangsan
现在,用户"zhangsan"对文件`file.txt`只有读权限,但对目录`/home/zhangsan`具有写权限。
现在,如果用户"lisi"(不是文件的所有者)尝试删除文件`file.txt`,他将能够成功删除它,尽管他没有对文件的写权限:
$ rm /home/zhangsan/file.txt
这是因为用户"lisi"对目录`/home/zhangsan`具有写权限,所以他可以修改该目录,包括删除其中的文件。
这种设计是为了方便用户管理自己的文件和目录,但也需要小心谨慎地设置文件和目录的权限,以确保只有授权的用户能够访问和修改文件。
同一目录下,不同用户所创建的文件能否被对方删除,取决于目录是否提供提供写权限。
为了满足上述两个条件,粘滞位登场
chmod +t directory_name
只有目录的所有者或超级用户才能设置或取消粘滞位。粘滞位对于确保公共目录中的文件安全性非常有用,防止意外删除或修改他人的文件。
总结:
粘滞位只能给目录设置,一般是谁设置,谁才能取消。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。