4.权限管理
-
chmod
:更改文件(或目录)的访问权限。- u:user 的缩写,表示所有者;
- g:group 的缩写,表示群组用户;
- o:other 的缩写,表示其他用户;
- a:all 的缩写,表示所有用户。
和这些字母配合的还有几个符号:
-
+:加号,表示添加权限;
-
-:减号,表示去除权限;
-
=:等号,表示分配权限。
#文件 file.txt 的所有者增加读和运行的权限。 chmod u+rx file.txt #文件 file.txt 的群组其他用户增加读的权限。 chmod g+r file.txt #文件 file.txt 的其他用户移除读的权限。 chmod o-r file.txt #文件 file.txt 的群组其他用户增加读的权限,其他用户移除读的权限。 chmod g+r o-r file.txt #文件 file.txt 的群组其他用户和其他用户均移除读的权限。 chmod go-r file.txt #文件 file.txt 的所有用户增加运行的权限。 chmod +x file.txt #文件 file.txt 的所有者分配读,写和执行的权限; #群组其他用户分配读的权限,不能写或执行; #其他用户没有任何权限。 chmod u=rwx,g=r,o=- file.txt
-
数字表示法:
r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=5。 chmod a=rwx file ##等效于chmod 777 file chmod 600 file ##等价于 chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file
##属主就是文件的所有者,属组用户就是同一组的其他用户,其他用户就是除了这个组以外的其他所有用户 -rw------- (600) -- 只有属主有读写权限。 -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。 -rwx------ (700) -- 只有属主有读、写、执行权限。 -rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。 -rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。 -rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。 -rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
-
chown
:更改文件(或目录)的所有者和/或所属组。
chown [选项] [新所有者][:新所属组] 文件...
- [ 选项 ]
- -R:递归地修改 指定目录下的所有文件和子目录的 所有者和所属组。
- -v:显示 chown 命令的操作详细信息。
- –from= 原所有者 [:原所属组]:修改只当原所有者的文件
- –reference= 参考文件:新所有者是使用这个参考文件的所有者
- [ 新所有者 ]
- [: 新所属组] 可选,如果不指定,则只修改文件的所有者而不修改所属组。
- [文件] 可以同时指定多个文件,用空格分隔。
##将文件 file.txt 的所有者修改为 user1:
chown user1 file.txt
##将文件 file.txt 的所有者修改为 user1,同时将所属组修改为 group1:
chown user1:group1 file.txt
##将目录 directory 及其下所有文件和子目录的所有者修改为 user1,并且递归修改:
chown -R user1 directory
##将文件 file.txt 的所有者修改为 user1,同时显示详细信息:
chown -v user1 file.txt
##将所有者为 olduser 的文件的所有者修改为 newuser,并且只修改那些具有指定原所有者的文件:
chown --from= olduser:newgroup newuser file1 file2
5.磁盘管理
-
df
:查看磁盘空间使用情况。如果没有指定文件,则 df 默认会显示所有已挂载文件系统的信息。如果指定了文件,那么 df 会只显示该文件所在文件系统的磁盘使用情况。
##-h, --human-readable:以人类可读的方式显示文件大小,自动选择合适的单位(如 K, M, G)。这是最常用的选项之一,因为它可以让输出更加直观易于理解。 df -h ##-H, --si:类似于 -h,但使用基于1000的单位(如 KB, MB, GB),而不是基于1024的传统单位。这在某些需要严格遵循国际单位制的情况下非常有用。 df -H ##-T, --print-type:显示每个文件系统的类型(例如 ext4, xfs, tmpfs 等)。这对于了解系统中不同类型的文件系统很有帮助。 df -T ##-i, --inodes:显示 inode 使用情况,而非磁盘块使用情况。这对于评估文件数量限制或诊断inode耗尽问题非常重要。 df -i ##-t <type>, --type=<type>:仅显示指定类型的文件系统。当只需要关注某一种文件系统的状态时,这个选项非常有用。 df -t ext4 ##-x <type>, --exclude-type=<type>:排除指定类型的文件系统。如果想要忽略某些不关心的文件系统,比如虚拟内存文件系统 tmpfs,可以使用此选项。 df -x tmpfs -x devtmpfs ##-a, --all:包括所有文件系统,即使它们的使用情况为零。默认情况下,df 不会列出那些没有实际占用任何物理存储空间的文件系统,如 proc 或 sysfs。 df -a ##-P, --portability:使用 POSIX 格式输出,确保跨平台一致性。对于脚本编写来说,保持输出格式的一致性是非常重要的。 df -P ##-l, --local:仅显示本地文件系统。有时候我们只关心机器本身的磁盘使用情况,而不希望看到远程挂载的文件系统信息。 df -l ##-k:强制使用千字节(KB)作为单位。尽管现代系统通常会自动选择合适的单位,但在某些特定场合下明确指定单位可能是必要的。 df -k ##-m:强制使用兆字节(MB)作为单位。同样地,这也适用于那些需要固定单位展示的情况。 df -m ##-B <SIZE>:指定块大小,如 KB, MB, GB。这给予用户更大的灵活性去定制输出单位。 df -B MB ##-h, --help:显示帮助信息并退出。任何时候遇到不确定的地方,都可以查阅官方的帮助文档获取更多信息。 df --help ##-V, --version:显示 df 的版本信息。这对于确认你正在使用的 df 是否是最新的或是兼容的版本非常重要。 df -V