1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

1、1 cp复制命令

单个文件复制:cp [OPTION]... SOURCE DEST

如果DEST不存在,则事先创建文件,并复制源文件数据

如果DEST是非目录文件,则覆盖目录文件

如果DEST是目录文件,则先在目录文件中创建同名的文件,然后复制源文件数据

多个文件复制:cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

如果DEST不存在,报错

如果DEST是目录文件,则先在目录文件中创建同名的文件,然后复制源文件数据

示例:

将/etc目录下的issue文件复制到/tmp目录下,并命名为issue.bak

[root@node01 tmp]# cp /etc/issue /tmp/issue.bak

[root@node01 tmp]# ls -l /tmp/issue.bak

-rw-r--r--. 1 root root 23 12月 17 15:28 /tmp/issue.bak

[root@node01 tmp]#

复制/etc目录至tmp目录下

[root@node01 tmp]# cp -R /etc /tmp/

[root@node01 tmp]# ls -ld /tmp/etc

drwxr-xr-x. 74 root root 8192 12月 17 15:51 /tmp/etc

1、2 MV移动命令

用法:mv [选项]... [-T] 源文件 目标文件

或:mv [选项]... 源文件... 目录

Rename SOURCE to DEST, 修改源文件名称至目标文件

将issue.bak文件修改文件名为issue_20181217.bak

[root@node01 tmp]# ls -il issue.bak

67538627 -rw-r--r--. 1 root root 23 12月 17 15:28 issue.bak

mv issue.bak issue_20181217.bak

[root@node01 tmp]# ls -il issue_20181217.bak

67538627 -rw-r--r--. 1 root root 23 12月 17 15:29 issue_20181217.bak

move SOURCE(s) to DIRECTORY,移动源文件至目录

将 test.tar.xz文件移动至test目录

[root@node01 tmp]# ls

etc etc-2018-12-14-11.tar.xz issue.bak mem.txt read.sh test test.tar.xz txt

[root@node01 tmp]# mv test.tar.xz test

[root@node01 tmp]# ls

etc etc-2018-12-14-11.tar.xz issue.bak mem.txt read.sh test txt

[root@node01 tmp]# ls -l test/test.tar.xz

-rw-r--r--. 1 root root 1432 12月 13 21:02 test/test.tar.xz

1、3 删除文件和目录

用法:rm [选项]... 文件...

-f, --force 强制删除

-r, 删除目录以及目录下的文件

删除/tmp目录下的mem.txt文件

[root@node01 tmp]# ls

etc etc-2018-12-14-11.tar.xz issue.bak mem.txt read.sh test txt

[root@node01 tmp]# rm mem.txt

[root@node01 tmp]# ls

etc etc-2018-12-14-11.tar.xz issue.bak read.sh test txt

删除/tmp目录下的txt目录及其中的文件

[root@node01 ~]# cd /tmp/

[root@node01 tmp]# ls

etc etc-2018-12-14-11.tar.xz issue.bak read.sh test txt

[root@node01 tmp]# rm -rf txt

[root@node01 tmp]# ls

etc etc-2018-12-14-11.tar.xz issue.bak read.sh test

1、4 tail命令

用法:tail [选项]... [文件]...

Print the last 10 lines of each FILE to standard output.将文件的最后10行打印到标准输出

-n 打印最后n行

-f 打印随着文件的增长,输出附加数据

打印/etc/passwd文件最后一行

[root@node01 tmp]# tail -1 /etc/passwd

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

实时查看日志文件的变化输出

[root@node01 tmp]# tail -f /var/log/messages

1、5 head命令

用法:head [选项]... [文件]...

Print the first 10 lines of each FILE to standard output.将文件的开头10行打印到标准输出

-n 打印开头n行

打印/etc/passwd文件开头一行

[root@node01 tmp]# head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

1.6 find命令

find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

查找起始路径:指定具体搜索目标起始路径,默认为当前目录

查找条件:指定的查找标准,可以根据文件名、大小、类型、从属关系、权限等等标准进行,默认为找出指定路径下的所有文件

根据文件的从属关系查找

-user USERNAME 找出属主指定用户的所有文件

-group RPUNAME 找出属组指定用户的所有文件

-uid UID 找出属主指定用户UID的所有文件

-gid GID 找出属组指定用户GID所有文件

根据文件的类型查找

-type TYPE

f 普通文件

d 目录文件

l 符合链接文件

b 块设备文件

c 字符设备文件

p 管道文件

s 套接字文件

根据文件大小查找

-size +。- unit

常用单位:k,M,G

根据时间戳查找

以“天”为单位

-atime 访问时间

-mtime 修改时间

-ctime 改变时间

以分钟为单位

-amin

-mmin

-cmin

组合测试

与:-a,默认组合

或:-o

非:-not,!

支持glob风格的通配符 *,?,[],[^]

处理动作:对符合查找条件的文件做出的操作,例如删除等操作,默认为输出至标准输出

-print 输出至标准输出,默认动作

-ls 类似于对查找到的文件执行ls -l 命令,输出文件的详细信息

-delete 删除查找到的文件

-fls 把查找到的所有文件的长格式信息保存至指定的文件中

-ok command {} ; 对查找到的每个文件有command表示的命令,每次操作需要用户确认

-exec comomand {} ; 对查找到的每个文件有command表示的命令,不需要用户确认

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令,但是有些命令不能接受过长的参数,为了解决这个问题。用如下命令

find | xargs command

1、查找/var 目录下属主为root,且属组为mail的所有文件或目录

find /var -user root -a -group mail -ls

2、查找/usr目录下不属于root,bin或hadoop的所有文件或目录,用两种方法

find /usr ! \( -user root -o -user bin -o -user hadoop \) -ls

find /usr ! -user root -a -user bin -a -user hadoop -ls

3、查找/etc/目录下最近一周内其内容修改过的,且属主不是root用户也不是hadoop用户出的文件或目录

find /etc -mtime -7 -a ! -user root -a !-user hadoop -ls

4、查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录

find / -nouser -a -nogroup -atime -7 -exec ls -l {} \;

5、查找/etc目录下大于1M且类型为普通文件的所有文件

find / -size +1M -type f -exec ls -l {} \;

6、查找/etc目录下所有用户都没有写权限的文件

find /etc ! -perm /222 -type f -exec ls -l {} \;

7、查找/etc目录至少有一类用户没有执行权限的文件

find /etc ! -perm -111 -type f -exec ls -l {} \;

8、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件

find /etc -perm -113 -type f -exec ls -l {} \;

2、mkdir目录创建

mkdir [OPTION]... DIRECTORY...

-p:自动按需创建父目录

-v:显示详细过程

-m:直接给定权限

注意:路径基名方为命令的作用对象,基名之前的路径必须得存在

使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b

[root@node01 tmp]# mkdir -pv /tmp/{a1/{a,b},a2}

mkdir: 已创建目录 "/tmp/a1"

mkdir: 已创建目录 "/tmp/a1/a"

mkdir: 已创建目录 "/tmp/a1/b"

mkdir: 已创建目录 "/tmp/a2"

[root@node01 tmp]

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

[root@node01 tmp]# mkdir -pv /tmp/{x,q}_{y,z}

mkdir: 已创建目录 "/tmp/x_y"

mkdir: 已创建目录 "/tmp/x_z"

mkdir: 已创建目录 "/tmp/q_y"

mkdir: 已创建目录 "/tmp/q_z"

[root@node01 tmp]#

3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

元数据:metadate

文件元数据包含:inode(index node)、大小、权限、属主属组、时间戳、数据块指针

查看元数据信息:

stat命令 用法:stat [选项]... 文件...

查看/etc/passwd文件的源数据

[root@node01 tom]# stat /etc/passwd

文件:"/etc/passwd"

大小:834 块:8 IO 块:4096 普通文件

设备:fd00h/64768d Inode:67404619 硬链接:1

权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)

环境:system_u:object_r:passwd_file_t:s0

最近访问:2018-12-17 19:21:41.287000000 +0800

最近更改:2018-12-17 19:21:28.354000000 +0800

最近改动:2018-12-17 19:21:28.355000000 +0800

创建时间:-

修改时间戳:

touch命令 用法:touch [选项]... 文件...

touch:修改文件时间戳,如果没有该文件就直接创建文件

-c:指定文件路径不存在时不予创建:

-a:仅修改访问时间

-m:仅修改更换时间

-t:指定更改时间

创建abc.txt

[root@node01 tmp]# touch abc.txt

查看当前时间戳

[root@node01 tmp]# stat abc.txt

文件:"abc.txt"

大小:0 块:0 IO 块:4096 普通空文件

设备:fd00h/64768d Inode:67404626 硬链接:1

权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2018-12-17 20:19:15.462000000 +0800

最近更改:2018-12-17 20:19:15.462000000 +0800

最近改动:2018-12-17 20:19:15.462000000 +0800

创建时间:-

修改更改时间至2019-12-17 20:20:20

[root@node01 tmp]# touch -m -t 201912172020.20 abc.txt

[root@node01 tmp]# stat abc.txt

文件:"abc.txt"

大小:0 块:0 IO 块:4096 普通空文件

设备:fd00h/64768d Inode:67404626 硬链接:1

权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2018-12-17 20:19:15.462000000 +0800

最近更改:2019-12-17 20:20:20.000000000 +0800

最近改动:2018-12-17 20:23:40.885000000 +0800

创建时间:-

4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

date命令

用法:date [选项]... [+格式]

给定的格式FORMAT 控制着输出,解释序列如下:

%% 一个文字的 %

%a 当前locale 的星期名缩写(例如: 日,代表星期日)

%A 当前locale 的星期名全称 (如:星期日)

%b 当前locale 的月名缩写 (如:一,代表一月)

%B 当前locale 的月名全称 (如:一月)

%c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)

%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)

%d 按月计的日期(例如:01)

%D 按月计的日期;等于%m/%d/%y

%e 按月计的日期,添加空格,等于%_d

%F 完整日期格式,等价于 %Y-%m-%d

%g ISO-8601 格式年份的最后两位 (参见%G)

%G ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用

%h 等于%b

%H 小时(00-23)

%I 小时(00-12)

%j 按年计的日期(001-366)

%k hour, space padded ( 0..23); same as %_H

%l hour, space padded ( 1..12); same as %_I

%m month (01..12)

%M minute (00..59)

%n 换行

%N 纳秒(000000000-999999999)

%p 当前locale 下的"上午"或者"下午",未知时输出为空

%P 与%p 类似,但是输出小写字母

%r 当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)

%R 24 小时时间的时和分,等价于 %H:%M

%s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数

%S 秒(00-60)

%t 输出制表符 Tab

%T 时间,等于%H:%M:%S

%u 星期,1 代表星期一

%U 一年中的第几周,以周日为每星期第一天(00-53)

%V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)

%w 一星期中的第几日(0-6),0 代表周一

%W 一年中的第几周,以周一为每星期第一天(00-53)

%x 当前locale 下的日期描述 (如:12/31/99)

%X 当前locale 下的时间描述 (如:23:13:48)

%y 年份最后两位数位 (00-99)

%Y 年份

%z +hhmm 数字时区(例如,-0400)

%:z +hh:mm 数字时区(例如,-04:00)

%::z +hh:mm:ss 数字时区(例如,-04:00:00)

%:::z 数字时区带有必要的精度 (例如,-04,+05:30)

%Z 按字母表排序的时区缩写 (例如,EDT)

$(date +格式)

引用时间格式作为变量

创建文件名形如:tfile-2016-05-27-09-32-22

touch /tmp/tfile-$(date +"%Y-%m-%d-%H-%M-%S")

[root@node01 tmp]# ls -l tfile*

-rw-r--r--. 1 root root 0 12月 17 17:46 tfile-2018-12-17-17-46-29

5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

[root@node01 mytest1]# cp -R /etc/p*[^0-9] /tmp/mytest1

[root@node01 mytest1]# ls -l

总用量 28

drwxr-xr-x. 4 root root 4096 12月 17 19:12 pam.d

-rw-r--r--. 1 root root 798 12月 17 19:12 passwd

-rw-r--r--. 1 root root 837 12月 17 19:12 passwd-

drwxr-xr-x. 12 root root 142 12月 17 19:12 pki

drwxr-xr-x. 4 root root 54 12月 17 19:12 plymouth

drwxr-xr-x. 7 root root 78 12月 17 19:12 pm

drwxr-xr-x. 4 root root 32 12月 17 19:12 popt.d

drwxr-xr-x. 4 root root 180 12月 17 19:12 postfix

drwxr-xr-x. 5 root root 149 12月 17 19:12 ppp

drwxr-xr-x. 4 root root 104 12月 17 19:12 prelink.conf.d

-rw-r--r--. 1 root root 233 12月 17 19:12 printcap

-rw-r--r--. 1 root root 1795 12月 17 19:12 profile

drwxr-xr-x. 4 root root 273 12月 17 19:12 profile.d

-rw-r--r--. 1 root root 6545 12月 17 19:12 protocols

drwxr-xr-x. 4 root root 61 12月 17 19:12 python

[root@node01 mytest1]#

6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack

[root@node01 mytest1]# getenforce

Enforcing

[root@node01 mytest1]# setenforce 0

[root@node01 mytest1]# getenforce

Permissive

[root@node01 tmp]# useradd -u 5001 -d /tmp/tom/ -G jack -s /bin/zsh tom

[root@node01 tmp]# grep tom /etc/passwd

tom:x:5001:5001::/tmp/tom/:/bin/zsh

[root@node01 tmp]# grep tom /etc/group

jack:x:1000:tom

tom:x:5001:

[root@node01 tmp]#

7、常用的用户以及文件管理命令有哪些,并演示命令以及用法。

7、1 用户和组分类

用户类别:

管理员

普通用户

登录用户

系统用户

用户标识:UserID,UID

16bits二进制数字:0-65535

管理员:0

普通用户:1-65635

系统用户:1-499(Centos6),1-999(Centos7)

登录用户:500-60000(Centos6),1000-60000(Centos7)

名称解析:名称转换

Username UID

根据名称解析库进行:/etc/passwd

组类别1:

管理员组

普通用户组

系统组

登录组

组标识:GroupID,GID

管理员:0

普通用户:1-65635

系统用户:1-499(Centos6),1-999(Centos7)

登录用户:500-60000(Centos6),1000-60000(Centos7)

名称解析:名称转换

groupname GID

根据名称解析库进行:/etc/group

组类别2:

用户的基本组

用户的附加组

组类别3:

私有组:组名同用户名,且只包含一个用户

公共组:组内包含多个用户

7、2 用户和组管理命令

组管理命令:

-groupadd 命令:添加组

语法:groupadd [option]… group_Name

选项:-g GID :指定GID;默认是上一个组的GID+1;

-r :创建系统组;

-groupmod 命令:修改组属性

语法:groupmod [option] group_Name

选项:-g GID:修改GID

-n new_name:修改组名;groupmod –n new_name old_name

-groupdel 命令:删除组

语法:groupdel [option] group

用户管理命令:

-useradd 命令:创建命令

语法:useradd [option] userName

选项:-u, --uid UID:指定UID;

-g, --gid GROUP:指定基本组ID,此组得事先存在;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;

-c, --comment COMMENT:指明注释信息;

-d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

-s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;

-r, --system:创建系统用户;

useradd -s /sbin/nologin:该用户不能登录

echo $SHELL :查看当前用户的 shell 类型

useradd -M USERNAME:创建用户但不创建家目录

useradd -mk USERNAME:创建用户的同时创建家目录,并复制 /etc/skel 中的内容到家目录中。 如果用户没有家目录,那么不能切换到该用户

注意:创建用户时的诸多默认设定配置文件为 etc/longin.defs

Useradd –D:显示创建用户的默认配置

Useradd –D 选项:修改默认选项的值;

修改的结果保存于/etc/default/useradd 文件中;

-usermod 命令:修改用户属性

语法:usermod [option]… userName

选项:-u, --uid UID:修改用户的ID为此处指定的新UID;

-g, --gid GROUP:修改用户所属的基本组;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖; -a, --append:与-G一同使用,用于为用户追加新的附加组;

-c, --comment COMMENT:修改注释信息;

-d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;

-m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

例:Usermod –d /tmp/newhome –m user_name

-l, --login NEW_LOGIN:修改用户名;

-s, --shell SHELL:修改用户的默认shell;

-L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";

-U, --unlock:解锁用户的密码;

usermod -G -a GROUPS USERNAME:在原有附加组的基础上追加附加组

usermod -d PATH USERNAME:修改家目录。修改后原先家目录中的文件不能访问了,因为在当前的家目录中并不存在这些文件。

-userdel命令:删除用户

语法:userdel [option] userName

选项:-r:删除用户时一并删除其家目录;

例1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);

[root@node01 ~]# groupadd -g 5000 distro

[root@node01 ~]# groupadd -g 5001 peguin

[root@node01 ~]# useradd -u 4001 -G distro,peguin gentoo

[root@node01 ~]# useradd -u 4001 -G distro,peguin gentoo

[root@node01 ~]# id gentoo

uid=4001(gentoo) gid=4001(gentoo) 组=4001(gentoo),5000(distro),5001(peguin)

例2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;

[root@node01 ~]# useradd -c "Fedora Core" -s /bin/tcsh fedora

[root@node01 ~]# grep fedora /etc/passwd

fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh

例3:修改gentoo用户的家目录为/tmp/gentoo;要求其原有文件仍能被用户访问;

[root@localhost ~]# mkdir -p /tmp/gentoo

[root@localhost ~]# usermod -m -d /tmp/gentoo Gentoo

用户密码管理:

-passwd 命令:修改用户的密码

语法:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

passwd :修改用户自己的密码

passwd USERNAME :修改指定用户的密码,但仅root由此权限

选项:-l, -u:锁定和解锁用户;

-d:清除用户密码串;

-e DATE: 过期期限,日期;

-i DAYS:非活动期限;

-n DAYS:密码的最短使用期限;

-x DAYS:密码的最长使用期限;

-w DAYS:警告期限;

--stdin:设定用户密码为用户名

echo "PASSWORD" | passwd --stdin USERNAME

组密码管理:

-gpasswd 命令:修改组密码:

组密码文件为:/etc/gpasswd

语法:gpasswd [option] groupName

选项:-a USERNAME:向组中添加用户

-d USERNAME:从组中移除用户

7.3 文件权限管理命令

-chmod用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件

语法:chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]... --reference=RFILE FILE...

文件的三类用户:

u :属主

g :属组

o :其他

a :所有

(1) chmod [OPTION]... MODE[,MODE]... FILE...

MODE表示法:

赋权表示法:直接操作一类用户的所有权限位rwx;

u= chmod u=rwx,g=rw,o=r f01

g=

o=

a=

授权表示法:直接操作一类用户的一个权限位r,w,x;

u+, u- chmod u+x,g+w file

g+, g-

o+, o-

a+, a-

(2) chmod [OPTION]... OCTAL-MODE FILE..

chmod 764 file.

(3) chmod [OPTION]... --reference=RFILE FILE...

选项:-R, --recursive:递归修改

注意:用户仅能修改属主为自己的那些文件的权限;

-chown 命令: 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户ID,用户组可以是组名或组[id]文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。

语法:chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE FILE...

选项:-R:递归修改

[root@node01 tmp]# mkdir -p /tmp/gentoo_bak

[root@node01 tmp]# chown -R gentoo:gentoo /tmp/gentoo_bak/

[root@node01 tmp]# ls -ld /tmp/gentoo_bak/

drwxr-xr-x. 2 gentoo gentoo 6 12月 18 17:19 gentoo_bak/

[root@node01 tmp]#

-chgrp 命令:用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的[id]也可以是用户组的组名。文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。

语法:chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

注意:仅管理员可修改文件的属主和属组

参数:-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;

-v或——verbose:显示指令执行过程;

--reference=:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;

将/tmp/gentoo_bak/及其子目录下的文件的组修改为root

chgrp –R root /tmp/gentoo_bak

[root@node01 tmp]# ls -l gentoo_bak/

总用量 0

-rw-r--r--. 1 gentoo root 0 12月 18 17:24 abc

[root@node01 tmp]# ls -dl gentoo_bak/

drwxr-xr-x. 2 gentoo root 17 12月 18 17:24 gentoo_bak/

思考:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?

回答:不能修改此文件,但能删除此文件

反向掩码

-umask 命令:文件的权限反向掩码,遮罩码;

文件的权限反向掩码默认为:666-umask

目录的权限反向掩码默认为:777-umask

注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;

例:若反向掩码umask为: 023

则创建的文件的权限默认为:666-023=644

创建的目录的权限默认为:777-023=754

常用用户管理命令示例:

1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,

要求其没有家目录,且shell为/sbin/nologin;

尝试root切换至用户,查看其命令提示符;

root@node01 tmp]# useradd -M s /sbin/nologin mariadb

[root@node01 tmp]# id mariadb

uid=4003(mariadb) gid=4003(mariadb) 组=4003(mariadb)

[root@node01 home]# su - mariadb

su: 警告:无法更改到 /home/mariadb 目录: 没有那个文件或目录

This account is currently not available.

2、新建用户user01,要求其家目录为/usr/user01,密码同用户名;

[root@node01 usr]# useradd -d /usr/user01 user01

[root@node01 usr]# echo “user01” | passwd --stdin user01

3、为用户user01新增附加组mariadb;

[root@node01 ~]# usermod -aG mariadb user01

[root@node01 ~]# id user01

uid=4004(user01) gid=4004(user01) 组=4004(user01),4003(mariadb)

[root@node01 ~]#

linux prelink.cache,Linux基础操作相关推荐

  1. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21056029 . 1. Linux运行等级介绍 Lin ...

  2. Linux技术--mysql数据库基础操作

    # mysql * 查询    多表联合查询   * 更新   * 删除    * DCL   * mysql 高级应用    * 优化 ## 查询 ``` 1.select * from 表名: 2 ...

  3. linux——数据库mariadb的基础操作

    一.数据库的安装及初始安全配置 [root@localhost ~]# yum install mariadb-server -y ##安装数据库服务软件 ##安装过程略 [root@localhos ...

  4. linux 文件cache,Linux下哪些文件在消耗我们的Cache?

    我们很容易就用free命令看到系统的cache使用量,但是你知道是哪些程序的文件在消耗cache吗?虽然cache在严格意义上也是可以当做free的内存使用的,也可以通过 echo 3>/pro ...

  5. Linux(centos7)基础操作

    Linux(CentOS7) CentOS7 进入单用户修改root密码方法: 1.重启CentOS选择界面 按 e 进入 grub 编辑界面,找到Linux16这行 把 ro (只读readonly ...

  6. Linux服务管理-OpenSSH基础操作

    文章目录 1. 使用 SSH 访问远程命令行 1.1 OpenSSH 简介 1.2 SSH 版本 1.3 SSH 认证方式 1.4 openSSH 的工作模式 1.4 Secure Shell 示例 ...

  7. Linux入门学习——ssh基础操作

    接下来的学习中我们就会需要用到两个虚拟机互相的互动,如果想让两个不同的主机能相互连接互动的话,首先就需要调整两个主机的ip地址,那什么是ip呢,ip也叫网络之间互联的协议.也就是为计算机网络相互连接进 ...

  8. linux mem cache,Linux内存:MemTotal、MemFree、MemAvailable三者区别

    今天一位朋友在了解Linux查看内存使用情况的时候,其中涉及到很多内存的相关知识,这不,今天我朋友就对命令:cat /proc/meminfo 结果中出来的MemTotal.Memory Free和M ...

  9. Linux C网络编程基础

    目录 Linux套接字结构定义 Linux C的网络基础操作函数 字节顺序转换函数族 IP地址转换函数族 域名转换函数 Linux网络套接字操作函数 创建套接字描述符函数 绑定套接字函数 建立连接函数 ...

最新文章

  1. AI 真的能够理解人类语言吗?
  2. java executequery_关于Java怎样封装executeQuery()的问题
  3. Spring Boot 之构建Hello Word项目
  4. ZBrush中如何做不同图案的遮罩
  5. extjs树使用别的皮肤的样式_收藏!艾多美逆龄六件套的使用方法~
  6. mysql安装 ---简单实用
  7. 【USACO】奶牛抗议 树状数组+dp
  8. Android中实现应用的静默安装
  9. C语言 函数指针 - C语言零基础入门教程
  10. 百度云大文件高速下载方法、软件
  11. 希尔伯特矩阵(Hilbert matrix)
  12. solidity 关键字constant/view/pure/payable的区别
  13. Linux 内核引导选项简介
  14. 引用 好文共赏:hao123站长李兴平的成功史
  15. 更新安卓系统部分代码
  16. 无人车“看世界”的底层逻辑——概率密度与贝叶斯法则
  17. SHR之员工合同解除
  18. hadoop搭建伪分布式集群(centos7+hadoop-3.1.1)
  19. SingleChildScrollView内容不超出屏幕时下拉回弹
  20. Python机器学习、深度学习库总结

热门文章

  1. 红旗linux mysql_恢复 - 红旗Linux案例精选:Amanda集中备份实例详细讲解_数据库技术_Linux公社-Linux系统门户网站...
  2. schur补(schur complement)
  3. 梯度下降法、最速下降法
  4. html表单自动提交表单提交表单数据类型,表单
  5. CSAPP:Attack lab
  6. 【模式识别】K均值聚类算法应用实验报告及MATLAB仿真
  7. 电机与拖动单相变压器实验,江南大学物联网工程学院,实验报告
  8. 篡改referer_HTTP_REFERER的用法及伪造
  9. js 加总数组中某一列_JS数组求和的常用方法实例小结
  10. python每行输出14个数_python – 计算pandas中每行的一些值的列数