linux系统-文件系统&用户组管理-问题解答

author author     2023-04-09     445

关键词:

参考技术A 1)ls

ls  -l  /home/     #显示home目录下文件或文件夹的包括访问权限、所属用户、所属主组、文件大小等信息, ls  -l  也是别名ll的命令与选项部分。

ls  -a    /root    #显示root目录下包括隐藏文件在内的所有文件

ls  -d    /etc/*    #显示etc目录下所有子目录(不包括文件)

ls  -S   /root     #按文件从大到小排列显示root目录下各文件

ls  -Sr   /root   #按文件从小到大排列显示root目录下各文件

ls  -U   /root   #按文件创建时间从新到旧排列显示root目录下各文件

ls   -X   /root   #按文件后缀排序显示root目录下各文件

ls  -R   /root    #递归显示root目录下所有文件

ls  -t   /root     #按修改数据内容的时间(mtime)从新到旧排列显示root目录下各文件

2)touch

touch    /data/file1      #在data目录下创建file1文件,如果目录下已经有同名文件,则不会覆盖同名文件

touch   -t   201910200830.50   /etc/hosts        #修改/etc/hosts文件的atime以及mtime的时间戳为2019年10月20日8点30分50秒

touch  -c  /data/f2     #刷新data目录下f2文件的atime、mtime、ctime,如果f2文件不存在,则不会创建f2

3)cp

cp  etc/hosts   /home/     #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会直接覆盖。

cp  -i   etc/hosts   /home/   #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会询问用户是否覆盖。

cp  -r  /etc/ntp   /root     #复制/etc/ntp目录下所有子目录以及文件到root目录下

cp  -a    /home/*  /data/    #复制/home/目录下所有子目录以及文件到data目录下,所有文件的类型、软链接、文件所属关系、时间戳等信息都一并复制(但是home目录下的隐藏文件不会被复制到data目录下)

cp  -av   /home/*  /data/   #在实现cp  -a    /home/*  /data/   复制的基础上,在终端上显示复制过程

cp  -u   /etc/*   /data/       #将etc目录下的文件复制到data目录下,如果etc目录的文件比data目录下的同名文件新,则覆盖data目录下的同名文件,如果etc目录下的文件比data目录里的与之同名文件旧,则不覆盖。

cp   --backup=numbered    etc/hosts   /home/hosts      #将etc目录下hosts文件复制到home目录下的hosts,在复制之前,会先对home目录的hosts文件进行备份,避免被覆盖后,原文件内容丢失。

4)mv

mv   /etc/hosts    /data/         #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖    

mv  -i    /etc/hosts    /data/    #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则询问是否覆盖 

mv  f1   f2       #将当前目录下的f1文件修改名字为f2

mv   -t    /data/    /etc/hosts     #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖 。功能实现上与mv   /etc/hosts    /data/    相同,但是移出路径参数与移入路径参数的位置发生了互换

mv    downloads/    D      #将当前目录下的downloads目录的名字改成D

5)rm

rm   /data/f1     #删除data目录下的f1文件

rm  -r   /data/*    #递归删除data目录下的所有文件

rm  -rf    /data/*   #强制递归删除data目录下的所有文件

6)file

file   /etc/hosts     #查看etc目录下hosts文件的文件类型,如文本文件、压缩文件、可执行程序等

7)stat

 stat   /data/f1      #查看/data/f1文件的三个时间,内容数据修改时间mtime,读取时间atime,元数据修改时间ctime

8)pwd

#在当前目录下输入pwd回车,查看当前所在目录路径

pwd  -P    #显示当前目录或文件夹的真实路径

9)cd

cd  /data    #进入data目录   

cd  ~root    #进入root的家目录

cd  -       #回到刚才离开的目录

10)mkdir

mkdir  /data/dir        #在data目录下创建dir目录 

mkdir  -p   /data/dir1/dir2/dir3/dir4           #在data目录下创建子目录dir1/dir2/dir3/dir4,若dir1、dir2、dir3都不存在,则递归创建

11)rmdir

rmdir     /data/dir        #删除data目录下的dir目录,如果dir里面有文件,则dir不能被删除

rmdir  -p    /data/dir1/dir2/dir3/dir4          #若dir1、dir2、dir3、dir4都是空目录,则递归删除data目录下的dir1、dir2、dir3、dir4目录

12)ln

ln    /data/f1    /data/f2        #在data目录下创建文件f1的硬链接f2

ln  -s     f1   f1.link            #在当前目录下创建文件f1的软链接f1.link

#当软链接路径与原文件路径不同时,如软链接位置是:/root/f1.link  ,而原文件路径是:/data/f1   。 则在创建软链接时需要相对于软链接的路径,对原文件路径补完相对路径,具体如下:

ln  -s  ../data/f1   /root/f1.link

答:

1)创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b

mkdir   /tmp/a1,2

touch   /tmp/a1/a,b

2)在/tmp目录下创建目录:x_y, x_z, q_y, q_z

mkdir     /tmp/x,q_y,z

答:文件的元数据信息包括:

文件类型: 指文件所属的类型,包括目录、文本文件、压缩文件、可执行程序等。系统实际上查看文件的头部信息,magic number。

节点编号: 每个文件、文件夹在同一个磁盘分区内,都有一个唯一的节点编号inode,用于识别磁盘分区内的文件。节点编号的数量在一个磁盘分区内是有限的,如果节点编号耗尽,无论磁盘空间是否真的占满,都会显示磁盘空间已满。

硬链接数: 是指指向该文件节点编号inode的文件名称数量。

所属用户UID: 创建该文件的用户的uid

所属主组GID: 创建该文件的用户的主组gid

文件大小: 表示该文件的磁盘空间占用大小

mtime时间戳: 指文件的内容数据发生修改时的时间点

atime时间戳: 指文件被访问时的时间点

ctime时间戳: 指文件的元数据发生变化时的时间点

访问权限: 指不同用户对文件的访问、修改、执行等操作的权限

指向磁盘数据块的直接指针: 直接指向磁盘数据块的指针,一个文件最多有12个直接指针,每个直接指针指向一个4k大小的数据块

指向磁盘数据块的间接指针: 间接指向磁盘数据块的指针,一个间接指针会先指向一个4k大小数据块作为次阶指针表,该数据块又分成1024个4字节大小的区间,一个区间存储一个次阶的指针,次阶指针指向一个4k的磁盘数据块存储真正的文件数据,若依然不能满足空间要求,则可继续嵌套次阶指针表,直到满足文件存储要求为止。

查看元数据信息方式:

1)ls  -l   /data     #可查看data目录下非隐藏文件的访问权限、所属用户UID、所属用户主组GID、mtime时间戳、文件大小、硬链接数。

2)stat    /root/bin     #可查看root目录下bin目录的atime时间戳、mtime时间戳、ctime时间戳

3)ls   -lc     /root/    #查看root目录下非隐藏文件的ctime时间戳

4)ls   -lu     /root/    #查看root目录下非隐藏文件的atime时间戳

5)ls  -i    /root      #查看root目录下所有非隐藏文件的节点编号

6)file   /root/.bashrc      #查看root目录下.bashrc文件的文件类型

修改文件的时间戳信息:

touch   -t   201910200830.50   /etc/hosts       #将etc目录下hosts文件的atime和mtime时间戳修改成2019年10月2日8时30分50秒

touch   -a   /etc/hosts    #更新etc目录下hosts文件的atime和ctime为当前时间

touch   -m   /etc/hosts      #更新etc目录下hosts文件的mtime和ctime为当前时间

答:  touch  /tmp/tfile-`date  +"%F-%H-%M-%S"`

答:

mkdir    /tmp/mytest1     #先创建mytest1目录

cp    -a     /etc/p*[^0-9]      /tmp/mytest1/

或:

cp     -a      /etc/p*[^[:digit:]]      /tmp/mytest1/

答:

useradd   -u 5001  -md  /tmp/tom   -s  /bin/zsh     -G  jack    tom

1)useradd

useradd   jack     #创建用户jack,用户策略采用系统默认配置

useradd   -u 1008  jack       #创建用户jack,指定用户的UID为1008

useradd   -d   /data/jack    jack     #创建用户jack,指定用户家目录路径为/data/jack

useradd   -g  1111  jack     #创建用户jack,指定用户主组是GID=1111的组,但GID=1111的组需要事先存在,否则无法创建

useradd   -G  tom  jack      #创建用户jack,指定用户jack加入附加组tom,但tom组需要事先存在,否则无法创建

useradd  -s  /bin/zsh  jack      #创建用户jack,制定用户jack的shell类型是zsh

useradd  -r    jack        #创建系统用户jack,系统用户默认不创建家目录

useradd  -r  -md   /data/jack    jack     #配合-d选项,创建系统用户jack,指定该系统用户创建家目录/data/jack,并在家目录中载入默认配置文件

useradd  -N    jack     #创建用户jack,不创建jack同名主组,将jack主组默认为users

useradd  -M    jack    #创建用户jack,强制用户jack不创建家目录

2)usermod

usermod  -G  wang   jack     #将jack用户的附加组更改为wang,原有附加组删除

usermod  -aG  wang   jack    #在不退出原有附加组情况下,jack用户增加附加组wang

usermod   -l   jacky   jack      #修改用户名称为jacky

usermod  -e  20181212  jack    #将用户jack的账号过期日期修改为2018年12月12日

usermod  -s   /bin/csh    jack     #修改用户jack的shell类型为csh,与命令:   chsh   -s   /bin/csh   jack    相等 

usermod  -c    'abcdefg'    jack    #编辑用户jack的注释为abcdefg

3)userdel

userdel   jack      #删除用户jack

userdel   -r    jack     #删除用户jack,包括用户的家目录、邮箱

4)groupadd

groupadd   -g   1010  leo    #创建组leo,指定GID为1010

groupadd   -r    leo       #创建系统组leo

5)groupmod

groupmod  -n   lee  leo    #修改组leo名字为lee

groupmod  -g   1111   leo   #修改组leo的GID为1111

6)groupdel

groupdel     wang           #删除wang组,但是wang组必须不是任何用户的主组,否则不可以删除

7)su

su    jack   #当前用户非登录切换到jack账号,不读取jack账号配置文件

su  -   jack   #当前用户登录切换到jack账号,读取jack账号配置文件

8)groupmems

groupmems    -l   -g    root       #查看所有属于root组的用户

9)id

id       #查看当前用户的UID名称 、 主组名称GID 、 附属组名称GID

id  root     #查看root用户的UID名称、  主组名称GID  、附属组名称GID

id  -u  root    #查看root用户的UID名称  

id  -g   root   #查看root用户的主组名称GID  

id  -G  root   #查看root用户的主组名称GID 、 附属组名称GID

id  -nG  root   #只查看root用户的主组名称 、 附属组名称

10)chfn

chfn   jack     #编辑修改用户jack的注释  ,与命令:usermod  -c    'abcdefg'    jack   类似

11)chsh

chsh   -s   /bin/csh   jack     #修改用户jack的shell类型为csh

12)chage

chage     jack         # 交互式修改用户jack的密码策略,包括修改:密码创建时间、最小密码修改期、密码有效期、过期通知、过期宽限期、账户有效时间

chage   -l     jack     #查看用户jack的密码策略

chage    -d    0    jack     #让用户jack密码期限立即过期,重新登录需要更换密码

13)passwd  

passwd     #修改当前用户的账号密码

passwd    jack    #修改jack账号密码   (仅限root账号)

passwd  -e   jack   #强制jack用户下次登录修改密码 (仅限root账号)

echo    hello   |  passwd  --stdin   jack     #利用管道标准输入,快速将jack用户密码修改成hello,无需输入两次新密码,不检验密码的复杂度

14)newgrp

newgrp     root       #将当前用户的主组切换成root,原主组切换成附属组,如果当前用户的附属组没有root组,切换时需要输入root组密码;如果当前用户的附属组包含root组,则无需输入组密码,直接切换

15)gpasswd   

gpasswd    jack     #创建jack组密码

gpasswd   -a  wang   jack    #将wang用户添加至jack组里

16)groups

groups   jack      #查看用户jack所属的组列表

第五章-系统用户与用户组管理

#-----------------------认识/etc/passwd和/etc/shadow---------------------这两个文件可以说是linux系统中最重要的文件之一。如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的。[[email protected]~]#cat/etc/passwd|headroot:x:... 查看详情

linux常用基本命令大全介绍

参考技术A  学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!  Linux系统常用的基本命令入门篇一、基础... 查看详情

linux系统管理之用户和组配置文件

Linux系统管理之用户和组配置文件本篇主要介绍用户和组的配置文件,文档内容基于CentOS7。用户和组的配置文件用户和组的配置文件包括/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow,其中前两个是用户相关配置文件,后两个是组相... 查看详情

linux用户和组管理未完成(代码片段)

...是一个多用户、多任务的分时操作系统,在Linux中用户和用户组管理是系统管理的重要内容。Linux系统将用户分为组群管理以简化访问控制,以避免为众多用户分别设,置权限。本 查看详情

linux用户权限管理命令

...样)用来标识系统的用户账号(用户名)。文件的用户与用户组分为超级管理员,普通用户和系统用户。1)超级管理员的UID=0,GID=0,也可以这么说系统只要是识别出某个用户的UID\\GID都为0时,那么这个用户系统就认为是超级管理... 查看详情

iot嵌入式开发:文件系统

简介在计算机系统中,需要用到大量的程序和数据,它们大部分以文件的形式存放在外存当中,根据需要可随时调入内存使用。 如果用户直接管理外存文件所面临的问题:必须熟悉外存的物理特性了解各种存储文件的属性记... 查看详情

linux系统之高级用户组和权限管理(代码片段)

Linux系统之高级用户组和权限管理一、用户的密码策略设置1.用户的密码文件2.用户的密码期限配置①查看用户密码期限②修改密码期限③强制用户下一次修改密码④用户到期时间设置3.查看当前用户存在二、监控系统用户登录1.... 查看详情

linux的常见问题解答和管理技巧

...  提醒大家一句,别一直使用root用户,因为root用户在系统中有着至高无上的权力,一不小心就可能破坏系统。比如我们想删除/temp目录下的文件却将命令不小心输成“rm/temp(在‘/’后多了一个空格)”,那么就极可能删去根... 查看详情

入门学习linux&&git命令大集合(代码片段)

文章目录LinuxLinux常识操作系统概述Linux发展史Linux版本Linux安装--安装步骤Linux常见目录介绍Linux常用命令基础+磁盘+文件管理命令进阶命令文本编辑vimLinux系统管理软件包管理网络管理进程管理磁盘管理GitGit常识Git常用基本... 查看详情

linux文件系统

文件系统的概念:分区在格式化的时候就是创建文件系统的过程。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统文件系统的核心功能:提供对文件的管理功能,没有文件系统就没有文件,就只... 查看详情

linux用户和用户组管理详解(代码片段)

Linux 用户和用户组管理Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使... 查看详情

linux快速入门02-文件系统管理

...示文件的权限,1表示连接数,两个root分别表示所有者和用户组,264表示文件大小(单位为B),之后信息为文件修改日期和文件名(.开头表示隐藏文件)。这部分最终要的概念就是文件权限,可以将文件权限部分内容分为之后 查看详情

linux的权限分配特点

Linux中的用户与用户组1、Linux多用户、多任务的特性不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,Linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。2、Linux用户的分类(3种)在Linux... 查看详情

linux系列教程(十七)——linux权限管理之文件系统系统属性chattr权限和sudo命令

...限管理中用的比较多的两个命令chattr和sudo。1、设定文件系统属性:chattrchattr[+-=][选项]文件或目录名  +:增加权限  -:删除权限  =:等于某权限选项:       注意:chattr限制权限之后,root用户也不能例外。... 查看详情

linux命令详解-用户管理

...户管理linux有三类用户:(1.)超级用户:root用户具有操作系统的一切权限uid=0(2.)普通用户:具有操作系统有限的权限 uid=500-6000  (3.)伪用户:是为了方便系统管理,满足相应的系统进程文件属主的要求,不能登录。u... 查看详情

知识结构体系

...悉Linux下文本编辑器。Linux系统管理1.软件包管理2.用户和用户组管理3.服务与进程管理掌握Linux系统常见的系统管理操作。Linux网络应用1.基本网络设置2.网络文件共享掌握Linux 查看详情

linux常用命令合集

...管理命令基础网络命令深入网络操作命令有关磁盘与文件系统的命令系统权限及用户授权相关命令查看系统用户登陆信息的命令内置命令及其它系统管理与性能监视命令关机/重启/注销和查看系统信息的命令进程管理相关命令 查看详情

文件管理(代码片段)

文件管理概述对于Linux系统的目录结构,没有必要去背。我们要记住的就只是有几个常用的目录。文件目录是以根目录为顶点开始的,Linux系统文件的目录结构:/根目录 etc#系统程序的配置文件存放 boot#系统启动文件 var#系统的可... 查看详情